GNU GRUB(GRand Unified Bootloader簡稱“GRUB”)是一個(gè)來自GNU項(xiàng)目的多操作系統(tǒng)啟動(dòng)程序。GRUB是多啟動(dòng)規(guī)范的實(shí)現(xiàn),它允許用戶可以在計(jì)算機(jī)內(nèi)同時(shí)擁有多個(gè)操作系統(tǒng),并在計(jì)算機(jī)啟動(dòng)時(shí)選擇希望運(yùn)行的操作系統(tǒng)。GRUB可用于選擇操作系統(tǒng)分區(qū)上的不同內(nèi)核,也可用于向這些內(nèi)核傳遞啟動(dòng)參數(shù)。
由硬盤啟動(dòng)時(shí),BIOS通常是轉(zhuǎn)向第一塊硬盤的第一個(gè)扇區(qū),即主引導(dǎo)記錄(MBR)。
裝載GRUB和操作系統(tǒng)的過程,包括以下幾個(gè)操作步驟:
裝載記錄——基本引導(dǎo)裝載程序所做的唯一的事情就是裝載第二引導(dǎo)裝載程序。
裝載Grub——這第二引導(dǎo)裝載程序?qū)嶋H上是引出更高級(jí)的功能,以允許用戶裝載一個(gè)特定的操作系統(tǒng)。
裝載系統(tǒng)——如linux內(nèi)核。GRUB把機(jī)器的控制權(quán)移交給操作系統(tǒng)。
不同的是,微軟操作系統(tǒng)都是使用一種稱為鏈?zhǔn)窖b載的引導(dǎo)方法來啟動(dòng)的,主引導(dǎo)記錄僅僅是簡單地指向操作系統(tǒng)所在分區(qū)的第一個(gè)扇區(qū)。
許多發(fā)行版本都支持usb啟動(dòng),那我們自己可不可以作一個(gè)usb啟動(dòng)的工具盤呢,答案是肯定的!
首先作以下假定
usb 設(shè)備是 /dev/sdb
usb盤掛載點(diǎn) /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對(duì)usb盤進(jìn)行分區(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)了.