歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

用NT Loader加載GRUB來啟動Linux


0. 前提

系統安裝有: 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中加入相應的引導指示行即可。

Copyright © Linux教程網 All Rights Reserved