我收到了一个 ISO,这是一个带有一些额外内容的 WindowsPE 映像。我需要向其中添加一些文件。它仍然需要可启动。
我尝试了 isomaster,大部分情况下效果都很好,但是它不显示长文件名,而且如果我编辑它,它会破坏(所有!)长文件名。xorriso 也有同样的问题(我尝试过“-readfs any,norock, nojoliet, ecma119”)。
如果我挂载 ISO(在 Ubuntu 中),它会正常显示长文件名。
Xorriso 还警告称:“发现隐藏的 El-Torito 图像。无法确定其大小,因此修改图像或修补启动图像可能会导致不良后果。”
我如何向该 ISO 添加文件?
答案1
xorriso 命令
-boot_image "any" "keep"
before 命令-dev
可能会使 ISO 保持可启动状态。这取决于存在哪些启动设备。多会话的一个大障碍可能是存在 UDF 文件系统。我没有可启动的 MS-Windows ISO。所以我无法进行实验。
-read_fs "norock,nojoliet"
之前的命令-dev
阻止从 ISO 9660 Rock Ridge 树或 Joliet 树加载长名称。我猜想 Microsoft 不会编写我们的 Rock Ridge,而只会编写自己的 Joliet。建议:省略-read_fs
并让 xorriso 决定要加载哪个树。
列出所有加载的文件名而不进行刻录
xorriso -indev $the_iso -find / -- 2>&1 | less
更新:
我找到了Win10_1607_English_x64.iso
。它是一个 UDF,带有一个小型 ISO 9660 树,只有一个文件/README.TXT
。如果您明确挂载,则可以看到它-t iso9660
(自动默认值为-t udf
)。文本显示:
This disc contains a "UDF" file system and requires an operating system
that supports the ISO-13346 "UDF" file system specification.
该图像包含一个 El Torito 目录,其中引用了两个启动图像。一个用于 BIOS,一个用于 EFI,xorriso 可以保留它们。但考虑到有效载荷仅在 UDF 树中,xorriso 的 ISO 9660 多会话功能毫无用处。
答案2
另一个选择是在 WINE 中使用 Imgburn。我自己试过,还没有遇到过错误。(至少在 Wine 1.6 中没有)请注意,如果您最终得到了 Imgburn,不要运行默认安装程序,因为它与广告软件捆绑在一起。相反,使用 7-zip 打开安装程序 EXE 并提取实际程序。仅供参考 - 实际程序完全合法且安全。只是捆绑的安装程序使用糖果。
一旦您启动并运行 Imgburn,您就会发现它是一个非常强大的程序。
您需要将 ISO 挂载到文件系统并提取内容(请注意,您不要使用 Imgburn 执行此部分),然后将 ISO 的内容复制到您选择的文件夹中。完成后,您可以修改所需的任何文件。完成此操作后,您可以使用 Imgburn 将其重建为 ISO。您需要将引导扇区文件指定为etfsboot.com
ISO 中的文件: