hilsonma 发表于 2020-4-1 11:49:30

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的内容越简单越好。



2010sya 发表于 2020-4-1 11:56:16

支持

dony2006 发表于 2020-4-1 13:01:35

行動表達~ ~ 感谢分享!
╰○︿′
* ︿)
  〈
~~~~~








kuer 发表于 2020-4-1 14:25:13

感谢分享!!

myminr 发表于 2020-4-1 16:27:33

很专业!!!{:1_183:}

小虎牙 发表于 2020-4-1 18:06:16

好东西 顶起来

Liberation 发表于 2020-4-1 18:59:40

感谢分享

tyhsg 发表于 2020-4-1 22:19:56

感谢分享

kuer 发表于 2020-4-2 01:06:00

非常好用~!!

langyun 发表于 2020-4-2 08:44:20

专业帮顶

^_^

879792799 发表于 2020-4-2 19:39:33

支持大大

879792799 发表于 2020-4-2 19:39:38

支持大大

shan 发表于 2020-4-2 20:08:26

老大给力,收藏备用。

liuyindou 发表于 2020-4-2 20:39:06

谢谢分享。

singel 发表于 2020-4-5 00:14:00

感谢分享!

longpanda 发表于 2020-4-6 20:40:36

给楼主反馈一个问题哈{: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可用。



xbwin96e 发表于 2020-4-6 20:44:41

试试

窄口牛 发表于 2020-4-6 23:56:47

用oscdimg。

hilsonma 发表于 2020-4-7 00:00:14

本帖最后由 hilsonma 于 2020-4-10 00:05 编辑

longpanda 发表于 2020-4-6 20:40
给楼主反馈一个问题哈。
这个 mkisofs的版本做出来的 ISO在UEFI下虽然能启动,但是并不是100%符 ...
已更新1楼脚本代码,但附件一直不能更新,不知论坛什么问题,明天再试。(附件已更新)

你可以按照1楼的代码修改之前的版本,就是添加了一个参数 -eltorito-platform efi
请添加此参数后再试生成的iso是否符合规范。

我不懂使用你的查看方式,试过 010-editor 也看不到你说的信息。

hilsonma 发表于 2020-4-7 00:05:22

窄口牛 发表于 2020-4-6 23:56
用oscdimg。

我之前也是使用oscdimg,但后来发现bios启动,mkisofs+grldr比oscdimg更容易成功,而且mkisofs打包比oscdimg快得多。

kuer 发表于 2020-4-7 02:26:36

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

窄口牛 发表于 2020-4-7 07:09:32

还有这区别啊,受教。

longpanda 发表于 2020-4-7 09:41:08

本帖最后由 longpanda 于 2020-4-7 09:52 编辑

hilsonma 发表于 2020-4-7 00:00
已更新1楼脚本代码,但附件一直不能更新,不知论坛什么问题,明天再试。

你可以按照1楼的代码修改之前 ...
修改过之后就OK了。多谢楼主! 那个查看的方式是我自己写的小程序解析的。
可以用010Editor, 直接Ctrl+F 搜索,选择 Hex Bytes类型, 搜索   91EF010000000000这个二进制串, 能搜到的(唯一一处)就是符合的。


Anson4 发表于 2020-4-7 10:23:04

hilsonma 发表于 2020-4-7 00:05
我之前也是使用oscdimg,但后来发现bios启动,mkisofs+grldr比oscdimg更容易成功,而且mkisofs打包比oscd ...

貌似 oscdimg+bootmgr 的启动成功率也是蛮高的

hilsonma 发表于 2020-4-7 13:24:58

longpanda 发表于 2020-4-7 09:41
修改过之后就OK了。多谢楼主! 那个查看的方式是我自己写的小程序解析的。
可以用010Editor, 直接Ctrl+F ...

谢谢。
找到了。010editor 和 winhex 都找得到,查找十六进制数值 91EF010000000000
不同的iso偏移地址可能会不一样

2013mqqdg 发表于 2020-4-7 13:55:30

牛啊

hhh333 发表于 2020-4-8 09:23:42

这个用UI编辑后EFI会失效,而oscdimf不会。大致是这个只是放efi.img的指针,而另一个是直接把efi.img放启动区的(我是这么理解的)。

窄口牛 发表于 2020-4-8 09:53:31

我还是觉得oscdimg的好
主要这个参数太复杂
oscdimg打包g4d你要用那个引导的bin打包。给你个单文件的mkiosfs

hilsonma 发表于 2020-4-8 12:01:33

窄口牛 发表于 2020-4-8 09:53
我还是觉得oscdimg的好
主要这个参数太复杂
oscdimg打包g4d你要用那个引导的bin打包。给你个单文件的mkio ...

谢谢。

hjj888 发表于 2020-4-11 18:11:43

支持!下载试试一下
页: [1] 2 3 4
查看完整版本: UEFI/BIOS双启ISO制作脚本(mkisofs)