Wu.Country@侠缘

勤学似春起之苗,不见其增,日有所长; 辍学如磨刀之石,不见其损,日所有亏!

导航

如何制作grub启动光盘

http://whiteyes.blog.hexun.com/9723224_d.html

 

将下载得到的grldr直接改名为grldr.bif,然后使用UltraISO新建一个ISO镜像,选择“启动光盘-加载引导信息”加载grldr.bif。
这是,你新建的ISO镜像已经具备了光盘启动功能,grub菜单文件menu.lst此时应该放在光盘根目录,不然grldr启动后找不到。

网上不少文章讲述了如何将grub装在软盘上,当硬盘引导信息被破坏时,这张软盘就可以派上用场。但是对于一些没有软驱的用户,或者使用软驱不方便的笔记本用户,如果能用光盘引导系统,则会方便很多。本文将说明如何制作这张光盘。
首先假设我们有一个运作良好的linux发行版(含cdrtools软件包),cd或dvd刻录机(已经配置好,可以在linux运作正常,关于如何设置,网上的文章很多),grub软件包。
我的系统是redhat linux 9.0,但这个发行版的grub包中不含有我们最需要的stage2_eltorito文件(这个文件是制作grub启动光盘的最重要的文件)所以我下载了0.95版的grub,地址:ftp://alpha.gnu.org/gnu/grub/grub-0.95.tar.gz
接下来是安装grub,和多数源码包安装的方式一样,我们需要:
tar zxvf grub-0.95.tar.gz
cd grub-0.95
./configure
make
make install
好了,grub安装完成(得到了stage2_eltorito,为了节省大家的时间,我提取了这个文件,如果哪位可以上传供大家下载,mail我)
现在我们这样做,可以得到自己的grub光盘镜像:
mkdir iso
mkdir -p iso/boot/grub
cp /stage2_eltorito所在的路径/stage2_eltorito iso/boot/grub
cp /boot/grub/menu.lst iso/boot/grub
mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso
好了,现在grub.iso就是你所需要的镜像了
然后用cdrecord或者前端把镜像刻在cdr/rw就可以了
cdrecord -v dev=0,0,0 /grub.iso的路径/grub.iso speed=8
上面的命令,根据自己的情况修改
好了,这样我们就得到了一张grub启动光盘。
当然,由于制作grub启动光盘只需要200多k字节,所以在制作iso的时候,你可以放一些其他有用的东西在iso文件夹下,做成镜像。
感谢linuxaid的网友“咱们老百姓”提供的原文地址:
http://www.gnu.org/software/grub/manual/html_node/Making-a-GRUB-bootable-CD-ROM.html

 

GRUB怎么样做到光盘上去呢?用什么写到MBR里?
用EZBOOT在光盘上调用Grub的制作方法!
1. 把“ISOGRUB.BIN”这个文件放到光盘上的“EZBOOT”目录中。
2. 把“STAGE2”这个文件放到光盘上的根目录中。
3. 然后将 Grub 程序文件、IMG 文件和 ZIP 文件按目录放到光盘中。
4. 然后用“EZBOOT”调用“ISOGRUB.BIN”启动就可以。

传统的 Grub 在光盘上启动就是用 stage2_eltorito 这个文件,但是必须使用 mkisofs 才行。使用 isogrub.bin 就能摆脱这一限制,但要求是,得把 stage2 这个文件放到光盘的根目录下。 这个 stage2 文件的版本没有要求,比如,你可以使用曾经非常出名的蓝点的 stage2 文件。。。

软盘上的话,你得这么作:
在软盘上建立目录   a:\boot\grub\
然后在其中放入 stage1, stage2, (注意,不能使用支持一键恢复的 stage1 文件)
接着启动一个 Grub 的命令行, 然后运行:
grub> root (fd0)    说明, stage1, stage2, menu.lst 所在的位置
grub> setup (fd0)   安装它
你可以立即测试:
grub> chainload (fd0)+1
grub> boot
即可。

 

无软驱制作带splash的GRUB可引导ISO镜像

最好能有一个现成的软盘镜像,可以从RedHat安装光盘中提取boot.img。

将/dev/fd0文件重命名一下或者删除(如果你没有软驱,这个设备根本没有用,况且udev系统会在系统启动时自动创建这个设备文件)。然后将boot.img重命名为/dev/fd0。

格式化这个镜像:mkfs.ext2 /dev/fd0 挂载/dev/fd0,与挂载设备文件不同的是需要加上回环参数(-o loop)。然后将你现有Linux操作系统的/boot/grub/目录拷贝到挂载的目录下。注意,相对根目录的路径应该也是boot/grub。

运行grub程序,输入如下命令:
root (fd0)
setup (fd0)

大功告成,现在可以用qemu测试一下这个引导软盘镜像:
qemu -fda /dev/fd0 -boot a

这个镜像可以用于刻录可引导的CD光盘。k3b有这个功能。

轮到splash了。我们的引导光盘自然希望其绚烂多彩。有关打补丁编译grub使其支持splash的方法我就不说了,网上一搜一大把。

确保你使用的grub是带了splash补丁的,然后找一张你喜欢的图片,最好是640x480的,用gimp稍微编辑一下,然后用如下命令转换一下色深:
convert splash.jpg -colors 14 splash.xpm gzip splash.xpm

编辑你的软盘镜像中的/boot/grub/menu.lst,添加如下一句:
splashimage /boot/grub/splash.xpm.gz

然后再运行grub:
root (fd0) setup (fd0)

OK!下面的事情就是将/dev/fd0保存到你想要它存在的地方,以备下次使用。

tips 1:你可以再编辑一下你的/dev/fd0中的文件,比如加入一个小型的Linux--哦,你当然可以在ISO中加入一个大型的Linux :-)

tips 2: 这个ISO有什么用?呵呵,对于我来说,我做它的主要目的就是让它引导我移动硬盘上安装的Linux,走到哪都可以用同一个操作系统。还有一个作用,就是当你的引导区被重装Windows毁灭了的时候,可以用它来轻易恢复--以前我都是用KNOPPIX来恢复的,麻烦!

 

posted on 2010-01-01 12:16  Wu.Country@侠缘  阅读(4420)  评论(0编辑  收藏  举报