使用xorriso v1.5.2和grub4dos 0.4.6a -2024-02-26制作可启动ISO文件
目标
制作1个BIOS可启动的ISO文件
准备
xorriso-exe-for-windows-1.5.2pre.zip 支持x86_64平台windows使用
grub4dos-0.4.6a-2024-02-26.7z 支持bios启动的bootloader
先新建一个文件夹,然后解压上面两个压缩包到这个新建的文件夹。
DM.IMA diskgenius DOS版的可启动软盘映像
MAXDOS93.img 迈思 maxdos工具箱 9.3版本可启动软盘映像
步骤
1.在电脑某个文件夹,新建一个文件夹,名字改一下,比如DOS_IMGtoISO
2.在DOS_IMGtoISO里面新建文件夹,比如isofile
3.从grub4dos-0.4.6a复制grldr文件到isofile文件夹
4.从grub4dos-0.4.6a复制grldr_cd.bin到isofile文件夹
5.把DG.IMA,MAXDOS93.img放到isofile文件夹
6.打开文本编辑器notepad--或者notepad4,新建一个文件,保存到isofile文件夹,文件名字为menu.lst
menu.lst内容如下
timeout 30
default 0
setmenu --auto-num-on
title open maxdos 9.3
find --set-root /MAXDOS93.img
map --mem /MAXDOS93.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title open DiskGenius DOS
find --set-root /DG.IMA
map --mem /DG.IMA (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
7.现在进入上级文件夹DOS_IMGtoISO,把xorriso-exe-for-windows-1.5.2pre的
cygiconv-2.dll
cygwin1.dll
xorriso.exe
这三个文件复制到DOS_IMGtoISO里面
8.打开文本编辑器notepad--或者notepad4,新建一个文件,保存到DOS_IMGtoISO文件夹,文件名字为buildiso.bat
buildiso.bat内容如下
xorriso -as mkisofs -V bootiso -l -R -J -joliet-long -no-emul-boot -boot-load-size 4 --boot-catalog-hide -b grldr_cd.bin -hide grldr_cd.bin -hide-joliet grldr_cd.bin -o myiso.iso isofile
pause >nul
exit
9.鼠标双击buildiso.bat ,生成文件成功后,按回车键,即可关闭cmd窗口。此时在文件夹DOS_IMGtoISO,生成了myiso.iso文件。这个iso即可启动。UltraISO打开后,显示"可引导光盘"。
测试结果
使用Qemu启动测试器终结版,测试可以成功启动
命令参数解释
xorriso -as mkisofs -V bootiso -l -R -J -joliet-long -no-emul-boot -boot-load-size 4 --boot-catalog-hide -b grldr_cd.bin -hide grldr_cd.bin -hide-joliet grldr_cd.bin -o myiso.iso isofile
-as mkisofs 使用mkisofs兼容的命令模式
-V bootiso 设置卷名字为bootiso
-l,-full-iso9660-filenames 允许31字符长的 ISO9660 文件名
-R 使用Rock Ridge扩展
-J 使用Joliet系统
--joliet-long 使用Joliet系统的长文件名,长达103 Unicode字符
-no-emul-boot 非模拟启动方式
-boot-load-size 4 代表启动加载为4个512Byte的大小的代码,也就是光盘1个扇区2048KB
--boot-catalog-hide 隐藏启动目录文件boot.catalog
-b grldr_cd.bin 指定光盘的启动bin文件,这里使用grub4dos的,它会启动光盘的根目录grldr文件
-hide grldr_cd.bin 使指定的目录或文件在ISO 9660或Rock Ridge扩展的系统中隐藏。
-hide-joliet grldr_cd.bin 使指定的目录或文件在Joliet系统中隐藏。
-o myiso.iso 输出的iso文件路径
isofile 要制作的光盘根目录路径
故障排除
1.注意光盘目录的文件夹和文件的名字不要有中文,因为中文编码如果不一致,可能影响最终效果。建议使用英文名字。
2.menu.lst和buildiso.bat的文件扩展名不是txt。保存的时候注意,有些编辑器保存后,如果真正的扩展名是txt,那么需要重命名,去掉.txt扩展名。需要在windows资源管理器,显示完整的"文件扩展名",这样可以一下子看出来文件真正的扩展名。