Pourquoi «dd» ne fonctionne-t-il pas pour créer une clé USB amorçable?


36

Récemment, j'ai voulu créer une clé USB amorçable sous Linux. J'ai constaté qu'il y avait beaucoup d'opinions contradictoires sur la possibilité d'utiliser la commande 'dd' pour créer une clé USB amorçable. J'ai décidé de télécharger une image ISO et d'essayer. Bien que dd ait définitivement mis l’image sur la clé USB, elle n’était pas amorçable. Ma question est donc de savoir quel est l'ingrédient magique qui fera que cela fonctionne ou pourquoi cette approche a-t-elle persisté si elle ne fonctionne pas?

C'est la commande que j'ai utilisée,

dd if=/mint/iso/image of=/dev/sdb1 oflag=direct 

@sawdust pendant que vous déclarez que les réponses affichées sont un "no go", cet article ( community.linuxmint.com/tutorial/view/744 ) indique qu'il s'agit de la procédure correcte.
Dave G

1
@DaveG - Intéressant, apparemment, "dd" est une commande utilisable si le fichier source est une "image ISO hybride". Mais ce n'est pas une procédure générique pour chaque ISO . C'est peut-être cette distinction qui explique le conseil contradictoire que jdowner a rencontré.
sciure de bois

@sawdust merci pour la clarification supplémentaire à ce sujet.
Dave G

Vous pouvez avoir un système sur une clé qui doit être utilisé dans un système de démarrage EFI - mais votre machine est configurée pour utiliser un démarrage "classique". Donc vu avec une clé USB Linux Mint.
David Tonhofer

Voici une solution de contournement simple / géniale pour les images iso récalcitrantes (basée sur Ubuntu Live ISO): 1) Formatez la clé de sorte qu'il y ait un système de fichiers sur (par exemple) "/ dev / sdX1", 2) Montez la clé comme "/ mnt / usb "Par exemple, 3) Installez grub2 sur le stick:, grub2-install --boot-directory /mnt/usb/boot/ /dev/sdX4) Copiez l’image ISO précédemment téléchargée (par exemple" foolinux.iso ") dans le stick: cp foolinux.iso /mnt/usb/5) Créez le fichier" /mnt/usb/boot/grub2/grub.cfg "qui bottes linux de l'image ISO présente sur le bâton (suite)
David Tonhofer

Réponses:


32

Vous écrivez l'image sur la partition 1 de / dev / sdb

Changez ceci en la commande suivante:

dd if=/mint/iso/image of=/dev/sdb oflag=direct

cette information a été acquise d' ici


2
Je fais: sudo dd si =. / Debian-8.4.0-powerpc-DVD-1.iso de = / dev / rdisk3 bs = 1m et ce n'est pas bootable, des idées?
Yusufk

Je rdisk3 une partition ou un disque brut? Vous essayez d'écrire l'image sur une partition spécifique
Dave G

1
Je suis en train de faire / dev / sdb et ce n'est toujours pas bootable
holms

rdisk3 est le 3ème disque sur un mac. J'ai le même problème que Yusufk. Besoin de vérifier si c'est lié à l'UEFI.
Gavit

11

Vous avez copié l'image sur la première partition. Essayez de copier dans / dev / sdb plutôt que dans / dev / sdb1.

Le mécanisme réel varie un peu en fonction du type d’image utilisé, mais pour les images DOS / MBR simples, vous devez obtenir une table de partition correcte (avec la partition amorçable marquée comme étant amorçable, et le MBR - la partie de la 512 octets initiaux qui ne sont pas la table de partition - contenant le code de démarrage initial.


Je voudrais noter que plutôt que d'essayer de copier à nouveau l'ISO entière sur une autre partition, le simple fait de définir l'indicateur de démarrage sur la partition sur laquelle l'image a été copiée à l'origine peut également suffire (comme indiqué dans cette réponse)
GrayedFox

2

D'après mon expérience avec une autre distribution Linux, tout ce que vous avez à faire est de changer le fichier du chargeur de démarrage syslinux et de le modifier pour démarrer l'USB. Vous trouverez des informations plus détaillées à ce sujet sur le wiki syslinux .

Voir aussi cette recherche Google .


1

Vous aurez peut-être besoin d'avoir un BPB écrit dans votre chargeur de démarrage. Voir le message de Dex du vendredi 24 avril 2009 à 9 h 06 à l' adresse http://f.osdev.org/viewtopic.php?f=1&t=19681.

L'essentiel est que "si [votre micrologiciel usb] émule une disquette et que vous n'avez pas de BPB, il ne démarrera PAS"

Armé de ce conseil, j'ai pu résoudre ce problème. J'utilise Linux, donc ma commande DD était:

sudo dd bs=512 count=2880 if=IMG.bin of=/dev/sdb

Vous voudrez remplacer sdb par votre périphérique usb. Vous pouvez le trouver en exécutant

ls -l /dev/ | grep sd

avant et après l'insertion de votre usb pendant que linux est en cours d'exécution. Si vous obtenez par exemple sdb1 et sdb, choisissez l'option non indexée.


0

Vous êtes-vous assuré que votre carte mère est configurée pour démarrer à partir du périphérique USB avant de tenter de démarrer à partir de votre disque dur? Je suppose que c'est peut-être votre seul problème - il n'y a pas grand chose à utiliser ddcomme vous pouvez le voir.


1
C’était une question à laquelle j’avais réfléchi, notamment parce que je travaillais sur un vieil ordinateur. Donc, quand cela ne fonctionnait pas sur ma machine cible, je définissais l'ordre de démarrage sur l'ordinateur portable de ma femme (chut, ne lui dis pas) et il ne démarrait pas non plus.

0

J'ai également rencontré ce problème à quelques reprises.

Ce que j’ai trouvé qui fonctionne le plus souvent pour moi est de commencer par remplir le lecteur.

  1. Remplacez X par votre lettre ou votre numéro de lecteur pour le trouver:

    • Mac: diskutil list
    • Linux: lsblk
  2. Zéro-remplir le lecteur

    • Mac: dd if=/dev/zero of=/dev/rdiskX bs=4m
    • Linux: dd if=/dev/zero of=/dev/sdX bs=4M
  3. dd votre image à nouveau

(Les tailles de bloc de 4 meg semblent être les plus rapides pour moi)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.