GNU GRUB(GRand Unified Bootloader簡稱“GRUB”)是一個來自GNU項目的多作業系統啟動程式。GRUB是多啟動規範的實現,它允許使用者可以在電腦內同時擁有多個作業系統,並在電腦啟動時選擇希望啟動並執行作業系統。GRUB可用於選擇作業系統分區上的不同核心,也可用於向這些核心傳遞啟動參數。
由硬碟啟動時,BIOS通常是轉向第一塊硬碟的第一個扇區,即主引導記錄(MBR)。
裝載GRUB和作業系統的過程,包括以下幾個操作步驟:
裝載記錄——基本引導裝載程式所做的唯一的事情就是裝載第二引導裝載程式。
裝載Grub——這第二引導裝載程式實際上是引出更進階的功能,以允許使用者裝載一個特定的作業系統。
裝載系統——如linux核心。GRUB把機器的控制權移交給作業系統。
不同的是,微軟作業系統都是使用一種稱為鏈式裝載的引導方法來啟動的,主引導記錄僅僅是簡單地指向作業系統所在分區的第一個扇區。
許多發行版本都支援usb啟動,那我們自己可不可以作一個usb啟動的工具盤呢,答案是肯定的!
首先作以下假定
usb 裝置是 /dev/sdb
usb盤掛載點 /mnt/usbdisk
下面我們就簡單說下 grub 引導器安裝到usb盤上的步驟
確定usb 盤的位置, 一般為 /dev/sdb
代碼如下:
[root@localhost]# fdisk -l
使用以下命令清除mbr引導位元組
代碼如下:
[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盤進行分區, 類似結果如下 :
代碼如下:
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 1018 993537+ 83 Linux
在分區上建立ext3檔案系統,並且掛在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
建立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盤上,重啟系統,就可以引導系統了.