grub的用法

以前用的NT Loader來加載LILO啓動Linux, 用得也挺好; 不過看到grub那麼漂亮
界面,就喜新厭舊了,

系統安裝有: Windows xp, Linux Redhat 7.2
C:/ 對應於Linux中 /dev/hda
Linux ROOT 爲Linux中 /dev/hda4

硬盤分區情況:
/dev/hda1 * 1 261 2096451 6 FAT32 (WINNT xp)
/dev/hda2 262 783 4192965 5 Extended
/dev/hda3 784 792 72292+ 82 Linux swap
/dev/hda4 793 1027 1887637+ 83 Linux (Redhat 7.2)
/dev/hda5 262 522 2096451 7 HPFS/NTFS
/dev/hda6 523 783 2096451 7 HPFS/NTFS

1. 安裝grub
我用的grub是Redhat7.2帶的grub安裝包: grub-0.90-11.i386.rpm
安裝: rpm -ivh grub-0.90-11.i386.rpm

其他安裝方式也一樣,只要你安裝上grub就行了.RH7.2缺省用的grub, 1,2步驟可以
省了.

2. 建立grub的環境
cp /usr/share/grub/i386-redhat/* /boot/grub

3. 生成grub的配置文件/boot/grub/menu.conf
menu.conf的內容如下:
######### beginning of menu.conf ####################
default=1
timeout=4
#splashimage=(hd0,3)/boot/grub/splash.xpm.gz # 想要漂亮的啓動畫面,去掉行首"#"
title Red Hat Linux (2.4.12)
root (hd0,3)
kernel /boot/vmlinuz-2.4.12 ro root=/dev/hda4
title Red Hat Linux (2.4.14)
root (hd0,3)
kernel /boot/vmlinuz-2.4.14 ro root=/dev/hda4
######### end of menu.conf ####################

系統有兩個內核, 第一爲穩定的內核, 以確保第二個內核(剛編譯的)啓動
失敗時,能引導進系統.另外, 這個menu.conf沒有設password, 安全起見,最
好加上,具體怎麼加,看看手冊了.
注意了, 我的linux在/dev/hda4,所以menu.conf那些分區位置爲(hd0,3),
你的可能不一樣了,不能完全照着"畫瓢"噢! 下面第3步install的中的分區
位置也應該和你的系統一致.

3. 安裝grub至Linux分區boot
將grub的stage1安裝到/dev/hda4的boot扇區(hd0,3). 過程如下:

/sbin/grub (運行grub)
grub> install (hd0,3)/boot/grub/stage1 d (hd0,3) (hd0,3)/boot/grub/stage2 p
(hd0,3)/boot/grub/menu.conf

(注意,上面"grub>"爲grub的提示符,其後內容寫在一行上.)

4. 取得grub的boot信息
過程如下:
dd if=/dev/hda4 of=/grub.lnx bs=512 count=1

這樣得到grub的引導信息,只要用NT Loader來加載它就行了.

5. 將上面得到的grub.lnx弄到Windows的C盤根目錄下
可以先把grub.lnx弄得軟盤上,然後啓動windows,拷貝到C:/; 情況允許也可以直接
在Linux下拷貝到C:了. 我的C盤(即設備/dev/hda1)爲FAT32, 可以直接從Linux下弄
過去了. 如下:

mount -t vfat /dev/hda1 /mnt/c
cp /grub.lnx /mnt/c
umount /mnt/c

6. 修改NT Loader的boot.ini
在其中加入一行: C:/grub.lnx="Redhat Linux - GRUB"
加入後boot.ini的內容如下:

[boot loader]
timeout=5
default=C:/boot.lnx
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)/PNT40W="Windows xp
.00"
multi(0)disk(0)rdisk(0)partition(1)/PNT40W="Windows xp
.00

[VGA mode]" /basevideo /sos
C:/grub.lnx="Redhat Linux - GRUB"

OK. 可以用NT Loader加載Linux了, 其實上面過程基本上和用NT Loader加載LILO
一樣.其基本思想就是用NT Loader來加載LILO或grub的引導區(grub.lnx), 其中的關
鍵就是LILO或grub的引導區的獲取了,我喜歡把它們安裝在Linux的ROOT分區上,然後用
dd取得這個引導分區信息(即分區的第1個扇區), 存爲一個文件,放到windows的C:/下,
在boot.ini中加入相應的引導指示行即可.  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章