GNU GRUB(GRand Unified Bootloader簡稱“GRUB”)是一個來自GNU項目的多操作系統(tǒng)啟動程序。GRUB是多啟動規(guī)范的實現(xiàn),它允許用戶可以在計算機內(nèi)同時擁有多個操作系統(tǒng),并在計算機啟動時選擇希望運行的操作系統(tǒng)。GRUB可用于選擇操作系統(tǒng)分區(qū)上的不同內(nèi)核,也可用于向這些內(nèi)核傳遞啟動參數(shù)。
由硬盤啟動時,BIOS通常是轉(zhuǎn)向第一塊硬盤的第一個扇區(qū),即主引導(dǎo)記錄(MBR)。
裝載GRUB和操作系統(tǒng)的過程,包括以下幾個操作步驟:
裝載記錄——基本引導(dǎo)裝載程序所做的唯一的事情就是裝載第二引導(dǎo)裝載程序。
裝載Grub——這第二引導(dǎo)裝載程序?qū)嶋H上是引出更高級的功能,以允許用戶裝載一個特定的操作系統(tǒng)。
裝載系統(tǒng)——如linux內(nèi)核。GRUB把機器的控制權(quán)移交給操作系統(tǒng)。
不同的是,微軟操作系統(tǒng)都是使用一種稱為鏈?zhǔn)窖b載的引導(dǎo)方法來啟動的,主引導(dǎo)記錄僅僅是簡單地指向操作系統(tǒng)所在分區(qū)的第一個扇區(qū)。
許多發(fā)行版本都支持usb啟動,那我們自己可不可以作一個usb啟動的工具盤呢,答案是肯定的!
首先作以下假定
usb 設(shè)備是 /dev/sdb
usb盤掛載點 /mnt/usbdisk
下面我們就簡單說下 grub 引導(dǎo)器安裝到usb盤上的步驟
確定usb 盤的位置, 一般為 /dev/sdb
[root@localhost]# fdisk -l
使用以下命令清除mbr引導(dǎo)字節(jié)
[root@localhost]# dd if=/dev/zero of=/dev/sdb bs=512 count=1
使用 syslinux 中的 mbr.bin 加載到usb盤上
[root@localhost]# locate mbr.bin
[root@localhost]# cat /somepath/share/syslinux/mbr.bin > /dev/sdb
使用fdisk對usb盤進行分區(qū), 類似結(jié)果如下 :
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 1018 993537+ 83 Linux
在分區(qū)上創(chuàng)建ext3文件系統(tǒng),并且掛在usb盤
[root@localhost]# mkfs.ext3 /dev/sdb1
[root@localhost]# mkdir -p /mnt/usbdisk
[root@localhost]# mount /dev/sdb1 /mnt/usbdisk
安裝GRUB boot loader到usb盤上
[root@localhost]# grub-install --no-floppy --root-directory=/mnt/usbdisk /dev/sdb
創(chuàng)建grub.conf配置文件
[root@localhost]#
cat > /mnt/usbdisk/boot/grub/grub.conf EOF
title Usb linux
root (hd0,0)
kernel /boot/kernel-xxxx root=/dev/sda1 ro
initrd /boot/initrd-xxxx.img
EOF
將kernel和initrd 拷貝到usb盤上,重啟系統(tǒng),就可以引導(dǎo)系統(tǒng)了.