Comment faire en sorte que Windows 7 USB Flash Installe le support sous Linux?

105

J'ai:

  • Image ISO du support d'installation de Windows 7
  • Clé USB 4 Go
  • pas de lecteur de DVD
  • Linux installé
Ian Kelling
la source
Si vous parvenez à effectuer toutes ces tâches à partir de votre bureau Linux, vous allez faire bouger les choses. Je pense que la partie la plus difficile serait de manipuler toutes les opérations effectuées par le Diskpart de Windows. Rendre la partition marquée comme 'active' et 'boot', 'primaire', etc.
p.campbell
3
Je pense que GParted ( gparted.sourceforge.net ) peut gérer parfaitement tous les drapeaux de partition. Voir par exemple gparted.sourceforge.net/screenshots.php . Et je n'ai pas testé, mais il semble que rsync puisse remplacer robocopy dans cette liste de contrôle.
Matthew Flaschen
1
Il existe de nombreuses réponses détaillées à la même question sur askubuntu.com/q/289559/135671
erik

Réponses:

181

OK, après avoir essayé sans succès toutes les méthodes mentionnées ici, je l’ai enfin fait fonctionner. En gros, l'étape manquante consistait à écrire un secteur de démarrage approprié sur la clé USB, ce qui peut être fait à partir de Linux avec ms-sysou lilo -M. Cela fonctionne avec la version commerciale de Windows 7.

Voici à nouveau le récapitulatif complet:

Installez ms-sys - si ce n’est pas dans vos référentiels, téléchargez-le ici . Ou bien, assurez-vous que lilo est installé (mais ne lancez pas l’étape liloconfig sur votre machine locale si, par exemple, Grub y est installé!)

Vérifiez quel périphérique est attribué à votre support USB - nous le supposerons ici /dev/sdb. Supprimez toutes les partitions, créez-en une nouvelle occupant tout l'espace, définissez le type sur NTFS (7) et n'oubliez pas de le définir comme étant amorçable:

# cfdisk /dev/sdb   ou   fdisk /dev/sdb ( type de partition 7 , et indicateur de démarrage )

Créez un système de fichiers NTFS:

# mkfs.ntfs -f /dev/sdb1

Écrivez Windows 7 MBR sur la clé USB (fonctionne également pour Windows 8), plusieurs options ici:

  1. # ms-sys -7 /dev/sdb
  2. ou (par exemple, sur les nouvelles installations d'Ubuntu) sudo lilo -M /dev/sdb mbr( info )
  3. ou (si syslinux est installé), vous pouvez exécuter sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb

Monter les supports ISO et USB:

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

Copier tous les fichiers:

# cp -r /mnt/iso/* /mnt/usb/   ... ou utilisez le navigateur de fichiers GUI standard de votre système

Appelez syncpour vous assurer que tous les fichiers sont écrits.

Ouvrez gparted, sélectionnez le lecteur USB, cliquez avec le bouton droit de la souris sur le système de fichiers, puis cliquez sur "Gérer les drapeaux". Cochez la case d'amorçage, puis fermez.

...et tu as fini.

Après tout cela, vous voudrez probablement sauvegarder votre support USB pour de futures installations et vous débarrasser du fichier ISO ... Utilisez simplement dd: # dd if=/dev/sdb of=win7.img

Notez que ceci copie tout l'appareil! - qui est généralement (beaucoup) plus volumineux que les fichiers copiés. Alors à la place je propose

# 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

Ainsi par exemple avec 8 M octets supplémentaires:

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

Comme toujours, vérifiez très attentivement les noms de périphérique lorsque vous travaillez avec dd.

La méthode de création d’une clé USB amorçable présentée ci-dessus fonctionne également avec le programme d’installation Win10 iso. Je l’ai essayé sous Ubuntu 16.04 en copiant Win10_1703_SingleLang_English_x64.iso (taille 4 241 291 264 octets) sur une clé USB de 8 Go - démarrage non UEFI [non sécurisé] uniquement. Après exécution, dd indique: 8300156 + 0 enregistrements sur 8300156 + 0 enregistrements sur 4249679872 octets (4,2 Go, 4,0 Go) copiés, 412,807 s, 10,3 Mo / s.

Inverse si / de la prochaine fois que vous voulez mettre le programme d’installation de Windows 7 sur USB.

jthurner
la source
1
Il serait bon de mentionner le type de partition numérique à utiliser également dans cfdisk (7, 86, 87?)
Johan Dahlin
5
Cela a fonctionné avec le type 7
Ropez
3
Juste une remarque: si votre système de fichiers ntfs génère des erreurs d’autorisations bizarres lorsque vous écrivez dessus même en tant que root, assurez-vous d’avoir installé ntfs-3g.
Jeremy Salwen
1
J'ai essayé ceci directement sur un disque dur, et j'ai eu l'erreur "Windows ne peut pas accéder aux sources d'installation" une fois que j'ai démarré à partir de celui-ci.
Jeremy Salwen le
4
appelez syncaprès la copie pour vous assurer que tous les fichiers sont bien écrits
Nicolas Dusart
13

Vous pouvez y parvenir avec dd, si votre PC prend en charge les disques UEFI et, par extension, GPT.

Ouvrez un terminal, votre besoin de trouver quel périphérique est votre clé USB. Si vous avez le lecteur monté, vous pouvez trouver le nom du périphérique en tapant "mount" et en regardant son entrée. Quelque chose comme ce qui suit:

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

Dans ce cas, la première partie de / dev / sdb est montée sur / media / USBDISK. Ouvrez un shell root et démontez le lecteur.

umount /dev/sdb1

Accédez au répertoire dans lequel votre ISO est stocké dans un shell racine et entrez: (Remplacez windows7.iso par le nom de l'iso et / dev / sdb par l'identifiant de périphérique de votre clé USB).

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

Si votre carte mère prend en charge le démarrage depuis une clé USB, il devrait pouvoir le démarrer. Cela va installer l'installateur sur la clé USB, pas le système d'exploitation lui-même.

TrueDuality
la source
21
Ca ne marche pas pour moi
1
Votre carte mère prend-elle en charge le démarrage à partir de l’USB? Ce sera le facteur décisif ultime pour savoir si cette approche fonctionnera ou non.
TrueDuality
11
Cela ne fonctionne pas pour moi non plus et ma machine supporte très bien le démarrage par USB. Cette approche peut peut-être fonctionner sur des machines capables de démarrer un stockage USB de style DVD, mais la plupart des BIOS supposent une présentation de type disque dur sur USB (ce qui signifie un MBR de 512 octets avec du code de démarrage). Une chose qui mérite d’être mentionnée: les images de CD / DVD de Fedora, contrairement à W7, ont effectivement un tel MBR avec code de démarrage et table de partition, ce qui les rend également compatibles avec le démarrage sur disque dur / USB.
Tronic
9
Cela nécessite que votre carte mère soit capable de démarrer un CD-ROM USB, pas seulement un disque dur USB
TrueDuality
12
L'étape d'installation de MBR manque à cette solution et ne fonctionnera généralement pas si elle n'y est déjà pas comme par magie. La solution de @Gunthers est complète.
Stolsvik
5

La suggestion de PCambell est bonne, mais vous voudrez aussi effacer le MBR, l'équivalent Linux est ci-dessous

J'ai essayé cela et cela a fonctionné (je ne suis pas sûr de savoir pourquoi la méthode dd a échoué mais il semble que la partition devait être ntfs?):

  • déterminer quel périphérique / dev / device correspond à votre lecteur flash USB et le démonter
  • effacer le MBR: dd if = / dev / zero of = / dev / device bs = 446 count = 1
  • lancer fdisk / dev / device
  • supprimez toutes les partitions et créez une partition principale, rendez-la amorçable, puis enregistrez les modifications
  • lancez mkfs.ntfs / dev / device1 (partition 1)
  • copier l'intégralité du contenu de l'installation iso de Windows sur la partition que vous avez créée

la source
-4

Au lieu de

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

vous écrivez comme root,

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

(AJOUTEZ 1 à la fin ou quel que soit votre clé USB.)

gonzo
la source
3
Non, le of = sdb est correct selon les réponses précédentes.
James Broadhead
1
Ceci est tout simplement faux.
Lukad
1
-1: ddbesoin d'écrire sur les périphériques, pas sur les partitions
ssc