grub作为Linux的引导器,拥有引导多种操作系统,如各版本的Linux,windows,dos等,甚至可从网络启动,支持光盘启动等非常power的功能.
大家知道,利用grub,我们可以将grub安装在软盘,光盘,甚至U盘上(见参考资料).目前,光盘启动已经作为一种常见的启动方式,而且多数电脑都带有光驱.那么,我们如何将grub安装到光盘呢?经过一番尝试,将我制作grub启动光盘的过程刻录下来与大家分享.
制作启动光盘实际上很简单,利用winiso或ultraiso等工具制作一个可引导的iso,然后用nero刻录就可以,甚至用nero可直接刻录可启动的光盘.但是关键是如何生成引导记录.通过上网查询资料,发现grub包中有一个stage2_eltorito文件,实际上此文件就是grub的光盘引导文件,但有一个问题:用此文件引导系统后,如果光盘iso格式支持小写和长文件名的话,grub可以正常加载menu.lst及其它文件,但grub中启动的dos又不识别此光盘文件格式;如果iso格式不支持小写的话,grub又不能识别正确的menu.lst.所以我决定采用将启动软盘的启动扇区的内容刻录至光盘,解决这个问题.
首先,制作一张grub的启动软盘,保存为img软盘镜像,然后将此镜像刻录为启动光盘的iso.在制作grub启动软盘的时候碰到一个无法解决的问题:就是在软盘上不能存放过多的文件,不然做成的启动光盘则无法启动.我只放了grub.exe menu.lst 字体,背景这几个文件,再放多点则无法启动,不知何故.
做好后,在virtual pc上启动时无法正常引导,换用vmware,则可以正常启动,而且启动时将会生成一个虚拟的fd0,我想这应该是与前面通过stage2_eltorito制作的启动盘的不同之外.至于为什么不能在virtual pc上启动,可能是virtual pc存在硬件兼容问题.不知在实际电脑上会不会无法启动.