用ntldr来引导Linux的启动
Thursday, December 14, 2006 4:32:58 AM
其次,以下的内容来自对互联网中相关资料的学习以及本人的实践。
安装Ubuntu的时候,grub被安装到了硬盘的mbr(主引导记录)中,这样会带来很多的不便。比如重装了Windows之后,就进不了Ubuntu了,格式化了Ubuntu所在的硬盘之后,由于找不到Grub的相关文件,也无法用Grub引导进Windows了(我试过,这个时候从硬盘启动什么系统都进不了,但是可以用光盘来引导进入硬盘上仍存在的Windows)。
先前我知道的有两个办法解决这个问题,一个是不要把Grub装到mbr中,可以用98启动盘重写mbr之后,用Linux的liveCD单独安装Grub到分区中(需要激活的分区才能引导),其实Linux应该不需要mbr就可以启动;二是用grub4dos。
现在又知道了一个新方法,那就是用ntldr来引导Linux。
首先启动进到Linux里面用命令生成一个引导扇区映象文件,这不管你用的是Lilo或者是Grub都是一样的命令:
dd if=/dev/hda of=/media/linux.lnx bs=512 count=1“dd”是命令,后面是参数,“linux.lnx”你可以命名为其他的*.lnx,bs=512是因为引导信息在前512字节。这里有两个地方需要注意,1,如果你用的是sata硬盘,其中的“hda”要改成“sda”(看fstab就知道了……);2,上面的命令是当Grub/Lilo被安装安装在mbr的时候使用的(比如Ubuntu,默认就是这种情况),如果被安装在分区上,需要把“if=/dev/hda”改成“if=/dev/hdaX”,其中的X是一个整数,要看你的Grub/Lilo被安装在哪个分区上(“/”所在分区)。
然后进入到Windows里,把生成的*.lnx复制到C盘的根目录下,修改boot.ini,在里面添加一行:
C:\linux.lnx="linux"这里的“linux.lnx”就是刚才生成的*.lnx,要按照实际命名来写,后面半角双引号内的是显示在屏幕上的菜单项,爱写成什么都可以。
最后用98启动盘或者含有fdisk命令的DOS,使用以下命令来重写mbr:
fdisk /mbr也可以在XP的恢复控制台下使用“fixmbr”命令。
现在,重启计算机,首先进入的就是ntldr启动菜单了,你可以从刚才在boot.ini中添加的菜单进入到Grub中。
用了这种方法之后,要隐藏启动菜单中的Windows就比较麻烦了,以前用Grub引导,只要直接修改“/boot/grub/menu.lst”就可以了。
如果你装有多个Linux,实现方法有好几种,我想可以分别生成*.lnx引导镜像(不同的*.lnx应该包含不同的引导信息,但相同的系统可能可以用同一个*.lnx,我把笔记本系统下生成的*.lnx复制到台式机上没有出问题),然后用上述方法,从ntldr引导。或者可以只用一个*.lnx,然后从Grub/Lilo引导多个系统,再或者直接用Grub/Lilo来引导多系统。
以上绝大多数内容在两台装有Ubuntu Dapper计算机中测试过,其中一台有双硬盘,Ubuntu装在从盘下。发此贴仅作为个人的软件使用记录。








yumumao # Friday, December 15, 2006 1:24:02 PM
http://www.box.net/public/629ytyo4jj