2013-05-03 20:11:23 +0000 2013-05-03 20:11:23 +0000
50
50

Comment créer une USB bootable à partir d'une ISO bootable avec la ligne de commande sous Linux ?

J'ai un CD créé à partir d'un fichier ISO que j'utilise pour installer une version personnalisée d'Ubuntu via plop linux.

Le cd fonctionne bien mais j'aimerais utiliser une clé USB amorçable à la place. J'ai utilisé la commande dd pour essayer de créer l'USB amorçable :

dd if=filename.iso of=/dev/sdb1 bs=4k

Maintenant, cela copie les fichiers et rend l'USB amorçable mais j'obtiens l'erreur “Système d'exploitation manquant”

Des idées ?

Réponses (4)

58
58
58
2013-05-07 16:46:56 +0000

Ok, après quelques recherches, j'ai trouvé une solution, et je vais la passer en revue étape par étape. Le problème était double.

  1. Brancher la clé USB et déterminer le dispositif sur lequel elle est montée avec la commande :

  2. Montez le dispositif

  3. Je ne sais pas si c'est nécessaire, mais j'ai formaté la clé en FAT32, juste au cas où

  4. Maintenant, mon ISO utilisait isolinux et non syslinux. Je savais que cela fonctionnait avec les CD, alors j'ai compris que je devais appeler la commande isohybrid, qui permet à une ISO d'être reconnue par le BIOS à partir d'un disque dur.

  5. L'étape suivante consiste à copier l'ISO. Mon deuxième problème était ici, où je copiais sur la partition, sdc1, et non sur le périphérique, sdc.

3
3
3
2013-05-03 20:25:22 +0000

C'est un problème courant avec les clés USB SanDisk, ou les clés non formatées en FAT32.

Si ce n'est aucun des deux, il s'agit très certainement d'un problème lié à l'ordre de partition de votre clé ou au fichier syslinux.cfg.

1
1
1
2016-01-20 13:42:39 +0000

isohybrid peut ne pas toujours fonctionner. Par exemple, j'avais un .iso avec FreeDOS et isohybrid n'a pas pu y trouver certains fichiers importants (je ne sais pas s'ils auraient dû y être mis par syslinux, que j'ai aussi utilisé, ou autre chose). Je propose plusieurs alternatives ici.

1) Installer un autre bootloader à cet endroit comme GRUB. C'est expliqué ici :

“Supposons que la première partition de votre clé USB soit FAT32 et que sa partition soit /dev/sdy1” (j'avais grub2 sur mon Fedora Core, donc j'ai un peu changé les commandes) :

# mkdir -p /mnt/usb ; mount /dev/sdy1 /mnt/usb
# grub2-install --target=i386-pc --recheck --debug --boot-directory=/mnt/usb/boot /dev/sdy
# grub2-mkconfig -o /mnt/usb/boot/grub2/grub.cfg

# optional, backup config files of grub.cfg
# mkdir -p /mnt/usb/etc/default
# cp /etc/default/grub /mnt/usb/etc/default
# cp -a /etc/grub.d /mnt/usb/etc

# sync; umount /mnt/usb

2) Le wiki FreeDOS propose une méthode composée avec GRUB et syslinux ici (bien que je ne comprenne pas comment ils ont lancé grub> - je ne pouvais pas démarrer de l'usb jusqu'à ce stade).

3) Ici est un message qui peut être utile - il dit “Tant que les fichiers command.com, kernel.sys, syslinux.cfg, ldlinux.sys et fat32lba.bss sont à la racine du disque et que le MBR et le secteur d'amorçage ne sont pas réécrits, le disque devrait rester amorçable”.

4) Ici il est expliqué comment générer un fichier .iso amorçable avec un bootloader syslinux. Ils n'utilisent même pas l'isohybride. Malheureusement, cela ne m'a pas aidé (peut-être à cause de syslinux).

5*) Utilisez un programme Windows via wine. J'ai essayé rufus, mais ça n'a pas marché, il n'a pas trouvé l'appareil.

Je vous préviens que je n'ai malheureusement pas pu résoudre ce problème, mon appareil était inamovible, mais j'espère que cela pourra être utile à d'autres personnes (également celles qui veulent installer un linux sur l'usb). L'image usb générée par chtaube a cependant fonctionné pour moi, donc je pense que ces méthodes sont correctes.

UPD : La 3ème méthode fonctionne vraiment (avec une correction pour un fichier d'installation personnalisé).

UPD2 : (liens corrigés). Le problème avec isohybrid était probablement dû au fait que les versions d'isolinux.bin sur iso et de mon système étaient différentes. Recompilation de l'iso en utilisant genisoimage comme suggéré ici :

genisoimage -l -r -J -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o fd11new.iso fd11new

Il y avait aussi quelques problèmes, ils ont été résolus par la méthode ici avant genisoimage :

cp /boot/extlinux/*.c32 fd11new/isolinux/
extlinux --install /boot/isolinux

== fin UPD2 ==

0
0
0
2018-04-09 23:44:32 +0000

Vous pourriez utiliser bootiso utilitaire , qui fait exactement cela, en toute sécurité :

bootiso -d /dev/sdb filename.iso

bootiso vérifiera que le dispositif sélectionné /dev/sdb est connecté par USB et échouera s'il ne l'est pas, ce qui est un gros avantage en termes de sécurité. Il détectera également automatiquement le périphérique USB s'il y a exactement une clé USB connectée à votre système, pour le voir en action :

Si vous voulez installer le bootloader syslinux pour contourner les problèmes mentionnés par @xsdf, utilisez l'option -b :

bootiso -b -d /dev/sdb filename.iso

Pour l'installer :

curl -L https://rawgit.com/jsamr/bootiso/latest/bootiso -O
chmod +x bootiso