GNU/Linux >> Tutoriels Linux >  >> Linux

Debian :création d'une clé USB d'installation amorçable de Windows 10 à l'aide du terminal (dd)

Je veux comprendre ce qui se passe

Développeur Rufus ici.

Ce que trop de gens ne comprennent pas, parce que les ISO Linux appliquent cette méthode, mais il s'agit essentiellement d'un HACK MAJEUR APPELÉ 'ISOHYBRID' , est que, dans la plupart des cas, vous ne pouvez pas simplement prendre une image ISO et la copier octet par octet sur une clé USB, et vous attendre à ce que cela démarre également.

En effet, le format ISO et les systèmes de fichiers sous-jacents qu'il utilise (ISO9660 ou UDF ) sont conçus pour le démarrage optique, qui est une bête complètement différente du démarrage régulier sur disque dur ou USB. D'une part, les supports optiques, et donc les images ISO (régulières), n'ont pas de table de partition, ce qui est (généralement) essentiel pour le démarrage du disque dur ou de l'USB, et ils n'ont (généralement) pas non plus d'enregistrement de démarrage principal, a.k.a. MBR, qui est essentiel pour le démarrage du BIOS.

Cela signifie que, si vous faites une copie 1:1 d'un fichier normal ISO, tel que Windows One, sur un disque, et essayez de démarrer voici ce qui va se passer :

  • Un système BIOS ou un système UEFI en mode Legacy/CSM ne verra aucun MBR, et surtout il ne verra pas le 0x55 0xAA séquence dans les 2 derniers octets du MBR qui indique qu'un disque est amorçable par le BIOS. Par conséquent, il ne pourra pas démarrer ce disque en mode BIOS.
  • Un système UEFI ne montera (généralement) pas UDF ou ISO9660 partitions à partir d'un disque ou d'un lecteur flash, car, même s'il possède des pilotes pour ces systèmes de fichiers, le disque résultant que vous avez créé manquera d'un MBR ou GPT tableau des partitions. Lors du démarrage d'un disque normal, UEFI est conçu pour rechercher d'abord une partition, puis rechercher un chargeur de démarrage (par exemple, /efi/boot/bootx64.efi ) sur cette partition. Donc s'il n'y a pas de MBR ou GPT table de partition sur le média, ce qui sera le cas pour un ISO normal , peu importe si l'ISO contient un fichier de chargeur de démarrage, car le micrologiciel UEFI ne pourra pas monter la partition sur laquelle il réside.

Ainsi, ce que font des utilitaires comme Rufus lors de la création d'un support de disque amorçable à partir d'un ISO Windows, qui est une image de support optique complètement standard, est :

  • Créez une table de partition, soit MBR ou GPT selon ce que l'utilisateur a sélectionné, et créez au moins une partition, qui utilisera généralement FAT32 ou NTFS comme système de fichiers (notez qu'il utilise des systèmes de fichiers complètement différents de ceux utilisés par une ISO).
  • Si MBR est utilisé, un peu de code dans le MBR qui localise le chargeur de démarrage secondaire, sur le MBR correspondant partition, qui est conçue pour démarrer l'exécution du noyau Windows, en mode disque, à partir de cette partition. Oh, et cela garantit également que le 0x55 0xAA le marqueur de démarrage est ajouté à la fin du MBR afin que le BIOS considère le disque comme amorçable. Ensuite, il copie également le contenu de l'ISO sur un FAT32 ou NTFS partitionner.
  • Si GPT est utilisé, Rufus vérifie qu'il existe réellement un fichier de chargeur de démarrage UEFI, tel que /efi/boot/bootx64.efi (eh bien, en fait, il le fait avant vous, il vous permet de sélectionner GPT, car il n'y a pas grand intérêt à essayer de créer un lecteur amorçable GPT s'il n'y a pas de chargeur de démarrage UEFI) puis le copie, avec le reste des fichiers ISO, généralement sur un FAT32 partition, depuis le démarrage à partir d'un FAT32 la partition est une exigence obligatoire de l'UEFI (mais cela ne signifie pas que l'UEFI ne peut pas démarrer à partir de NTFS ou exFAT si vous disposez des pilotes UEFI appropriés, ce qui peut s'avérer utile si vous disposez d'un ISO Windows avec un fichier de plus de 4 Go, car FAT32 ne peut pas prendre en charge de tels fichiers).

Désormais, ce qui précède ne fonctionne que lorsque les chargeurs de démarrage secondaires (c'est-à-dire ceux qui proviennent de Windows et que Rufus ne modifie pas) sont conçus pour prendre en charge les deux démarrage optique et régulier, ce qui signifie généralement qu'ils doivent gérer à la fois UDF ou ISO9660 et FAT32 ou NTFS systèmes de fichiers, ainsi que les autres différences qui se présentent lors du démarrage à partir du disque par rapport à l'optique. Mais Microsoft a conçu son chargeur de démarrage précisément pour cela, ce qui est la chose intelligente à faire , car, si votre système cible est UEFI, cela signifie que vous (généralement, tant que le problème de taille de fichier maximale de 4 Go de FAT32 n'a pas sa tête laide) n'ont pas besoin d'un utilitaire pour convertir une image ISO en une clé USB amorçable, mais vous pouvez simplement formater cette clé USB en FAT32 et y copier les fichiers ISO (copie de fichier, pas copie d'octets), et vous disposez d'un support de démarrage.

Et maintenant que nous avons parcouru tout ce qui précède, je peux me lancer dans une diatribe et expliquez pourquoi je pense que les mainteneurs de la distribution Linux, qui sont généralement plus intelligents que cela, rendent en fait un mauvais service à leurs utilisateurs, même s'ils essaient de les aider :

Presque tous les distributions Linux récentes utilisent un MAJOR HACK appelé "IsoHybrid", où quelqu'un a réussi à trouver un moyen de faire un ISO9660 l'image optique se fait passer pour une image disque normale, avec une table de partition, un MBR et tout... En d'autres termes, la plupart des ISO Linux que vous trouvez ces jours-ci sont abusifs le système de fichiers ISO9660 pour le faire ressembler à quelque chose pour lequel il n'a jamais été conçu :un double disque et une image optique.

Évidemment, le but est de créer une ISO qui peut aussi être utilisé avec le dd commande, même si une ISO ne devrait jamais pouvoir fonctionner de cette façon. Et je suis d'accord qu'en théorie, cela semble génial, car pouvoir utiliser une seule image pour des utilisations complètement différentes devrait être formidable pour les utilisateurs, mais en pratique, cela entraîne des problèmes souvent négligés :

  • De nombreux mainteneurs de distribution Linux ne veulent pas s'embêter à utiliser un système de fichiers secondaire que Windows peut monter (par exemple, ils utiliseront ext comme système de fichiers "secondaire" au-dessus de ISO9660 ), ce qui signifie que beaucoup des utilisateurs de Windows, qui créent un lecteur amorçable pour utiliser Linux pour la première fois, sont très confus quant à la raison pour laquelle ils ne peuvent plus accéder au contenu de leur lecteur flash. C'est encore pire si le "IsoHybrid" inclut également une partition système EFI (ESP), car ces utilisateurs ont alors l'impression que leur disque a complètement diminué en taille. Si vous allez sur reddit ou ailleurs, vous verrez de nombreux messages d'utilisateurs qui sont complètement confus quant à ce qui est arrivé à leur support USB, ce qui ne donne pas une bonne première impression Linux...
  • De nombreux mainteneurs de distributions Linux se concentrent tellement sur le fonctionnement d'ISOHybrid qu'ils ignorent complètement l'option de créer un support de démarrage UEFI en copiant simplement le contenu sur un FAT32 partition formatée, qui, vraiment, devrait toujours être la méthode préférée pour créer des lecteurs amorçables UEFI (car il est généralement beaucoup moins risqué de formater une partition puis de copier des fichiers que d'utiliser le dd commande). Pour cette raison, nous avons vu plusieurs problèmes qui rendent l'expérience utilisateur médiocre avec Manjaro, Ubuntu... C'est en fait mon principal point de discorde avec "ISOHybrid":cela ne devrait pas servir d'excuse pour abandonner les moyens établis de créer un support de démarrage !
  • GPT et "ISOHybrid" peuvent être problématiques car la table GPT secondaire sera considérée comme corrompue lors de l'utilisation de dd ... ce qui conduit en fait à un BSOD sur Windows 7 (mais c'est vraiment un bogue Windows plutôt qu'un problème ISOHybrid). Pourtant, ce n'est pas la meilleure expérience pour les utilisateurs de Windows qui créent des lecteurs amorçables...
  • Et enfin, parce que les "ISOhybrides" sont présentés comme s'ils étaient les médias les plus naturels au monde (ce qu'ils ne sont certainement pas), les gens comme vous sont amenés à croire que chaque image ISO peut être appliquée en utilisant dd , lorsqu'il s'agit de l'exception plutôt que la règle. C'est très regrettable, car cela crée des TONNES de confusion pour les utilisateurs, certains utilisateurs de Linux disant aux personnes qui souhaitent créer un support de démarrage Windows qu'elles devraient simplement pouvoir utiliser dd alors que cela ne fonctionnera certainement jamais ! De plus, si vous choisissez n'importe quel ISO Linux d'il y a 10 ans, je suis assez confiant que vous constaterez que presque aucun d'entre eux ne peut réellement être utilisé pour créer un support de démarrage en utilisant dd parce que ce truc "IsoHybrid" est en fait un développement récent.

Autant que je sache, Microsoft n'a pas l'intention de passer au "hack" qu'est ISOHybrid pour ses ISO Windows, ce qui signifie qu'il est peu probable que vous puissiez jamais utiliser dd pour créer un support USB amorçable à partir de celui-ci, et par conséquent, si vous souhaitez créer un support amorçable Windows à partir d'un ISO, vous pouvez :

  • (UEFI) Besoin de formater un disque avec un système de fichiers à partir duquel Windows peut démarrer (NTFS , FAT32 et plus récemment exFAT ) et extrayez les fichiers ISO dessus. Maintenant, si vous utilisez NTFS ou exFAT , vous devrez peut-être également faire un peu de travail supplémentaire...
  • (BIOS/Legacy) Besoin de formater un disque avec un système de fichiers à partir duquel Windows peut démarrer (NTFS ou FAT32 -- exFAT ne fonctionnera pas car Microsoft n'a jamais publié de chargeurs de démarrage BIOS pour lui), puis créez la chaîne de chargeurs de démarrage appropriée, du code de démarrage MBR aux enregistrements de démarrage de volume.

Ce n'est en fait pas si compliqué à réaliser, mais cela demande un peu plus de travail qu'une copie 1:1 à partir d'un fichier ISO.

J'espère que cela répond à votre question.


dd n'est pas le bon outil pour créer une clé USB amorçable Windows. Le moyen le plus simple consiste à utiliser woeusb .

Installer :

sudo apt-get install devscripts equivs gdebi-core
cd WoeUSB
./setup-development-environment.bash
mk-build-deps
sudo gdebi woeusb-build-deps_3.3.1_all.deb
dpkg-buildpackage -uc -b
sudo gdebi ../woeusb_3.3.1_amd64.deb

Maintenant, la version du paquet est 3.3.1 , en cas de mise à jour du package, la commande ./setup-development-environment.bash imprimera la version actuelle, vous devez la remplacer dans les commandes ci-dessus.

Utilisation :

Vous pouvez utiliser l'interface graphique, exécutez woeusbgui depuis la borne. Ou vous pouvez utiliser la CLI :

Démontez le périphérique USB (important). Exécutez ensuite :

sudo woeusb -v --device /path/to/windows.iso /dev/sdc

Linux
  1. Comment créer une clé USB amorçable à l'aide de la commande dd

  2. Installer Linux Mint avec Windows 8 | Double démarrage Windows 8 et Linux Mint 12

  3. Installer Java dans Ubuntu 20.10 à l'aide de Terminal

  4. Créer une clé USB amorçable sur PC à l'aide d'un fichier .iso sur MAC

  5. Comment créer une image bootable de Windows 10 dans Debian ?

Comment installer facilement Debian Linux

Comment installer Windows 11 sur Ubuntu 20.04 à l'aide de VirtualBox

Comment installer Skype sur Almalinux 8 en utilisant le terminal

Installer Debian 11 Bullseye sur VirtualBox

Installez Teamviewer sur Debian 11 ou 10 à l'aide du terminal de commande

Installation de DEB dans les systèmes Debian à l'aide de l'interface graphique ou du terminal - 2 façons