Wie erstelle ich Windows 7 USB-Flash-Installationsmedien von Linux?


105

Ich habe:

  • ISO-Image von Windows 7-Installationsmedien
  • 4 GB USB-Stick
  • kein DVD-Laufwerk
  • Linux installiert

Wenn Sie es schaffen, all diese Aufgaben von Ihrem Linux-Desktop aus zu erledigen , werden Sie das Haus rocken. Ich denke, der schwierigste Teil wäre es, an all den Vorgängen zu fummeln, die Windows Diskpart ausführt. Die Partition als 'aktiv' und 'booten', 'primär' usw.
markieren

3
Ich denke, GParted ( gparted.sourceforge.net ) kann alle Partitionsflags problemlos verarbeiten. Siehe zB gparted.sourceforge.net/screenshots.php . Und ich habe nicht getestet, aber es sieht so aus, als ob rsync in dieser Checkliste die Robokopie ersetzen kann.
Matthew Flaschen

1
Es gibt viele detaillierte Antworten auf die gleiche Frage auf askubuntu.com/q/289559/135671
erik

Antworten:


181

OK, nachdem ich alle hier erwähnten Methoden erfolglos ausprobiert habe, habe ich es endlich zum Laufen gebracht. Grundsätzlich fehlte der Schritt, einen richtigen Bootsektor auf den USB-Stick zu schreiben, was unter Linux mit ms-sysoder möglich ist lilo -M. Dies funktioniert mit der Windows 7-Verkaufsversion.

Hier ist nochmal der komplette Überblick:

Installieren Sie ms-sys - falls es nicht in Ihren Repositories enthalten ist, können Sie es hier herunterladen . Oder alternativ, stellen Sie sicher , lilo installiert ist (aber nicht die liloconfig Schritt auf dem lokalen Feld laufen , wenn zB Grub dort installiert ist!)

Überprüfen Sie, welches Gerät Ihrem USB-Medium zugewiesen ist - hier wird davon ausgegangen, dass es sich um ein Gerät handelt /dev/sdb. Löschen Sie alle Partitionen, erstellen Sie eine neue Partition, die den gesamten Speicherplatz beansprucht, setzen Sie den Typ auf NTFS (7) und legen Sie fest, dass die Partition bootfähig ist:

# cfdisk /dev/sdb   oder   fdisk /dev/sdb (Partitionstyp 7 und bootfähiges Flag)

Erstellen Sie ein NTFS-Dateisystem:

# mkfs.ntfs -f /dev/sdb1

Schreiben Sie Windows 7 MBR auf den USB-Stick (funktioniert auch für Windows 8), hier mehrere Optionen:

  1. # ms-sys -7 /dev/sdb
  2. oder (zB bei neueren Ubuntu-Installationen) sudo lilo -M /dev/sdb mbr( info )
  3. oder (wenn syslinux installiert ist), können Sie ausführen sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb

ISO- und USB-Medien einbinden:

# mount -o loop win7.iso / mnt / iso
# mount / dev / sdb1 / mnt / usb

Kopieren Sie über alle Dateien:

# cp -r /mnt/iso/* /mnt/usb/   ... oder verwenden Sie den Standard-GUI-Dateibrowser Ihres Systems

Rufen Sie syncan, um sicherzustellen, dass alle Dateien geschrieben sind.

Öffnen Sie gparted, wählen Sie das USB-Laufwerk aus, klicken Sie mit der rechten Maustaste auf das Dateisystem und klicken Sie dann auf "Flags verwalten". Aktivieren Sie das Kontrollkästchen zum Starten und schließen Sie es.

...und du bist fertig.

Nach all dem möchten Sie wahrscheinlich Ihr USB-Medium für weitere Installationen sichern und die ISO-Datei entfernen ... Verwenden Sie einfach dd: # dd if=/dev/sdb of=win7.img

Beachten Sie, dies kopiert das gesamte Gerät! - Das ist normalerweise (viel) größer als die darauf kopierten Dateien. Also schlage ich stattdessen vor

# dd count=[(size of the ISO file in MB plus some extra MB for boot block) divided by default dd blocksize] if=/dev/sdb of=win7.img

Also zum Beispiel mit 8 M zusätzlichen Bytes:

# dd count=$(((`stat -c '%s' win7.iso` + 8*1024*1024) / 512)) if=/dev/sdb of=win7.img status=progress

Überprüfen Sie die Gerätenamen wie immer sehr sorgfältig, wenn Sie mit ihnen arbeiten dd.

Die oben dargestellte Methode zum Erstellen eines bootfähigen USB funktioniert auch mit dem Win10-Installationsprogramm iso. Ich habe es mit Ubuntu 16.04 versucht, indem ich Win10_1703_SingleLang_English_x64.iso (Größe 4.241.291.264 Byte) auf einen 8-GB-USB-Stick kopierte - nur in einem Nicht-UEFI-Boot (nicht sicher). Nach der Ausführung meldet dd: 8300156 + 0 Datensätze in 8300156 + 0 Datensätze aus 4249679872 kopierten Bytes (4,2 GB, 4,0 GiB), 412,807 s, 10,3 MB / s

Kehren Sie um, wenn Sie das Windows 7-Installationsprogramm das nächste Mal auf USB übertragen möchten.


1
Wäre schön, den numerischen Partitionstyp zu erwähnen, der auch in cfdisk verwendet werden soll (7, 86, 87?)
Johan Dahlin

5
Es funktionierte mit Typ 7
Ropez

3
Nur ein Hinweis: Wenn Ihr ntfs-Dateisystem seltsame Berechtigungsfehler aufweist, wenn Sie selbst als Root darauf schreiben, stellen Sie sicher, dass Sie ntfs-3g installiert haben.
Jeremy Salwen

1
Ich habe dies direkt auf einer Festplatte versucht und die Fehlermeldung "Windows kann nicht auf die Installationsquellen zugreifen" erhalten, nachdem ich von dieser gestartet habe.
Jeremy Salwen

4
Rufen Sie syncnach der Kopie an, um sicherzustellen, dass alle Dateien geschrieben sind
Nicolas Dusart

13

Sie können dies mit dd erreichen, wenn Ihr PC UEFI und in der Erweiterung GPT-Festplatten unterstützt.

Öffnen Sie ein Terminal, um herauszufinden, welches Gerät Ihr Pendrive ist. Wenn Sie das Laufwerk gemountet haben, können Sie den Namen des Geräts finden, indem Sie "mount" eingeben und sich dessen Eintrag ansehen. So etwas wie das folgende:

/dev/sdb1 on /media/USBDISK type vfat (rw,nosuid,nodev,uhelper=hal,uid=1000,utf8,shortname=mixed)

In diesem Fall wird die erste Partition von / dev / sdb unter / media / USBDISK gemountet. Öffnen Sie eine Root-Shell und hängen Sie das Laufwerk aus.

umount /dev/sdb1

Wechseln Sie in das Verzeichnis, in dem Ihre ISO-Datei in einer Root-Shell gespeichert ist, und geben Sie Folgendes ein: (Ersetzen Sie windows7.iso durch die ISO-Datei und / dev / sdb durch die Geräte-ID Ihres USB-Sticks.)

dd if=windows7.iso of=/dev/sdb

Wenn Ihr Motherboard das Booten von einem pendrive unterstützt, sollte es in der Lage sein, von diesem zu booten. Dadurch wird das Installationsprogramm auf dem Laufwerk und nicht das Betriebssystem selbst installiert.


21
Funktioniert bei mir nicht.

1
Unterstützt Ihr Motherboard das Booten von USB? Das ist der entscheidende Faktor, ob dieser Ansatz funktioniert oder nicht.
TrueDuality

11
Funktioniert auch nicht für mich und mein Computer unterstützt das Booten über USB einwandfrei. Möglicherweise funktioniert dieser Ansatz auf Computern, die einen USB-Speicher im DVD-Stil booten können, aber die meisten BIOS-Systeme setzen ein USB-Layout im HDD-Stil voraus (512-Byte-MBR mit darin enthaltenem Boot-Code). Zu erwähnen ist, dass Fedora-CD / DVD-Images im Gegensatz zu W7 über einen solchen MBR mit Bootcode und Partitionstabelle verfügen, sodass sie auch für das Booten über Festplatte / USB geeignet sind.
Tronic

9
Dies setzt voraus, dass Ihr Motherboard nicht nur USB-HDD
booten kann

12
Bei dieser Lösung fehlt der MBR-Installationsschritt und sie funktioniert normalerweise nur, wenn sie auf magische Weise bereits vorhanden ist. Die Lösung von @Gunthers ist vollständig.
Stolsvik

5

Der Vorschlag von PCambell ist gut, aber Sie möchten auch den MBR löschen. Das Linux-Äquivalent finden Sie weiter unten

Ich habe es versucht und es hat funktioniert (ich bin nicht sicher, warum die dd-Methode fehlgeschlagen ist, aber die Partition musste ntfs sein?):

  • Finde heraus, welches / dev / device dein USB-Stick ist und hänge es ab
  • Löschen Sie den MBR: dd if = / dev / zero von = / dev / device bs = 446 count = 1
  • Führen Sie fdisk / dev / device aus
  • Entfernen Sie alle Partitionen und erstellen Sie eine primäre Partition. Machen Sie diese bootfähig und speichern Sie die Änderungen
  • Führen Sie mkfs.ntfs / dev / device1 (Partition 1) aus.
  • Kopieren Sie den gesamten Inhalt der Windows-Installations-ISO auf die von Ihnen erstellte Partition

-4

Anstatt von

dd if=windows7.iso of=/dev/sdb

du schreibst als root,

dd if=windows7.iso of=/dev/sdb1 

(ADD 1 am Ende oder was auch immer Ihr USB-Laufwerk platziert ist.)


3
Nein, die of = sdb ist gemäß den vorherigen Antworten korrekt.
James Broadhead

1
Das ist einfach falsch.
Lukad

1
-1: ddmuss auf Geräte schreiben, nicht auf Partitionen
SSC
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.