|
|
手头暂时没有空白光盘,懒得跑出去买了,于是便想用U盘加载ISO文件实现,因为以前没有搞过这东西,加之本人悟性较差,经过一天加一夜的努力,才终于搞定。
其间走过不少弯路,这里只给出最终实现方法,完整的探索过程见这个帖子,这个帖子是我最初在使用GRUB4DOS过程中遇到问题求助而发的。
总结方法:
1.格式化U盘,并用grubinst安装GRUB引导代码到U盘的MBR
2.复制grldr、fonts(启动菜单不需要支持中文则不需要fonts)到U盘根目录
3.根目录中编写menu.lst,举例:
- fontfile (hd0,0)/fonts
- default 0
- timeout 30
- title Gentoo Installer
- configfile (hd0,0)/boot/grub/menu.lst
- title commandline
- savedefault --wait=2
- commandline
- title reboot
- savedefault --wait=2
- reboot
- title halt
- savedefault --wait=2
- halt
复制代码
4.用UltraISO(甚至WinRAR)解压ISO文件中的所有内容到U盘根目录
5.已经完成!
要说明的是,上面是启动miniCD的方法,LiveCD稍微有点不同,因为miniCD光盘是用GRUB引导而LIVECD是用isolinux引导的。
相比较来说区别有两点:
1.U盘根目录中的menu.lst文件中configfile命令需修改为:
configfile (hd0,0)/isolinux/menu.lst
2.在isolinux目录下要根据isolinux.cfg文件自己编写一个menu.lst
isolinux.cfg文件:
- default gentoo
- timeout 150
- prompt 1
- display boot.msg
- F1 kernels.msg
- F2 F2.msg
- F3 F3.msg
- F4 F4.msg
- F5 F5.msg
- F6 F6.msg
- F7 F7.msg
- label gentoo
- kernel gentoo append root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot
- initrd=gentoo.igz vga=791
- label gentoo-nofb
- kernel gentoo append root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot
- initrd=gentoo.igz
- label memtest86
- kernel memtest86
复制代码
改写成menu.lst文件:
- default 1
- timeout 30
- title gentoo
- kernel gentoo root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot
- initrd gentoo.igz vga=791
- title gentoo-nofb
- kernel gentoo root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot
- initrd gentoo.igz
- title memtest86
- kernel memtest86
复制代码
改写过程中要注意的是:将所有的label改写成title;去掉append;修改initrd=gentoo.igz中的等号为空格;删除prompt 和display部分(我不太清楚GRUB是否支持这些命令,所以删了)
用这样的方式启动LiveCD与刻盘启动的唯一区别是刚启动的时候没有提示信息,也不能输入额外的内核参数,其实是因为我不太清楚如何用GRUB做到display,如果要加额外参数的话可以直接修改menu.lst
另外,在原求助贴中还有些关于gentoo.igz解压方面的资料,有兴趣的朋友可以看看 |
|