我有一个可启动 iso,它可以启动到 isolinux 4.0.3,我想让它自己进行链式加载(我的实际目标是链式加载 isolinux.bin v4.0.1-debian,它应该启动 Ubuntu10.10 Live CD,但现在我只想让它自己进行链式加载)。
我无法让 isolinux 链式加载任何 isolinux.bin,无论哪个版本。它要么冻结,要么显示“校验和错误”消息。我正在使用 VMWare 来测试 iso。
我尝试过的事情:
.com32 /boot/isolinux/chain.c32 /boot/isolinux/isolinux-debug.bin (chainload self)
由此可见
Loading the boot file...
Booting...
ISOLINUX 4.03 2010-10-22 Copyright (C) 1994-2010 H. Peter Anvin et al
isolinux: Starting up, DL = 9F
isolinux: Loaded spec packet OK, drive = 9F
isolinux: Main image LBA = 53F00100
...机器冻结了。
然后我尝试了这个
(chainload GRUB4DOS 0.4.5b)
chainloader /boot/isolinux/isolinux-debug.bin
结果:
Error 13: Invalid or unsupported executable format
下次尝试:
(chainload GRUB4DOS 0.4.5b)
chainloader --force /boot/isolinux/isolinux-debug.bin
boot
结果:
ISOLINUX 4.03 2010-10-22 Copyright (C) 1994-2010 H. Peter Anvin et al
isolinux: Starting up, DL = 9F
isolinux: Loaded spec packet OK, drive = 9F
isolinux: No boot info table, assuming single session disk...
isolinux: Spec packet missing LBA information, trying to wing it...
isolinux: Main image LBA = 00000686
isolinux: Image checksum error, sorry...
Boot failed: press a key to retry...
我尝试过其他方法,但都失败了。有什么建议吗?
答案1
您将需要 chain.c32:
LABEL chain_isolinux
COM32 /boot/isolinux/chain.c32
APPEND isolinux=/boot/isolinux/isol401.bin
http://syslinux.zytor.com/wiki/index.php/Comboot/chain.c32
您还需要正确制作 ISO。您需要 -boot-info-table 选项。
mkisofs -o output.iso -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table CD_root
您还可以向 mkisofs 添加其他参数(例如添加对 Rock Ridge 的支持,...)。