Quelles sont les nuisances de la création d'un lecteur USB Windows 7 amorçable à partir de linux avec ms-sys ou dd?

J'ai lu des pages Web et des publications (ici et dans d'autres forums) sur la façon de créer un support USB Windows 7 d'installation de linux (pour installer Windows 7)

J'ai demandé à TechNet à ce sujet, et j'ai reçu une réponse avec des informations générales sur la façon de le faire:

"Personnellement, je ne suis pas très familier avec linux, mais tout ce que vous devez faire en général, de quelque façon que ce soit, c'est ce qui suit:

  1. Formatez un lecteur flash USB, soit fat32 soit ntfs créez une partition suffisamment grande pour héberger l'installation de Windows (prenez ou prenez 3 Go pour 64 bits, aroudn 2,5 gb pour 32 bits) et marquez cette partition comme étant active / amorçable. Puisque cela peut se faire avec Windows, mais tout aussi bien avec un outil comme gparted, vous devriez pouvoir faire de même dans debian.

  2. Une fois que vous avez créé cette partition, montez l'iso que vous téléchargez, et copiez tous les fichiers à partir de la racine, dans la racine du lecteur flash usb.

C'est tout ce qu'il y a à faire. "

J'ai trouvé une autre méthode dans divers endroits, ce qui est presque identique à ce qui a été mentionné dans TechNet. Cependant, il semble y avoir une étape manquante dans cette méthode et / ou une étape que je ne suis pas certaine est nécessaire.

dd ne fonctionne pas toujours. Fondamentalement, l'étape manquante était d'écrire un secteur de démarrage approprié sur le stick usb, ce qui peut être fait à partir de linux avec ms-sys . Cela fonctionne avec la version commerciale de Windows 7 .

Voici le résumé complet, voir la question serverfault pour plus de détails:

  1. Installez ms-sys .
  2. Vérifiez quel périphérique votre média USB est affecté ( fdisk -l ) ici, nous supposerons que c'est /dev/sdb .
  3. Supprimez toutes les partitions, créez une nouvelle reprenant tout l'espace, définissez le type sur NTFS et définissez-le pour démarrer:

    cfdisk /dev/sdb

  4. Créer un système de fichiers NTFS:

    mkfs.ntfs -f /dev/sdb1

  5. Mount iso et usb media:

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

  6. Copier sur tous les fichiers:

    # cp -r /mnt/iso/* /mnt/usb/

  7. Ecrivez Windows 7 MBR sur le stick usb:

    # ms-sys -7 /dev/sdb

  8. Assurez-vous que l'écriture est rincée (soyez patient, cela peut prendre quelques minutes):

    # sync

  9. Ouvert, 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émarrage", puis fermez

…et tu as fini.

Des questions

  • L'outil usb ne devrait-il pas fonctionner sans passer la dernière étape # ms-sys -7 /dev/sdb ? Ou est-ce pour rendre l'usb bootable? Est-ce que cela ne marque que la partition comme amorçable?

  • Ne serait-il pas préférable d'utiliser rsync au lieu de cp -r ?

  • Toutes ces étapes doivent-elles être faites en tant que root ? Sinon, est-ce que j'ai besoin de chmod tous les fichiers vers 664 et chown tous les répertoires qui sont utilisés pour monter le périphérique USB et l'image ISO? Je suppose qu'il est simplement plus facile de copier les données en tant que root et cela n'affecte pas les données.

  • Quelqu'un a-t-il essayé cette méthode ou quelque chose comme la copie de l'iso avec dd ?

La commande ms-sys est importante. Avec l'option -7 , il crée un secteur de démarrage compatible Windows 7 sur votre lecteur flash.

Vous ne pouvez pas utiliser dd parce que l'ISO utilise un système de fichiers ISO tel que UDF ou ISO9660 , où -comme votre lecteur USB ne supporte correctement que les systèmes de fichiers de disque tels que ext3, FAT32 ou NTFS

Est-il préférable d'utiliser rsync au lieu de cp -r?

Pas vraiment. cp -r fonctionne parfaitement bien. Il suffit de se rendre compte que NTFS gère les autorisations différemment pour Linux, donc l'utilisation de rsync pour garder tout intact n'a pas d'importance trop importante. Tout ce qui compte vraiment, c'est que les fichiers de l'ISO sont sur l'USB et que le secteur de démarrage est correctement formaté en utilisant ms-sys -7

Vous pouvez effectuer toutes les étapes en tant que root si vous le souhaitez. Les 2 étapes qui nécessitent vraiment root sont mkfs et les 2 mount

Si vous obtenez des problèmes d'autorisation même en tant que root, vous devrez peut-être monter votre USB en utilisant ntfs-3g /dev/sdb1 car certaines Distributions Linux fournissent uniquement un pilote Read-Only pour NTFS.

J'ai essayé avec dd (dd if = / file / win7.iso of = / dev / sdb), et ça ne marche pas.

Mes étapes pour le faire fonctionner:

  • Installer ms-sys
  • Participe pour créer une partition et créer un système de fichiers NTFS.

Ensuite, appliquez ces commandes:

 # mount -o loop win7.iso /mnt/iso # mount /dev/sdb1 /mnt/usb # cp -r /mnt/iso/* /mnt/usb/* # ms-sys -7 /dev/sdb*