fix(deploy-win): extract ISO with 7z so no-prompt boot patch works
xorriso -extract reads the ISO9660 name tree, which on a Windows ISO has
no Rock Ridge — names come back upper-cased/truncated, so the
`efi/microsoft/boot/efisys_noprompt.bin` lookup failed ("missing from
ISO") and a repack from that tree would corrupt Windows' long file names.
Extract with 7z instead (reads the UDF/Joliet tree, preserving the real
lower-case paths), excluding 7z's synthetic `[BOOT]` dump. Verified
end-to-end on the cached 26100.32860 ISO: 7z extract → xorriso repack
yields a 5 GB ISO with autounattend.xml + post-install.ps1 at the root and
efisys_noprompt.bin as the UEFI El Torito image (no boot prompt).
Also: cap the Joliet volume id at 16 chars (silence xorriso warning), add
a 7z preflight check, and add p7zip-full to setup-host-linux.sh.
This commit is contained in:
@@ -2174,6 +2174,7 @@ def template_deploy_win(
|
||||
(f"vmrun found: {vmrun}", bool(shutil.which(vmrun) or Path(vmrun).is_file())),
|
||||
(f"vmware-vdiskmanager found: {vdisk_mgr}", Path(vdisk_mgr).is_file()),
|
||||
("xorriso in PATH", shutil.which("xorriso") is not None),
|
||||
("7z in PATH", any(shutil.which(n) for n in ("7z", "7za", "7zr"))),
|
||||
(f"VMware Tools ISO: {tools_iso}", tools_iso.is_file()),
|
||||
]
|
||||
for label, ok in checks:
|
||||
|
||||
Reference in New Issue
Block a user