my9823 发表于 2013-11-27 11:28:07

制作grub2启动光盘捷径!

grub2的强大毋庸置疑,但我有不想装个linux系统,在制作grub2的救援盘,怎么办?偶然想起cdlinux的测试版是用的grub2启动,直接拿来用修改一下,在添加一些pe和img工具不就行了?开始:
1,下载cdlinux的iso,这个到http://distro.ibiblio.org/cdlinux/testing/,可以看到是2013年7月份的b6版本,下你要的版本有32和64位,最小的iso应该那个就行!
2.用7z解压出iso众的CDlinux目录,因为7z会保持原来的大小写,而winrar不知道会不会全部大写(没试过!)
3.把CDlinxu目录和你要其他合盘或者其他东西放到一个目录下,如我的:

7777是通用pe的目录,imgs是一些img工具,那个eltorito.img是光盘启动文件,在CDLinux目录的/boot/i386-pc目录里,不知道为什么用mkisofs的-b参数指定启动文件路径每次都不可以成功,而放到光盘根目录直接指定启动文件名就行了,搞不懂!
4. 接下来修改cdlinux目录,我的:

只有一个boot目录,boot下目录结构:
fonts目录就一个字体文件pf2字体,i386pc目录是cdlinxu自带的没有改动,grub.cfg是启动配置文件,memdisk是syslinux种的文件!
至于grub.cfg内容如下,完全拼接,因为grub2不熟悉,智能这样了!注意grub.cfg是utf-8编码,建议用notepad++第三方编辑器编辑,否则菜单显示会有些不爽!

set default=0
set timeout=20
insmod vbe
insmod font

if loadfont /CDlinux/boot/fonts/microhei.pf2; then
    insmod gfxterm
    set gfxmode=800x600
    set gfxpayload=keep
    terminal_output gfxterm
fi


menuentry '运行Win7 PE中文版(x86)' {
insmod ntldr
ntldr /7777/7pe_mgr
}

menuentry '运行1KeyGhost一键还原' {
linux16 /CDlinux/boot/memdisk raw
initrd16 /imgs/okdos.ima
}

menuentry '运行Windows密码清除器' {
linux16 /CDlinux/boot/memdisk raw
initrd16 /imgs/pwd.img
}

menuentry '运行Windows免密码登录' {
linux16 /CDlinux/boot/memdisk raw
initrd16 /imgs/kb.img
}

menuentry '运行Diskgenius磁盘管理' {
linux16 /CDlinux/boot/memdisk raw
initrd16 /imgs/dg.img
}

menuentry '运行MAXDOS9增强版工具箱' {
linux16 /CDlinux/boot/memdisk raw
initrd16 /imgs/md9.img
}
。最后用mkisofs制作iso,搞定!
mkisofs.exe-v-R-J-joliet-long   -V "Win7PE" -c boot.cat -hide boot.cat -b eltorito.img-no-emul-boot -boot-load-size 4 -boot-info-table -o winpe.iso 文件目录

my9823 发表于 2013-11-27 11:31:37

本帖最后由 my9823 于 2013-11-27 11:35 编辑

那个启动硬盘上的系统,你可以用search命令来定位,这个命令我不会用!
然后
insmod ntfs   //插入ntfs模块
insmod nltdr//插入ntldr模块
ntldr启动文件名(如bootmgr或者ntldr)
那个用chainloader好像也可以吧?

my9823 发表于 2013-11-27 11:48:08

这只是用了cdlinxu的启动文件,因为不熟悉要使用到那么些模块,所以只要山寨别人的了,他的那个启动文件中有必要的模块集成进去了,所以就用现成的了!至于i386目录尽量保持原来的目录下,这个路径估计是保存在启动文件里的,当然可以使用内置变量指定,这个就俺不会了!如果要显示命令帮助,还要用到zh_CN.gmo.gz,你可以尝试用版本接近的linux软件包中的zh_CN.mo用gzip压缩试试,估计也在要放到\boot\locales\目录里吧?

my9823 发表于 2013-11-27 11:52:27

如果没猜错的话,你只留下一个启动文件制作iso,就启动到grub的救援模式,再试试lsmod,看看有哪些模块集成进去了,在linux下在用grub-mkimage制作img集成这些模块,想改变目录名字的可以在linux下试试,或者那些什么cygwin环境中试试!

shan 发表于 2013-11-29 08:38:03

本帖最后由 shan 于 2013-11-29 08:40 编辑

好贴必须大力支持!期待楼主完善详细这个技术贴,给我等grub2盲人提供个最简便易懂制作方法!如果每一步配上图就更容易看懂了。手机浏览,不能够加
分,下次补上。

my9823 发表于 2013-11-29 10:19:17

其实grub最大的好处是模块化,需要使用哪些命令或功能,一般都在模块里,就像linux的驱动一样,例如需要访问ntfs分区,就插入ntfs模块:
insmod ntfs
这样你就可以使用ls命令列出ntfs分区的目录和访问哪些文件了,不然只能提示位置文件系统之类的提示……
你可以吧grub2想想成一个shell,

tt911 发表于 2013-12-2 16:10:21

大才到处有啊。
页: [1]
查看完整版本: 制作grub2启动光盘捷径!