Vraag Hoe maak je een opstartbare Ubuntu USB-flashdrive vanaf de terminal?


Is er een manier om een ​​opstartbare Ubuntu USB-stick te maken vanaf de terminal zonder gebruik te maken van applicaties van derden zoals YUMI, UNetbootin, Startup Disk Creator, enz.

Ik heb geprobeerd om een ​​opstartbare Ubuntu-flashdrive te maken met dd methode,

sudo umount /dev/sdb
sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1M

Het maakt bestanden op de USB-schijf, maar wanneer ik probeer de USB-schijf op te starten, wordt er een weergegeven Operating System Not Found fout.


263
2017-11-15 17:29


oorsprong


U moet ervoor zorgen dat uw USB-flashstation NIET is gemonteerd. Controleer met lsblk. Voer indien nodig sudo umount / dev / sdb uit (waarschijnlijk sdb1, sdb2). Toevoegen; echo $? na je opdracht dd kopiëren. Dus: sudo dd if = ... of = ... bs = 4M; echo $? Als de opdracht eindigt, moet de terugkerende waarde 0 zijn.
ik volgde je stappen, maar het maakt ook dezelfde bestanden als sudo umount /dev/sdb sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1M maakt.Het maakt er geen ubninit,ldlinux.sys,etc bestanden die vooral belangrijk zijn om te booten. - Avinash Raj
Ik zou grub op de MBR van de USB-schijf installeren als laatste stap. - Elder Geek
De gemakkelijkst manier waarop de ingebouwde tools die de terminal gebruikt, kunnen worden gebruikt dd zoals hier beschreven. Het werkt met alle hybride ISO-bestanden. Maar dd is een gevaarlijk hulpmiddel omdat het doet wat je zegt te doen zonder vragen. Dus als je het vertelt om de familiefoto's te wissen ... en het is een kleine typefout weg. Veel tools zijn veiliger. Ze helpen u bij het identificeren en selecteren van de doelschijf en bieden een laatste controlepunt, waar u kunt controleren of u naar de juiste drive gaat schrijven. De meeste hiervan zijn GUI-tools, sommige kunnen ook werken in de tekstmodus, b.v. mkusb-dus. - sudodus
De volgende link toont een voorbeeld, waarbij de interne schijf per ongeluk werd overschreven, wanneer een opdrachtregel met dd werd gebruikt om een ​​opstartbare Ubuntu USB-flashdrive te maken, askubuntu.com/questions/982552/accidentally-did-dd-dev-sda - sudodus


antwoorden:


Je kunt gebruiken dd.

 sudo umount /dev/sd<?><?>  

waar <?><?> is een letter gevolgd door een nummer, zoek het op. Vervolgens, volgende:

 sudo dd bs=4M if=input.iso of=/dev/sd<?> conv=fdatasync

waar input.iso is het invoerbestand, en /dev/sd<?> is het USB-apparaat waarnaar u schrijft (uitvoeren lsblk om alle stations te zien om uit te zoeken wat <?> is voor uw USB).

Deze methode is snel en heeft me nooit gefaald.


EDIT: voor degenen die op een Mac eindigen, gebruik je kleine letters voor bs=4m:

sudo dd if=inputfile.img of=/dev/disk<?> bs=4m && sync

EDIT: Als het USB-station niet opstart (dit is mij overkomen), komt dit doordat het doelwit een bepaalde partitie op de drive is in plaats van de drive. Het doel moet dus / dev / sdc zijn en niet dev / sdc <?> Voor mij was het / dev / sdb.

Referentie: https://superuser.com/a/407327 en https://askubuntu.com/a/579615/669976


302
2017-11-13 11:51



het werkt niet voor mij. - Avinash Raj
Werkelijk? Weet je zeker dat je de juiste .iso-bestandsnaam hebt, inclusief pad en de juiste / dev voor je USB-drive? Hoe faalt het? Is er een foutmelding of start het niet op met opstarten? Weet je zeker dat de .iso niet corrupt is? - Marc
U zou een corrupte .iso kunnen hebben. Heb je het gecontroleerd? Weet je zeker dat de .iso eigenlijk een kopie is van iets dat is bootable? - Marc
Oorspronkelijke vraag en meest opbeide antwoord is dezelfde persoon die zei dat deze methode niet voor hem werkt. ;-) Voor mij is goedgekeurd antwoord niet werkt en deze doet. :-) Upstemming. - Drachenfels
gebruik df -lh om te controleren wat dev/sdc is jouw /media/user/XXXX-YYY (de interfacenaam van de USB) - Peter Krauss


Een opstartbaar Ubuntu USB-flashstation vanaf terminal maken

  • Plaats de ubuntu.iso bestand op elke harde schijfpartitie.

  • Monteer vervolgens de ubuntu.iso bestand met de onderstaande opdrachten in terminal:

    sudo mkdir /media/iso/
    sudo mount -o loop /path/to/ubuntu.iso /media/iso
    
  • Plaats uw USB-flashstation. Mijn drive is /dev/sdd. Hier is een screenshot:

GParted screenshot

  • Uw schijf kan automatisch binnen worden gemonteerd /media/. Laten we aannemen dat het was gemonteerd in /media/xxx/.

  • Kopieer alle bestanden van /media/iso/ op je gemonteerde USB flash-drive door het onderstaande commando uit te voeren (zorg ervoor dat je de stip opneemt):

    cp -a /media/iso/. /media/xxx/
    
  • Vervolgens hebt u de ldlinux.sys bestand op uw USB-flashstation om USB te maken bootable. Mijn USB-partitie is /dev/sdd1; invoeren lsblk om te zien wat van jou is. Voer de onderstaande opdrachten uit:

    sudo apt-get install syslinux mtools
    sudo syslinux -s /dev/sdd1
    
  • Navigeer naar de /media/xxx mount map en hernoem de isolinux map naar syslinux. Ga vervolgens naar de hernoemde map en hernoem het bestand isolinux.cfg naar syslinux.cfg.

  • Start uw pc opnieuw op en wijzig de opstartvolgorde in BIOS om opstarten vanaf een USB-station mogelijk te maken. Nu start je Ubuntu USB-stick op en je kunt hem installeren.

Deze methode werkt voor elke Linux-distributie, niet alleen voor Ubuntu. U hoeft geen software van derden te installeren om een ​​Linux USB-flashstation te maken.


84
2017-11-07 18:19



Ik probeer het op dit moment, kunt u aangeven wat / waarom u gebruikt: cp -a in plaats van cp -r - moldovean
Jij hebt nodig sudo voor de syslinux opdracht. - Cammy_the_block
Deze methode werkte niet voor mij. De cp -a geeft: 'cp: kan geen symbolische koppeling maken' /media/xxx/./ubuntu ': bewerking niet toegestaan' en andere van dergelijke, omdat het doelwit fat32 is. Ik probeerde dat te negeren ... werkte niet - sheß
Belangrijk om op te merken dat de usb een fat32 bestandssysteem moet zijn, anders zal syslinux niet werken - Ricardo BRGWeb
De console laat me dezelfde fout zien als @ sheß. Ik heb het bestandssysteem (FAT32) en vlag BOOT geverifieerd. - Chofoteddy


Je bent er bijna bij dd, maar je mist een stap.

sudo umount /dev/sdX
sudo dd if=/path/to/ubuntu.iso of=/dev/sdX bs=4M && sync

waar sdX is uw usb-apparaat (dit kan worden geverifieerd met lsblk).

De sync bit is belangrijk als dd kan terugkeren voordat de schrijfbewerking is voltooid.


77



+1 voor vermelding sync. Zonder dit heb je geen idee of de inhoud daadwerkelijk is gekopieerd. En als je geen haast hebt, zou je dat moeten doen md5sum beide bestanden zijn gewoon dubbel zo zeker. - Dave
Misschien het vermelden waard de USB moet misschien worden (opnieuw) geformatteerd als FAT32 met sudo mkfs.msdos -F 32 /dev/sdX eerste? - Nemo
@Nemo, is het mogelijk dat dat een verschil maakt? dd naar / dev / sdX overschrijft elk bestaand bestandssysteem. - mwfearnley
sync is hier zinloos. Het beïnvloedt alleen de werking van het bestandssysteem. - punund
conv=fdatasync - fysiek schrijf output-bestand data voor afwerking moet zorgen voor de synchronisatie, maar een goede oproep om ervoor te zorgen dat het apparaat eerst wordt gedeactiveerd. - Johnathon Havens


Je hebt twee keuzes.

Als u een grafische interface wenst, gebruikt u usb-creator (het is in de ubuntu repos)

enter image description here

Als u een opdrachtregelhulpprogramma wilt, gebruikt u dd

#Replace X accordingly in both commands

sudo umount /dev/sdX
sudo dd if=/path/to/ubuntu.iso of=/dev/sdbX bs=1M

Wees er zeker van /dev/sdX is de flashdrive die u wilt gebruiken (deze zal de gegevens op de flashdrive vernietigen).

Zien https://help.ubuntu.com/community/Installation/FromUSBStickvoor aanvullende informatie.


36



ik wil alleen command line tools, niet gui tool (zoals startup disk creator) .Volgens de dd methode, slechts 3 mappen en 1 bestand is gemaakt in mijn usb. Terwijl ik probeer te booten zegt het operating system not found error.Files like ubninit,menu.c32,ubnpathl.txt,ubnfilel.txt,ldlinux.sys ontbreken (die erg belangrijk zijn om live ubuntu usb op te starten). - Avinash Raj
Ik probeerde de dd-methode met ubuntu.iso en het werkte! het is echter te veel tijd om op een USB te schrijven. Ik vraag me af waar bs = 1M voor staat. Ik heb deze site gevonden manpages.ubuntu.com/manpages/karmic/en/man1/dd.1.html. Nu vraag ik me af of het veranderen van de waarde het kopiëren naar de USB sneller maakt? En wat zijn de risico's .. misschien weet iemand het. - moldovean
De bs is de blokgrootte. dd zal 1 MB aan gegevens in het geheugen lezen en vervolgens doorgaan om het op de schijf in zijn geheel te schrijven. Met een heel klein blokformaat krijg je veel CPU-overhead. Het gebruik van een zeer grote blokgrootte kan resulteren in onverwachte bijwerkingen, b.v. langere pauzes zonder schijfactiviteit en / of groot RAM-gebruik. 1M of 4M is meestal een goede waarde wanneer een schijf wordt gemaakt van een ISO. Meer informatie over blokgroottes: stackoverflow.com/questions/6161823/... - ApolloLV
Ik vind het maken van een opstartbare usb iets dat ik zelden doe, maar als ik het doe, wil ik dat het goed wordt gedaan. Een kleinere blokgrootte kan langer duren, maar is dat een probleem? Nee. - Marc
@Marc - Het enige probleem is snelheid, een kleinere blokgrootte is niet meer of minder foutgevoelig dan een grotere blokgrootte en dus een kleinere blokgrootte! = "Goed gedaan". Goed gedaan, controleer de md5sum van de iso en bevestig het md5sum van de geschreven afbeelding. Zodra je de m5dsums hebt bevestigd, weet je dat het goed is gedaan. - Panther


Ontkoppel eerst het USB-apparaat en gebruik vervolgens lsblk om het apparaat te verifiëren.

Soms (meestal iso-bestanden) is dd niet voldoende en start de pendrive niet. In dit geval moet u mogelijk syslinux installeren:

sudo apt-get install syslinux

en voer dan de volgende opdrachten uit:

sudo mkfs -t vfat -I /dev/sdX

U wilt dat laatste commando uitvoeren naar /dev/sdX en niet  /dev/sdX1.

Ga vervolgens verder met de volgende opdrachten:

isohybrid /path/to/file.iso --entry 4 --type 0x1c
dd if='/path/to/file.iso' of=/dev/sdX bs=8M

of om de voortgang van het schrijven van afbeeldingen te bekijken:

pv -tpreb /path/to/file.iso | dd of=/dev/sdX bs=8M

of in plaats van dd, je kunt gebruiken cat in plaats daarvan:

sudo -s
cat /path/to/file.iso > /dev/sdX

Denk eraan om de sync-opdracht uit te voeren om de schrijfcache te spoelen

sync

web.archive.org/web/20140327085331/https://tails.boum.org/doc/first_steps/installation/manual/linux/index.en.html


23



Ik moet vermelden dat voor mij al het andere faalde, maar dit werkte - ik koos voor de cat opdracht. - Digital Dracula
Voor degenen die erop staan dd alleen is genoeg, ik had dit ook nodig om te werken. - GuiRitter
Als u een hulpmiddel wilt gebruiken dd wanneer ISO hybride is en mount, ISO-bestand kopieert + SYSLINUX installeert wanneer ISO dat niet is, gebruik dan bootiso in plaats daarvan. - Jules Randolph


$ dd if=ubuntu-14.04.1-desktop-amd64.iso of=/dev/sdX bs=1MB

Gebruik het pad niet om te boren.

  1. Gebruik de cd commando om naar de map met het .iso-bestand te gaan
  2. gebruik de opdracht dd if=FILE NAME HERE.iso of=/dev/sdX bs=1MB
  3. Wacht tot de console-uitvoer er ongeveer zo uitziet:

    1028+1 records in
    1028+1 records out
    1028653056 bytes (1.0 GB) copied, 55.4844 s, 18.5 MB/s
    
  4. Start op vanaf de usb.

Opmerking: zorg ervoor dat u naar het juiste apparaat schrijft; een usb wordt niet altijd gekoppeld aan: dev/sdX waar X elke letter kan zijn.


6



wat is de betekenis van bs = 1MB in dd commando ??? - juggernaut1996
@ juggernaut1996 geen. Dit is de blokgrootte die moet worden gebruikt bij het kopiëren. Aangezien er geen tel-argument is opgegeven, wordt de invoer in blokken van 1 MB gekopieerd. Het kan worden verwijderd. - sjbx
Het "Gebruik het pad niet naar bit" is een verkeerde informatie. Het proces zelf bak de padcomponenten niet in de gekopieerde afbeelding in een stap, dus het is niet relevant als je naar de map met je ISO-afbeelding navigeert of gewoon het volledige pad geeft. Bovendien kan dd de invoer van stdin ook accepteren, dus je kunt eenvoudig twee dd in elkaar pipen om ervoor te zorgen dat er geen pad in de afbeelding wordt ingebakken. - Gabor Garami
Dat werkt alleen voor hybride-ISO's, die vandaag de grote meerderheid van de gevallen vullen, maar er zijn merkbare uitzonderingen zoals UltimateBootCD. Gebruik bootiso in plaats daarvan. - Jules Randolph


Als u met "derde partij" "gui" bedoelt, Ik stel voor een lichtgewicht script met de naam bootiso na Avinash Raj antwoord, omdat dd werkt niet altijd. Het grote voordeel is dat het erg veilig is (voert veel beveiligingscontroles uit om het systeem niet te beschadigen), eenvoudig te installeren en draagbaar.

Ook, bootiso zal ISO-bestand inspecteren om uit twee modi te kiezen: beeld-kopie (dd) wanneer ISO-bestand hybride is, dat is USB-vriendelijk. En mount-rsync-modus wanneer het ISO-bestand niet-hybride is, in welk geval een SYSLINUX-bootloader automatisch wordt geïnstalleerd als dit wordt ondersteund [meer informatie over automatisch gedrag].

Hoe te gebruiken

Eerste optie, geef gewoon de ISO als eerste argument op en u wordt gevraagd om een ​​station te selecteren uit een lijst waarvan u de selectie hebt overgenomen lsblk:

bootiso myfile.iso

Of geef expliciet het USB-apparaat op:

bootiso -d /dev/sde myfile.iso

Snelle installatie

curl -L https://git.io/bootiso -O
chmod +x bootiso

Zie het in actie:


5



Ik ben het ermee eens, dit is een heel mooi script dat de enge stukjes uit het proces haalt. Meer details hier: tecmint.com/create-bootable-usb-in-linux-commandline - kr37


Probeer dit en heb me nooit meer dan 100 keer gefaald:

Formatteer de kaart:

$ sudo mkfs.vfat -F32 /dev/sdx

Monteer de ISO-afbeelding:

$ sudo mount ubuntu.iso /mnt

Inhoud kopiëren naar kaart:

$ sudo cp -rvf /mnt/* /SD_CardMountPoint

Dan:

  • andere naam geven isolinux map in syslinux
  • andere naam geven syslinux/isolinux.cfg naar syslinux/syslinux.cfg
  • andere naam geven syslinux/isolinux.bin naar syslinux/syslinux.bin
  • rennen syslinux -s /dev/sdx

-4



-1. Heb je dit zelfs getest? sudo cp -rvf /mnt/* /dev/sdx zal niet werken (of in ieder geval niet doen wat u van plan bent). Je kopieert geen bestanden naar een onbewerkt apparaat (/dev/). In plaats daarvan moet u de kaart koppelen en de inhoud van het ISO-bestand naar de kaart kopiëren (koppelpunt naar aankoppelpunt). En wat is er mis met het huidige geaccepteerde antwoord met dezelfde aanpak. - gertvdijk