Một hệ thống có thể có nhiều hệ điều hành. Để nhận diện một khoảng rộng các hệ điều hành và quản lý khởi động các hệ điều hành từ khi bật máy, bạn cần có một phần mềm Bootloader. Bootloader thông dụng hiện nay là GRUB (GRand Unified Bootloader). Như vậy, sau khi xây dựng và cài đặt hệ điều hành, việc cần làm tiếp theo là xây dựng và cài đặt Bootloader, chẳng hạn GRUB. Phiên bản hiện tại là GRUB 2.02 beta2, 26 March 2014. Bạn có thể sử dụng kịch bản gbuild.sh (kịch bản mà tôi viết và đã giới thiệu trong trang này) để xây dựng gói GRUB, như sau:
# Giả sử bạn để file gbuild.sh trong thư mục nhà của bạn
# Để đảm bảo gbuild.sh là file thực hiện được
cd
chmod u+x gbuild.sh
# Tạo file danh sách module ban đầu prelist
./gbuild.sh –help
# Thêm một dòng hạng mục module GRUB vào danh sách
echo “init: grub git://git.savannah.gnu.org/grub.git –sysconfdir=/etc” >> prelist
# Xây dựng gói GRUB
./gbuild.sh –installroot=auto –prefix=/usr -o grub
gbuild sẽ tự động download gói nguồn GRUB với điều chỉnh phiên bản mới nhất và xây dựng gói.
Gói kết quả là thư mục grub trong thư mục $HOME/build
Từ đây bạn ở trong vai trò gốc, trước tiên cài gói nhị phân đã xây dựng vào hệ thống theo đúng cấu trúc file của nó.
Nếu muốn cài đặt trực tiếp gói GRUB vào hệ thống trong quá trình xây dựng, thì bạn làm như thế này, trong vai trò gốc:
./gbuild.sh –prefix=/usr -o grub
Sau đó cài đặt GRUB, cho rằng ổ cứng của bạn là sda, dòng lệnh dưới đây sẽ cài GRUB vào MBR của ổ cứng
grub-install /dev/sda
Tạo file điều khiển mặc định cấu hình, ví dụ:
cat > /etc/default/grub << eof
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=”your os’s title”
GRUB_CMDLINE_LINUX_DEFAULT=””
GRUB_CMDLINE_LINUX=””
GRUB_DISABLE_RECOVERY=”true”
GRUB_DISABLE_SUBMENU=”y”
eof
GRUB_DISABLE_SUBMENU=”y” là nét điều khiển mới của phiên bản 2.02 beta2, cho phép người thiết kế hệ thống bỏ đi những mục menu con trên menu chọn HĐH khởi động
Bây giờ tạo file cấu hình:
grub-mkconfig -o /boot/grub/grub.cfg
Dòng lệnh trên sẽ hoàn thành các hạng mục menu trên cơ sở dò tìm các hệ điều hành trên các phân khu đĩa hay trên các thiết bị chứa khác. Các kịch bản của GRUB dò tìm các HĐH là nhờ vào một chương trình bên ngoài là os-prober. Do vậy trước khi cài đặt GRUB, hệ thống của bạn phải có gói os-prober đã được cài đặt.
os-prober là gói phần mềm được phát hành bởi Debian. os-prober dò tìm các hệ điều hành không phải là hệ điều hành hiện hành, mục đích là để cung cấp cho Bootloader thiết lập các mục menu khởi động HĐH bổ sung.
Không may, có một số hệ thống làm cho os-prober bị lẫn lộn, kết quả là menu Bootloader trình bày lặp lại HĐH hiện hành, thậm chí tạo nhiều mục menu khởi động lặp lại cho cùng một HĐH. Tôi đã tìm cách khắc phục vấn đề này bằng cách sửa đổi một kịch bản của os-prober. Bạn chỉ cần gõ các dòng lệnh dưới đây, trong vai trò gốc:
sed -e ‘s:while read -r line; do:while read -r line; do\n\
if echo \$line | grep \”\^/dev/root\” >/dev/null; then\n\
rootpartition\=`grep \”\^/dev/\.\* / \.\*\” /etc/fstab \| cut -d\” \” -f1`\n\
line=`echo \$line \| sed ‘\’s,/dev/root,\’\$rootpartition\’,\”`\nfi:’ \
-i /usr/share/os-prober/common.sh