系統安裝有: Windows NT 4.0, Linux Redhat 7.1
C:\ 對應於Linux中 /dev/hda1
Linux ROOT 為Linux中 /dev/hda4
硬盤分區情況:
/dev/hda1 * 1 261 2096451 6 FAT16 (WINNT 4.0)
/dev/hda2 262 783 4192965 5 Extended
/dev/hda3 784 792 72292+ 82 Linux swap
/dev/hda4 793 1027 1887637+ 83 Linux (Redhat 7.1)
/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:\grub.lnx
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\PNT40W="Windows NT Workstation Version 4
.00"
multi(0)disk(0)rdisk(0)partition(1)\PNT40W="Windows NT Workstation Version 4
.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中加入相應的引導指示行即可。