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盤上,重啟系統,就可以引導系統了.