发表于 : 2006-11-16 11:51
6.10可以用我10楼修改好的文件。文件和目录名的确有一些变化,脚本内容也稍有不同,但大体都是一样的。
ptptptptptpt 写了:原贴:
viewtopic.php?t=25089
06.11.26修改:“为移动硬盘安装GRUB”一步建议换用GRUB FOR DOS。
GRUB FOR DOS简介
GRUB4DOS是国内一位叫“不点”的大侠开发的,基于GNU GRUB,并对其做了改进和扩展,比GNU GRUB更稳定,功能更强,所以fans众多(包括我啦),也有国际友人将其介绍到国外,正应了国家大力倡导的“走出去”战略,势头大好。开发者不点(英文名tinybit),水平颇高且极有个性,据说至今不用手机,没有QQ,有邮箱但很少看,在网上从不显露真实资料,所以很难找到 :)
GRUB4DOS最初的意图是作一个可以在DOS下使用的grub,这一点从它的名字就可看出来。随着开发的不断深入,其功能越来越强,适用范围越来越广,以至于有人称之为GRUB FOR ALL。DOS(linux)用户可以通过执行它的grub.exe(grub)文件进入grub环境;windows 2000/XP用户则可使用grldr,只要简单的几个步骤,就能通过windows的启动菜单进入到GRUB环境,极其方便,网上广为流传的矮人dos工具箱、MAXDOS等软件都是基于grldr。它还拥有强大的磁盘仿真功能。
而作为linux使用者,我最关心最喜欢也最看好的,则是bootlace和grldr的组合。因为:
1、它们在一起构成了独立的、完整的多引导管理器
grub.exe和grub分别需要借助DOS和LINUX才能进入grub环境,而grldr单独使用时也需ntldr的引导,它们都不是独立的。有了bootlace.com就不同了。这是个两栖文件,可以在DOS或linux下执行,内含grldr.mbr引导代码,并可将其写入硬盘mbr。此引导代码有识别FAT/EXT文件系统的能力,被执行后将check所有的硬盘、所有的分区(不管是主盘还是从盘,不管是主分区还是逻辑分区,不管是隐藏的还是活动的),只要其文件系统是FAT12/FAT16/FAT32/EXT2/EXT3中的一种,就能识别出来,然后查找其根目录是否存在grldr文件,若存在便加载到内存。
grldr与GNU GRUB的stage2功能类似,它会进一步寻找menu.lst文件,先找它自身所在的分区根目录(这点与GNU GRUB不同),如果找不到,则又会查找所有的硬盘、所有的分区,而这次就不限于上面所列的文件系统了,grldr可以识别更多的文件系统。找到menu.lst之后,我们就能看见GRUB菜单了。
2、其引导过程比原版的GNU GRUB更稳健,更灵活
众所周知,GNU GRUB是非常优秀的,其优点无须多言。但它也有不可忽视的缺点:引导过程步骤太多,mbr》stage1》stage1.5》stage2》linux内核,增大了出错的几率;其中好几步是通过读取绝对扇区来进行的,没能利用文件系统,限制了灵活性。
对此grub for dos做了改进。从上面的描述可以看到,其引导过程是从mbr直接到grldr,然后就可以加载内核了,步骤简洁,出错更少。并且由于mbr引导代码能识别文件系统,大大增强了灵活性。
3、grldr比原版的GNU GRUB在功能上有所扩展,比如磁盘仿真、光驱启动等。grub for dos中同时发布了支持中文的版本,方便国人用户。
唯一的限制是,grldr所在分区的文件系统格式必须是FAT12/FAT16/FAT32/EXT2/EXT3中的一种。所以有可能需要专门设一个boot分区,来存放grldr。不过在我看来这是值得的,一点小麻烦换来了更多的方便和稳定。
为移动硬盘安装GRUB FOR DOS:
1、获取文件
从以下页面下载GRUB FOR DOS,注意下载链接在页面的最下方,找其中最新的下下来即可。我下的是grub_for_dos-2006-11-23。压缩包里有很多文件,而我们只用其中的两个:bootlace.com和grldr。
http://grub4dos.jot.com/WikiHome
2、写入mbr
假设移动硬盘为/dev/sda(注意:如果主机上接有sata硬盘,移动硬盘可能会被认成/dev/sdb或/dev/sdc,一定要搞清楚)。假设bootlace.com所在的目录为/media/hda1/。运行命令:
sudo /media/hda1/bootlace.com /dev/sda
注意一定要打全路径,如果打成sudo bootlace.com /dev/sda,即使你的当前目录就是bootlace.com所在的目录,也是不行的。
3、存放grldr和menu.lst文件
在移动硬盘上找一个或建一个fat16/fat32/ext2/ext3格式的分区,将grldr文件拷至其根目录,并在同一目录下建立相应的配置文件menu.lst。
本文将描述两种方案:
一、使移动硬盘具有和live cd一样的功能,可通过usb接口启动,运行,安装至主机内置硬盘,当然前提是电脑支持usb启动。
二、使移动硬盘具有类似live cd的功能,可通过usb接口启动、运行;与live cd不同的是,对此系统所作的修改将会保存下来,而不会像live cd那样一重启就恢复原状。
两种方案对各种不同版本的ubuntu live cd应该都适用。我是用hiweed 1.0做的试验,所以就以它为例来描述了。向hiweed致敬。
第一种方案实现起来比较简单:
首先,将live cd中的casper文件夹拷至移动硬盘某fat32分区(ext2或ext3或reiserfs分区亦可)。
然后,将GRUB FOR DOS安装至移动硬盘。请参照帖子开头的描述。
menu.lst内容如下(其中的*号请根据自己的情况换成合适的数字):
timeout 6
default 0
fallback 1
title live cd
root (hd0,*)
kernel /casper/vmlinuz boot=casper ramdisk_size=1048576 root=/dev/ram rw splash
initrd /casper/initrd.gz
title live cd xforcevesa
root (hd0,*)
kernel /casper/vmlinuz boot=casper xforcevesa ramdisk_size=1048576 root=/dev/ram rw splash
initrd /casper/initrd.gz
这样就好了。
superiori 写了:上传一个适用于ubuntu-6.10-desktop-i386.iso的initrd文件,完全仿照楼主做的。没有去掉弹出光驱的代码,不过影响不大。第4步的记号文件名是ubuntu6.10。
升级内核应该没问题wucongkun 写了:to : ptptptptptpt
这个。。对内核什么的都没有依赖么?
会不会受到内核升级的影响?