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

Hoe maak je een bootable USB van een bootable ISO met de opdrachtregel op Linux?

Ik heb een CD die is gemaakt van een ISO-bestand dat ik gebruik om een aangepaste versie van Ubuntu te installeren via plop linux.

De cd werkt prima, maar ik zou graag een opstartbare USB drive willen gebruiken. Ik heb het commando dd gebruikt om te proberen een opstartbare USB te maken:

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

Nu kopieert dit de bestanden en maakt het de USB opstartbaar, maar ik krijg de foutmelding “Missing operating system”

Iemand een idee?

Antwoorden (4)

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

Ok na wat onderzoek heb ik een oplossing bedacht, en ik zal het stap voor stap doornemen. Het probleem was tweeledig.

  1. Sluit de USB stick aan en bepaal op welk apparaat hij is aangesloten met het commando:

  2. Umount het apparaat

  3. Ik weet niet zeker of het nodig is, maar ik heb de drive geformatteerd in FAT32, voor het geval dat

  4. Nu gebruikte mijn ISO isolinux en niet syslinux. Ik wist dat het werkte met CD’s, dus ik bedacht dat ik het isohybrid commando moest aanroepen, dat het mogelijk maakt om een ISO te laten herkennen door de BIOS vanaf een harde schijf.

  5. De volgende stap is het kopiëren van de iso. Mijn tweede probleem lag hier, waar ik aan het kopiëren was naar de partitie, sdc1, en niet het apparaat, sdc.

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

Dit is een veel voorkomend probleem met USB-sticks van SanDisk, of sticks die niet in FAT32 zijn geformatteerd.

Als dat niet het geval is, is het zeker een probleem met de partitievolgorde van je stick of het syslinux.cfg bestand.

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

isohybrid werkt niet altijd. Ik had bijvoorbeeld een .iso met FreeDOS en isohybrid kon daar enkele belangrijke bestanden niet vinden (ik weet niet of ze daar door syslinux, dat ik ook gebruikte, hadden moeten worden gezet, of iets anders). Ik stel hier verschillende alternatieven voor.

1) Installeer daar een andere bootloader zoals GRUB. Het wordt uitgelegd hier :

“Veronderstel dat de eerste partitie van je USB stick FAT32 is en de partitie /dev/sdy1” (Ik had grub2 op mijn Fedora Core, dus ik heb de commando’s een beetje veranderd):

# 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) FreeDOS wiki biedt een samengestelde methode met GRUB en syslinux hier (hoewel ik niet begrijp hoe ze grub> hebben gestart - ik kon tot dat stadium niet van de usb booten).

3) Hier is een post die nuttig kan zijn - er staat “Zolang de bestanden command.com, kernel.sys, syslinux.cfg, ldlinux.sys en fat32lba.bss in de root van de drive staan en de MBR en boot sector niet herschreven zijn, zou de drive bootable moeten blijven.

4) Hier wordt uitgelegd hoe je een bootable .iso file genereert met een syslinux bootloader. Ze gebruiken niet eens isohybrid. Helaas heeft dat mij niet geholpen (misschien vanwege syslinux).

5) Gebruik een windows programma via wine. Ik heb rufus geprobeerd, maar dat werkte niet, het kon het apparaat niet vinden.

Ik waarschuw je dat ik dit probleem helaas niet kon oplossen, mijn apparaat was onbootable, maar ik hoop dat dit nuttig kan zijn voor andere mensen (ook diegenen die geen linux op de usb willen installeren). De usb image gegenereerd door chtaube werkte wel voor mij, dus ik denk dat deze methodes correct zijn.

UPD: De 3e methode werkt echt (met een correctie voor een aangepast installatie bestand).

UPD2: (vaste links). Het probleem met isohybrid was waarschijnlijk omdat de versies van isolinux.bin op de iso en mijn systeem verschillend waren. Hercompileerde de iso met genisoimage zoals voorgesteld hier :

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

Er waren ook wat problemen, die werden opgelost met de methode hier voor genisoimage:

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

== einde UPD2 ==

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

Je zou bootiso utility kunnen gebruiken, die precies dat doet, veilig:

bootiso -d /dev/sdb filename.iso

bootiso zal controleren of het geselecteerde apparaat /dev/sdb is aangesloten via USB en faalt als dat niet het geval is, wat een groot veiligheidsvoordeel is. Het zal ook automatisch een USB-apparaat detecteren als er precies één USB-stick op je systeem is aangesloten, zie het in actie:

Als je syslinux bootloader wilt installeren om problemen te omzeilen die @xsdf noemde, gebruik dan -b optie:

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

Om het te installeren:

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