UEFI/BIOS双启ISO制作脚本(mkisofs)
本帖最后由 hilsonma 于 2021-4-20 01:50 编辑@echo off
set bios=-no-emul-boot -boot-load-size 4 -b grldr
set uefi=-eltorito-alt-boot -no-emul-boot -eltorito-platform efi -b efi.img
set iso=-o z.iso
set dir=%1
if %1a==a set dir=iso1
set iso9660x=-U -max-iso9660-filenames -D
set RR=-R
set joliet=-J -joliet-long -hide-joliet boot.catalog
pushd %~dp0
bin\mkisofs %iso9660x% %RR% %joliet% %bios% %uefi% %iso% %dir%
支持拖放,将要打包成iso的内容放到独立的文件夹,将文件夹拖放到脚本上,即会将文件夹打包成iso
没有拖放就默认将iso1文件夹打包成iso,iso1是pe打包模板,将wim镜像改名boot.wim替换到iso1\boot运行脚本即可打包
默认打包生成的文件名为z.iso
要打包的文件夹里必须有grldr和efi.img这两个启动文件
grldr的内置菜单可以使用bootice修改,可以链接其他引导。
不建议跳过grldr直接使用其他引导,因为mkisofs+grldr的兼容性更好,成功率更高。
efi.img的内容可以使用WinImage修改,将其他efi文件改名为bootx64.efi来替换,也可添加32位引导文件bootia32.efi,efi.img的内容越简单越好。
支持 行動表達~ ~ 感谢分享!
╰○︿′
* ︿)
〈
~~~~~
感谢分享!! 很专业!!!{:1_183:} 好东西 顶起来 感谢分享 感谢分享 非常好用~!! 专业帮顶
^_^ 支持大大 支持大大 老大给力,收藏备用。 谢谢分享。 感谢分享! 给楼主反馈一个问题哈{:1_195:}。
这个 mkisofs的版本做出来的 ISO在UEFI下虽然能启动,但是并不是100%符合可启动ISO文件的规范(即 ELTORITO规范)。
http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=419840&pid=4027576&fromuid=572792
主要是-b efi.img 这个参数,应该用 -e efi.img这个参数,但是这个版本的mkisofs不支持这个参数, 在Linux上是支持-e这个参数的。
我也在找,看看有没有新版本的Windows下的mkisofs.exe可用。
试试 用oscdimg。 本帖最后由 hilsonma 于 2020-4-10 00:05 编辑
longpanda 发表于 2020-4-6 20:40
给楼主反馈一个问题哈。
这个 mkisofs的版本做出来的 ISO在UEFI下虽然能启动,但是并不是100%符 ...
已更新1楼脚本代码,但附件一直不能更新,不知论坛什么问题,明天再试。(附件已更新)
你可以按照1楼的代码修改之前的版本,就是添加了一个参数 -eltorito-platform efi
请添加此参数后再试生成的iso是否符合规范。
我不懂使用你的查看方式,试过 010-editor 也看不到你说的信息。 窄口牛 发表于 2020-4-6 23:56
用oscdimg。
我之前也是使用oscdimg,但后来发现bios启动,mkisofs+grldr比oscdimg更容易成功,而且mkisofs打包比oscdimg快得多。 hilsonma 发表于 2020-4-7 00:00
已更新1楼脚本代码,但附件一直不能更新,不知论坛什么问题,明天再试。
你可以按照1楼的代码修改之前 ...
大佬厉害!我用你更新的代码问题完美解决!期待你更多更好的作品!你这个脚本打包出来的ISO 体积很小!非常好!!!!!
http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=419840&pid=4027576&fromuid=572792 还有这区别啊,受教。 本帖最后由 longpanda 于 2020-4-7 09:52 编辑
hilsonma 发表于 2020-4-7 00:00
已更新1楼脚本代码,但附件一直不能更新,不知论坛什么问题,明天再试。
你可以按照1楼的代码修改之前 ...
修改过之后就OK了。多谢楼主! 那个查看的方式是我自己写的小程序解析的。
可以用010Editor, 直接Ctrl+F 搜索,选择 Hex Bytes类型, 搜索 91EF010000000000这个二进制串, 能搜到的(唯一一处)就是符合的。
hilsonma 发表于 2020-4-7 00:05
我之前也是使用oscdimg,但后来发现bios启动,mkisofs+grldr比oscdimg更容易成功,而且mkisofs打包比oscd ...
貌似 oscdimg+bootmgr 的启动成功率也是蛮高的 longpanda 发表于 2020-4-7 09:41
修改过之后就OK了。多谢楼主! 那个查看的方式是我自己写的小程序解析的。
可以用010Editor, 直接Ctrl+F ...
谢谢。
找到了。010editor 和 winhex 都找得到,查找十六进制数值 91EF010000000000
不同的iso偏移地址可能会不一样 牛啊 这个用UI编辑后EFI会失效,而oscdimf不会。大致是这个只是放efi.img的指针,而另一个是直接把efi.img放启动区的(我是这么理解的)。
我还是觉得oscdimg的好
主要这个参数太复杂
oscdimg打包g4d你要用那个引导的bin打包。给你个单文件的mkiosfs
窄口牛 发表于 2020-4-8 09:53
我还是觉得oscdimg的好
主要这个参数太复杂
oscdimg打包g4d你要用那个引导的bin打包。给你个单文件的mkio ...
谢谢。 支持!下载试试一下