我正在使用 Xorriso 并运行以下命令:
$MKISOFS \
-iso-level 3 \
-J -joliet-long \
-append_partition 2 0xef $UNIONDIR/$EFIIMG \
-partition_cyl_align all \
-add "$UNATTENDED_FILE" 'C:\System32\Sysprep' \
-o "$CFG_ISOPATH" \
"$UNIONDIR/"
填充变量的命令是这样的:
/usr/bin/xorriso -as mkisofs -iso-level 3 -J -joliet-long -append_partition 2 0xef /tmp/union.19/boot-efi.img -partition_cyl_align all -add /tmp/wf_script-Xjc2i3/unattended.xml | 'C:\System32\Sysprep' -o 991cc570-10d9-11ec-818a-5d4c9d0ae440.iso /tmp/union.19/
这是我收到的错误,它是由于 -add 选项而发生的:
+ /usr/bin/xorriso -as mkisofs -iso-level 3 -J -joliet-long -append_partition 2 0xef /tmp/union.19/boot-efi.img -partition_cyl_align all -add /tmp/wf_script-eZeXEW/unattended.xml 'C:\System32\Sysprep' -o 3d3839e0-10db-11ec-818a-5d4c9d0ae440.iso /tmp/union.19/
xorriso 1.5.0 : RockRidge filesystem manipulator, libburnia project.
Drive current: -outdev 'stdio:3d3839e0-10db-11ec-818a-5d4c9d0ae440.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 42.2g free
xorriso : FAILURE : -as mkisofs: Unrecognized option '-add'
xorriso : aborting : -abort_on 'FAILURE' encountered 'FAILURE'
+ ok 'Creating new windows ISO'
+ EXITCODE=5
+ '[' 5 = 0 ']'
+ echo 'FAILURE: Creating new windows ISO'
+ exit 5
FAILURE: Creating new windows ISO
+ cleanup
+ purge /tmp/etfsimg19 /tmp/etfsmnt.19 /tmp/lower.19 /tmp/prop.19 /tmp/union.19 /tmp/union.19 /tmp/upper.19 /tmp/work.19
+ cd /tmp
+ for X in "$@"
+ '[' -d /tmp/etfsimg19 ']'
+ for X in "$@"
+ '[' -d /tmp/etfsmnt.19 ']'
+ umount /tmp/etfsmnt.19
+ for X in "$@"
+ '[' -d /tmp/lower.19 ']'
+ umount /tmp/lower.19
+ for X in "$@"
+ '[' -d /tmp/prop.19 ']'
+ umount /tmp/prop.19
+ for X in "$@"
+ '[' -d /tmp/union.19 ']'
+ umount /tmp/union.19
+ for X in "$@"
+ '[' -d /tmp/union.19 ']'
+ umount /tmp/union.19
+ for X in "$@"
+ '[' -d /tmp/upper.19 ']'
+ umount /tmp/upper.19
+ for X in "$@"
+ '[' -d /tmp/work.19 ']'
+ umount /tmp/work.19
+ rm -rf /tmp/etfsimg19 /tmp/etfsmnt.19 /tmp/lower.19 /tmp/prop.19 /tmp/union.19 /tmp/union.19 /tmp/upper.19 /tmp/work.19
我需要 -add 选项的原因是因为我需要将文件 unattended.xml 放入 ISO 中的 C:\System32\Sysprep 文件夹中,这样当它运行时它将能够自行执行安装。
很感谢任何形式的帮助
问候
达尼洛
答案1
该命令-add
属于 xorriso 的本机命令集,与 mkisofs 选项不兼容。 (在那里,它需要一个最终参数--
来在下一个命令字之前结束其范围。鉴于您的目标,我会说您需要 command -map
,而不是-add
。)在 mkisofs 模拟中,您可以通过给出“pathspec”来定义 ISO 中的目标路径”的形式target_path=source_path
。
ISO 中文件或目录的路径必须以“/”作为分隔符。即使如此,路径部分C:
仍将是 ISO 中的目录名称。你真的想要这样吗? (我对 MS-Windows 的了解为 0。)
使用适合您意图的 ISO 路径,您可以实现通过 mkisofs 兼容选项插入$UNATTENDED_FILE
的$ISO_PATH
目标
-graft-points "$ISO_PATH"="$UNATTENDED_FILE"
"$ISO_PATH"="$UNATTENDED_FILE"
应在后面给出文本$UNIONDIR/
,以避免文件被$UNIONDIR/
覆盖"$ISO_PATH"
。 (当然"$ISO_PATH"
不能包含字符,如果确实需要=
可以用 来表示。)\=