尝试使用 xorriso 构建自定义 Ubuntu 18.04 iso 时出错

尝试使用 xorriso 构建自定义 Ubuntu 18.04 iso 时出错
#!/bin/bash

# The example names get mapped to their roles here
orig_iso="$HOME"/iso/foxclone.iso
new_iso="$HOME"/iso/foxclone025-02.iso
mbr_template="$HOME"/isohdpfx.bin
workdir="$HOME"/work
echo $HOME
echo $workdir is workdir
# Extract MBR template file to disk
dd if="$orig_iso" bs=1 count=432 of="$mbr_template"

# Create the new ISO image
xorriso -as mkisofs \
   -U  \
   -allow-lowercase  \
   -r -V 'foxclone025-02' \
   -o "$new_iso" \
   -J -J -joliet-long \
   -isohybrid-mbr "$mbr_template" \
   -b "$workdir"/isolinux/isolinux.bin \   <--------  fails here. The file does exist at that location.
   -c isolinux/boot.cat \
   -boot-load-size 4 -boot-info-table -no-emul-boot \
   -eltorito-alt-boot \
   -e boot/grub/efi.img \
   -no-emul-boot -isohybrid-gpt-basdat -isohybrid-apm-hfsplus 

终端错误 我已经花了两天时间试图解决这个问题,做了大量研究。有人发现我的眼睛漏掉了什么吗?

编辑:通过更改行来修复它:

 xorriso -as mkisofs \

 xorriso -as mkisofs "$workdir" \       

并删除行$workdir中的引用-b

答案1

xorriso 的投诉表明 ISO 中未找到 -b 文件。在命令中我看到了两个原因:

1:您使用绝对磁盘路径,而不是ISO中的路径。

2:没有 xorriso 参数来查看文件将通过哪个参数进入 ISO。实际上似乎根本没有文件被映射到 ISO 中。

提议:

如果您想要 ISO 中“$workdir”的所有文件,请添加参数“$workdir”。

如果您希望 isolinux.bin 出现在 ISO 的 /isolinux/ 中,请从选项 -b 的路径中删除前缀“$workdir”/,以便该路径符合 mkisofs 和 xorrisofs (*) 的规定。


xorriso -as mkisofs ... -b isolinux/isolinux.bin ... "$workdir"

(*) mkisofs 要求“相对于源路径”的磁盘路径,xorrisofs 要求在新 ISO 中的路径。ISO 中的默认工作目录是 /。因此路径“isolinux/isolinux.bin”可用且建议两者使用。

了解 Debian 原则上如何打包其 x86 可启动 ISO: https://wiki.debian.org/RepackBootableISO#Remove_the_unneeded_Jigdo_production_options

(xorriso 的支持邮件列表是[电子邮件保护]

祝你今天过得愉快 :)

托马斯

相关内容