Vraag Hoe UEFI-only opstartbare USB-live media te maken?


Live-media die beide manieren kunnen opstarten, kunnen een probleem zijn bij het installeren van Ubuntu op de momenteel beschikbare Windows 8-computers.

Met andere woorden, het belangrijkste voordeel van creëren UEFI-only opstartbare USB-livemedia is: u weet dat deze definitief is opgestart en geïnstalleerd via UEFI.

 Sinds Valve al UEFI-alleen USB-installatieprogramma's opstart met hun Debian gebaseerde Steam OS en UNetbootin - het beste alternatief voor Ubuntu's Startup Disk Creator - is niet compatibel met UEFI en is daarom misleidend. Ik denk dat we een apart onderwerp moeten hebben voor het maken van UEFI-only opstartbare USB-live media.


90
2017-12-26 10:03


oorsprong




antwoorden:


Overzicht

Het creëren van UEFI-only USB-live media opstarten is vrij eenvoudig. Kopieer de bestanden gewoon naar uw -FAT32 geformatteerd USB-poort. Dat is het!

Onthoud dat voor een installatie of het opstarten van de media:

Inhoudsopgave

  • Kopieer bestanden van de ISO-methode
    1. Voorbeeld via terminal
    2. Voorbeeld via GUI
    3. Voorbeeld op Windows
  • De ISO-loopback-methode (geavanceerd)
    1. Het binaire bestand maken
    2. Het configuratiebestand maken
    3. Persistance toevoegen
    4. De integriteit controleren
    5. UEFI Secure Boot

1. Kopieer bestanden van de ISO-methode

Deze methode werkt ook voor andere installatiemedia die EFI-laders bevatten, zoals Windows bijvoorbeeld.

1.1. Voorbeeld via terminal

U kunt zoiets als het volgende doen als 604A-00EA is je USB-drive en je hebt het al p7zip geïnstalleerd:

$ 7z x ubuntu-12.04-desktop-amd64.iso -o/media/$USER/604A-00EA/

U bent klaar als u slechts één partitie op deze USB-schijf hebt, anders moet u de partitie markeren als opstartbaar, bijvoorbeeld via parted:

# parted /dev/sdX set 1 boot on

Waar /dev/sdX zou jouw USB-drive zijn en 1 het partitienummer dat moet worden gebruikt om op te starten.

1.2. Voorbeeld via GUI

  1. Koppel het .iso-bestand en kopieer de inhoud naar uw USB-station. druk op Ctrl+H in Nautilus om ook verborgen bestanden weer te geven en te kopiëren.

    nautilus showing Disk Image Mounter in context menu when .iso-file is selected

  2. Voeg de opstartvlag toe via GParted.

    GParted showing how to manage partition flags

1.3. Voorbeeld op Windows

  1. Hetzelfde als hierboven, kopieer gewoon bestanden.
  2. druk op Windows / Super+X, ga naar Schijfbeheer en controleer of de partitie is gemarkeerd als actief. Op Windows-versies voorafgaand aan Windows 8, drukt u op Windows / Super+R om het run-menu te openen en te openen diskmgmt.msc, dat Schijfbeheer zou openen.

2. De ISO-loopback-methode (geavanceerd)

In plaats van de inhoud van een ISO-image te extraheren, konden GRUB en GRUB2 vanaf ISO-images direct opstarten via een loopback-apparaat. Aangezien het ISO-image UEFI-opstartbaar is, kunnen we een USB-schijf met meerdere ISO's met verschillende besturingssystemen instellen zonder een rotzooi op het USB-station te veroorzaken.

Als u ook Windows wilt opstarten, wilt u misschien kijken Sardu. Ik weet nog dat ik het in 2005 met Windows PE gebruikte en het lijkt te zijn bijgewerkt om USB-drives en UEFI te ondersteunen, maar vergeet niet dat deze tool ook oudere opstartmogelijkheden ondersteunt.

Wat hebben we nodig?

  • Zeer basiskennis van GRUB-configuratiebestanden.
  • Zeer basiskennis van UEFI-booting en GRUB, omdat we onze eigen GRUB-bootloader-afbeelding zullen genereren met een overvloed aan modules.
  • Een UEFI opstartbare ISO-image, een FAT-geformatteerde USB-drive en een machine die Linux uitvoert.
    • Nee, we hebben geen UEFI-installatie van Linux nodig (wat een situatie van kip en ei kan zijn), een traditionele Linux VM zoals in VirtualBox is prima.

2.1. Het binaire bestand maken

Zorg op uw Ubuntu-machine of VM voor het pakket grub-efi-amd64-bin is geïnstalleerd (grub-efi-ia32-bin is ook beschikbaar voor 32-bit Intel-architecturen bij nieuwere releases). Het pakket kan een andere naam hebben op een andere distributie, u kunt het vergelijken bestandsvermelding van het pakket om het juiste pakket voor uw distributie te vinden.

De volgende opdracht genereert de GRUB-afbeelding, in dit geval een EFI-binaire code die elke computer met een UEFI-firmware moet kunnen uitvoeren:

grub-mkimage -o bootx64.efi -p /efi/boot -O x86_64-efi \
 fat iso9660 part_gpt part_msdos \
 normal boot linux configfile loopback chain \
 efifwsetup efi_gop efi_uga \
 ls search search_label search_fs_uuid search_fs_file \
 gfxterm gfxterm_background gfxterm_menu test all_video loadenv \
 exfat ext2 ntfs btrfs hfsplus udf

elk standaard- UEFI-firmware moet kijken \EFI\BOOT\ voor een bestand met de naam boot{arch}.efi, dus maak de mappen op de USB-stick en kopieer de afbeelding die we zojuist hebben gemaakt naar deze locatie. Andere architecturen in plaats van x64 zijn mogelijk, maar laten we het eenvoudig houden met x64 / amd64.

2.2. Het configuratiebestand maken

Een zeer eenvoudig voorbeeld voor een grub.cfg configuratiebestand dat in dezelfde directory moet worden geplaatst als bootx64.efi zou er als volgt uitzien:

set timeout=3
set color_highlight=black/light-magenta

menuentry 'Boot Ubuntu 14.04.2 LTS from ISO' {
        set isofile="/efi/boot/ubuntu-14.04.2-desktop-amd64.iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject quiet splash persistent --
        initrd (loop)/casper/initrd.lz
}
submenu 'Useful snippets' {
    menuentry 'Ubuntu' {
            chainloader /efi/ubuntu/grubx64.efi
    }
    menuentry 'Windows' {
            chainloader /efi/Microsoft/Boot/bootmgfw.efi
    }
    menuentry 'Firmware Setup' {
            fwsetup
    }
}

Het belangrijkste is het configuratieblok met de titel Boot Ubuntu 14.04.2 LTS from ISO. U kunt de kleur en time-out naar eigen voorkeur wijzigen. ik kies black/light-magenta aangezien het er nog steeds een beetje Ubuntu-achtig uitziet, maar gemakkelijk te onderscheiden is door andere configuraties te ketenen. U kunt meer voorbeelden vinden voor andere distributies in de Arch Wiki en het lezen van de GRUB handleiding is echt de moeite waard, als je verder wilt gaan.

Terugkerende naar het configuratieblok, het zou duidelijk moeten zijn dat naar de ISO wordt verwezen als /efi/boot/ubuntu-14.04.2-desktop-amd64.iso, dus kopieer je ISO naar \EFI\BOOT\ en vervang ubuntu-14.04.2-desktop-amd64.iso in de configuratie met de daadwerkelijke bestandsnaam van uw ISO.

loopback loop $isofile is de regel, die ons ISO-bestand zal laden naar een loopback-device van waaruit we de Linux-kernel direct kunnen opstarten. Dit is mogelijk omdat onze EFI GRUB-afbeelding de loopback-module bevat. (Een beetje vallen en opstaan ​​was betrokken bij het uitzoeken welke modules redelijk zijn om mee te nemen. Je zou geen foutmeldingen moeten zien, het is nog steeds niet perfect.) Sprekend over de kernel kun je kernelparameters toevoegen zoals toram, parameters voor verschillende talen (voorbeeld locale=de_DE bootkbd=de) en zoals in het voorbeeld: persistent

2.3. Persistance toevoegen

U kunt een partitie toevoegen zoals beschreven in: Hoe krijg ik een live-USB om een ​​partitie te gebruiken voor persistentie? Of u kunt een maken casper-rw bestand en plaats het in de root van uw USB-station.

dd if=/dev/zero of=casper-rw bs=1M count=4094
mkfs.ext4 -m 0 casper-rw

Ik heb niet getest wat het absolute maximum is, het zou ergens tussen 4094 en 4096 MB moeten zijn. Gebruik een partitie als u van plan bent meer ruimte te gebruiken. Merk op dat elke wijziging in de (root) een aanpassing is aan het overlay-bestandssysteem, en zelfs bestanden verwijdert.

2.4. De integriteit controleren

Bekijk de antwoorden op de volgende vragen om te controleren of de Live ISO-inhoud op het USB-station in onberispelijke staat is:

2.5. UEFI Secure Boot

Secure Boot wordt verplicht met Windows 10-machines, ik stel voor dat u de PreLoader van de Linux Foundation bekijkt om Secure Boot-functionaliteit aan deze setup toe te voegen. Hier is wat ASCII-kunst die menu's van de bijbehorende HashTool illustreert.


Gefeliciteerd, ik zou zeggen dat je nu het opstarten van UEFI onder de knie hebt en niet meer bang hoeft te zijn.


111
2017-12-26 10:03



Ik wil er graag op wijzen (a) dat alle pc's die in de afgelopen vijf jaar zijn geleverd, deze mogelijkheid hebben; (b) dat de .iso-root van het installatieprogramma de volledige USB-stick kan gebruiken als gewone permanente opslag. (gebruik opties voor ro-mount om onbedoeld wissen te voorkomen.) voor moderne pc's en veelgebruikte gebruikspatronen lijkt dit een betere oplossing dan de standaardoplossing van live-usb-creator. - user1539216
Tijdens het gebruik van de GUI-methode ben ik er een paar tegengekomen symbolische links fouten. Is dit relevant? Kun je alsjeblieft uitleggen? - VRR
Hallo, LiveWireBT! Bedankt voor zo'n interessant antwoord !! Ik volgde 2. De ISO-loopback-methode (geavanceerd) en beheerd om UEFI opstarten vanaf USB-flashstation. Maar aan het einde van het booten kreeg ik de foutmelding: Kan / dev / loop2 on / cow niet aankoppelen en nadat ik op Enter had gedrukt, zag ik een prompt (initramfs). Kun je me ermee helpen? - zuba
Ik wil je ook bedanken voor een geweldige gids, het was duidelijk en beknopt. Ik heb er nooit aan gedacht om de thumb drive te partitioneren en er meerdere besturingssystemen op te hebben. Nogmaals bedankt! - Hatem Jaber
In 16.04 kan het "alle bestanden kopiëren" niet worden gestart vanwege het argument grub.cfg kernelregel "file = / cdrom / preseed / ubuntu.seed". Er is geen dergelijk bestand, waarschijnlijk gerelateerd aan de eerder genoemde missende symbolische link (ubuntu naar.). Bewerk grub.cfg om het bestand te verwijderen = ... en vervang het door "live-media-path = / casper / ignore_uuid" - ubfan1


Gebruik makend van dd werkte voor mij, om een ​​of andere reden werkte de GUI-versie niet. Dus, eerst, zou je dat willen bewaak de voortgang van dd, een andere optie is om de SIGUSR1-optie te activeren dd om de voortgang periodiek te rapporteren, maar dit is ingewikkelder dan pv.

Dan:

sudo dd if=path/to/image/file | pv | sudo dd of=/dev/device_you_want_to_use

(/dev/device_you_want_to_use zal typisch zijn /dev/sdb, maar controleer met df!)


1
2017-07-27 12:43



Het creëren van media op deze manier resulteert niet in UEFI-enkel en alleen opstartbare media. De nadruk ligt op de laatste alinea van de vraag: "Er is ook een voordeel bij het opstarten van alleen UEFI-USB-livemedia: je weet dat het definitief is opgestart via UEFI." Media hebben die beide kanten kunnen opstarten, is een probleem bij het begrijpen en instellen van een UEFI-opstartbare Ubuntu-installatie. - LiveWireBT
Ik snap het. Het rare is dat ik op deze manier een afbeelding kon maken die in de UEFI-modus is opgestart (dat weet ik, omdat de laptop zo was ingesteld dat alleen uefi-opstart mogelijk was en ook vanwege het oorspronkelijke scherm). Het gewenste antwoord werkte niet voor mij, de computer startte gewoon niet op met een afbeelding die gemaakt was door alleen de bestanden te kopiëren. - sup
@sup deze methode maakt media dat kan UEFI-geïnitialiseerd zijn. Het probleem is dat het dat niet is enkel en alleen UEFI-opstartbaar, zoals gevraagd in de vraag: het kan ook worden opgestart in de BIOS-modus. - Darael


Uittreksel van ISO-bestand naar FAT32

Het extraheren van de inhoud van een Ubuntu 64-bit ISO-bureaubladbestand naar een partitie met een FAT32-bestandssysteem en een opstartvlag, zal het werk doen: om een ​​live drive te maken, die alleen in de UEFI-modus opstart. Het wordt hier 'Kopieer bestanden van de ISO-methode' genoemd (in het geaccepteerde antwoord).

Test of u in UEFI- of BIOS-modus werkt

Maar het is eenvoudig om te testen in een lopend Ubuntu-systeem (zowel live als geïnstalleerd), als het is opgestart in de UEFI- of BIOS-modus. Voer deze opdrachtregel uit,

test -d /sys/firmware/efi && echo efi || echo bios

Dit maakt het eenvoudig om live systemen te gebruiken die in beide opstartmodi kunnen worden gebruikt, wat ook een voordeel kan zijn.

Zie ook de volgende links voor een meer gedetailleerde uitleg en beschrijving van de methode,

help.ubuntu.com/community/Installation/iso2usb

help.ubuntu.com/community/Installation/iso2usb/diy


1
2017-09-19 20:21