无忧启动论坛

标题: grub4dos怎么引导iso中的menu.lst?不解压iso的话。 [打印本页]

作者: ryanliue    时间: 2017-12-9 14:21
标题: grub4dos怎么引导iso中的menu.lst?不解压iso的话。
自己瞎写的菜单,用FbinstTool中的Qemu测试无法引导

title 启动 HPY Windows 8 PE
find --set-root /bokt/imgs/8pex64h.iso
map --mem /bokt/imgs/firadisk.img (fd0)
map /bokt/imgs/8pex64h.iso (0xff)
map --hook
configfile /BOOT/GRUB/MENU.LST

HPY Windows 8 PE在这里下载的:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=178541
作者: 不点    时间: 2017-12-9 17:17
我来试试解释一下您的语句。
find --set-root /bokt/imgs/8pex64h.iso 找到设备(分区)中的 iso 文件,并设置当前默认设备为这个设备(分区)。
map --mem /bokt/imgs/firadisk.img (fd0) 把你的 firadisk 驱动程序 img 拷入内存并虚拟为“软盘 A:”。
map /bokt/imgs/8pex64h.iso (0xff)  把你的 iso 文件虚拟为光盘,此时,iso 文件必须是连续的(无碎片),否则可能会报错。
map --hook 这条命令让前面建立的两个虚拟盘开始生效。
configfile /BOOT/GRUB/MENU.LST 这条命令在当前设备(分区)下寻找 /BOOT/GRUB/MENU.LST 文件,如果找不到,会显示出错信息;如果找到,会递交控制权给文件 /BOOT/GRUB/MENU.LST。

纵观您的命令序列,您只有一条命令涉及到“改变当前默认设备(分区)”,那就是您的 find --set-root 命令。所以,在后续的命令序列中,你始终都以该设备(分区)为当前默认分区。

map --hook 也只是让各个虚拟盘生效而已,因此,map --hook 并不改变当前默认的设备(分区)。

因此,您的 configfile 命令并非去执行 (0xff) 这个设备(即虚拟光驱)上的 /BOOT/GRUB/MENU.LST 文件,而是企图在 ISO 文件所在的硬盘(或 U 盘)分区上去找 /BOOT/GRUB/MENU.LST。

您可以试试把 configfile 命令修改成这样:

configfile  (0xff)/BOOT/GRUB/MENU.LST

这才是执行虚拟光盘上的文件。你确认这个文件存在吗?如果不存在,照样会失败。您可以用

ls   (0xff)/

命令来列出光盘上的文件(或目录)。如果你发现有 BOOT 目录列出来了,您可以进一步,这样:

ls   (0xff)/BOOT/

它会列出 BOOT 目录的文件。您看看是否列出了 GRUB 目录。如果有列出,那么,您进一步,这样:

ls   (0xff)/BOOT/GRUB/

看看它是否列出了 MENU.LST 文件。文件名的大小写不要弄错了,否则您可能还得折腾一阵子。


作者: 2010sya    时间: 2017-12-9 20:19
给你个自动生成菜单的工具试试:
http://bbs.wuyou.net/forum.php?m ... d=380572&extra=




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3