Wie erstelle ich ein bootfähiges Windows 8-ISO-Image unter Linux?

Wie erstelle ich ein bootfähiges Windows 8-ISO-Image unter Linux?

Ich muss die Autounattend.xmlDatei in ein Windows 8-ISO-Image einfügen, damit das ISO automatisch installiert wird. Mein System muss unter Linux laufen und kann nur Linux-Shell-Befehle verwenden, daher können ISO-Tools unter Windows wie UltraISO nicht verwendet werden.

Ich habe mehrere Methoden ausprobiert, aber alle erstellten ISOs konnten nicht gebootet, sondern nur gedruckt werden

CDBOOT: Cannot boot from CD - Code: 5

A. Die erste Methode, die ich ausprobiert habe, ist:tuto

  1. Mounten Sie ISO in einem Ordner
  2. Kopieren Sie den gemounteten ISO-Inhalt in einen neuen Ordner
  3. Meine Dateien zum neuen Ordner hinzufügen
  4. Verwenden Sie mkisofsden Befehl, um ein neues ISO-Image zu erstellen

    mkisofs -o windows2008_new.iso -b boot/etfsboot.com -no-emul-boot   -boot-load-size 8 -boot-info-table  -V -J -l -D -N -UDF  -relaxed-filenames -V "WINSP"
    

B. Die zweite Methode, die ich ausprobiert habe:

MS-Cmd-Tool namens „oscdimg“ unter Windows zum Erstellen eines neuen Windows-ISO, es funktioniert. Also kopiere ich oscdimg in Linux und verwende Wine, um es auszuführen, es kann nicht normal ausgeführt werden.

Weiß jemand, wie man mit einem reinen Shell-Befehl ein bootfähiges Windows-ISO-Image in Linux erstellt?

Antwort1

Ich habe es geschafft, erfolgreich zu verwenden genisoimage(ein Debian-Fork von mkisofs).

Methode:

  1. Loopback-Mount des ISO

    mount -o loop <image>.iso /mnt/iso
    
  2. für Lese-/Schreibzugriff in sekundären Ordner kopieren

    cp -R /mnt/iso/ /mnt/iso2
    
  3. Änderungen vornehmen

  4. genisoimage -b <relative boot-img path> -no-emul-boot -boot-load-size 8 -iso-level 2 -udf -joliet -D -N -relaxed-filenames -o <new-image>.iso /mnt/iso2.`
    

Antwort2

Vorgeschlagene Methode für Windows 7, funktioniert aber nicht mit der Windows 10-ISO-Datei

# https://rwmj.wordpress.com/2010/11/04/customizing-a-windows-7-install-iso/
$ dd if=../en_windows_10_x64_dvd.iso \
    of=boot.img bs=2048 count=8 skip=734

$ mkisofs -o ../new-win.iso -b boot.img -no-emul-boot -c BOOT.CAT \
    -iso-level 2 -udf \
    -J -l -D -N -joliet-long -relaxed-filenames .

Ausgabe im ersten Schritt fehlgeschlagen

dd if=/home/masi/Downloads/en_windows_10_multiple_editions_version_1511_x64_dvd.iso of=/home/masi/Downloads/boot.img bs=2048 count=8 skip=734
8+0 records in
8+0 records out
16384 bytes (16 kB) copied, 0.000392973 s, 41.7 MB/s

Bitte lassen Sie mich wissen, wenn Sie eine neuere Methode für diese Aufgabe finden.

Betriebssystem: Debian 8.5 64 Bit
Hardware: Asus Zenbook UX303UA
Zielhardware: Asus PC

Antwort3

Ich wollte dasselbe machen, aber mit ei.cfg; ​​so habe ich es gemacht:

Erstellen Sie zuerst einen Einhängepunkt:

mkdir -p /mnt/image

Mounten Sie das offizielle Windows-Image unter /mnt/image:

sudo mount -o loop Win10_2004_English_x64.iso /mnt/image

/tmp/bootableWinErstellen Sie unter Beachtung der ISO-Ordnerstruktur ein separates Verzeichnis für Ihre Änderungen, da Sie die Loop-Einbindung nicht bearbeiten können.

In meinem Fall:

mkdir -p /tmp/bootableWin/sources
sudo tee /tmp/bootableWin/sources/ei.cfg <<EOF
[Kanal]
Einzelhandel
Ende der Laufzeit

Und zum Schluss verpacken:

mkisofs \
    -iso-Ebene 4 \
    -l \
    -R \
    -UDF \
    -D \
    -b boot/etfsboot.com \
    -no-emul-boot \
    -boot-load-size 8 \
    -hide boot.catalog \
    -eltorito-alt-boot \
    -eltorito-Plattform efi \
    -no-emul-boot \
    -b efi/microsoft/boot/efisys.bin \
    -o /Startseite/Nutzername/win10-outputimage.iso \
    /mnt/image /tmp/bootableWin/

Jetzt sollten Sie sowohl ein BIOS- als auch ein UEFI-bootfähiges Image mit der darin hinzugefügten Datei haben.

verwandte Informationen