Come creare un supporto live USB avviabile solo UEFI?

88

Avere supporti live che possono avviarsi in entrambi i modi può essere un problema quando si installa Ubuntu su computer Windows 8 attualmente disponibili.

In altre parole, il vantaggio chiave nella creazione di supporti live USB avviabili UEFI-only è: lo sai che è stato sicuramente avviato e installato tramite UEFI.

Dato che Valve sta già facendo UEFI - solo gli installatori USB di avvio con il loro sistema operativo Steam Debian e UNetbootin - la migliore alternativa votata a Startup Disk Creator di Ubuntu - non è compatibile con UEFI e quindi fuorviante, penso che dovremmo avere un argomento separato per la creazione di contenuti live USB avviabili solo UEFI.

    
posta LiveWireBT 26.12.2013 - 11:03

3 risposte

108

Panoramica

Creazione di supporti live USB con avvio UEFI è abbastanza semplice. Basta copiare i file nella tua unità USB formattata FAT32 . Questo è tutto!

Ricorda che per un'installazione o l'avvio del media:

Indice

  • Copia i file dal metodo ISO
    1. Esempio tramite terminale
    2. Esempio tramite GUI
    3. Esempio su Windows
  • Il metodo loopback ISO (avanzato)
    1. Creazione del file binario
    2. Creazione del file di configurazione
    3. Aggiunta della persistenza
    4. Verifica dell'integrità
    5. UEFI Secure Boot

1. Copia i file dal metodo ISO

Questo metodo funziona anche con altri supporti di installazione che contengono caricatori EFI, come ad esempio Windows.

1.1. Esempio tramite terminale

Puoi fare qualcosa di simile al seguente se 604A-00EA è l'unità USB e hai già installato p7zip :

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

Il gioco è fatto se hai una sola partizione su questa unità USB, altrimenti devi contrassegnare la partizione come avviabile, ad es. tramite parted :

# parted /dev/sdX set 1 boot on

Dove /dev/sdX sarebbe l'unità USB e 1 il numero di partizione che dovrebbe essere utilizzato per l'avvio.

1.2. Esempio tramite GUI

  1. Montare il file .iso e copiare il contenuto sull'unità USB. Premi Ctrl + H in Nautilus per visualizzare e copiare anche i file nascosti.

  2. Aggiungi la bandiera di avvio tramite GParted .

1.3. Esempio su Windows

  1. Come sopra, copia i file.
  2. Premere Windows / Super + X , andare su Gestione disco e verificare se la partizione è contrassegnata come attiva. Nelle versioni di Windows precedenti a Windows 8, premi Windows / Super + R per aprire il menu di esecuzione e apri diskmgmt.msc , che aprirà Gestione disco.

2. Il metodo loopback ISO (avanzato)

Invece di estrarre il contenuto da un'immagine ISO, GRUB e GRUB2 sono stati in grado di avviarsi dalle immagini ISO direttamente attraverso un dispositivo di loopback. Dato che l'immagine ISO è avviabile UEFI, possiamo configurare un'unità USB che contiene più ISO con diversi sistemi operativi senza creare confusione sull'unità USB.

Se vuoi avviare Windows anche tu potresti voler dare un'occhiata a SARDU . Ricordo di averlo usato con Windows PE intorno al 2005 e sembra essere stato aggiornato per supportare unità USB e UEFI, ma ricorda che questo strumento supporta anche l'avvio legacy.

Di cosa abbiamo bisogno?

  • Conoscenza di base dei file di configurazione di GRUB.
  • Conoscenza di base di UEFI all'avvio e GRUB, poiché genereremo la nostra immagine di bootloader GRUB con molti moduli inclusi.
  • Un'immagine ISO avviabile UEFI, un'unità USB formattata FAT e una macchina che esegue Linux.
    • No, non abbiamo bisogno di un'installazione UEFI di Linux (che potrebbe essere una situazione di pollo e uova), una VM Linux tradizionale come in VirtualBox va bene.

2.1. Creazione del file binario

Sul tuo computer o macchina Ubuntu assicurati che il pacchetto grub-efi-amd64-bin è installato (grub-efi-ia32-bin è disponibile anche per le architetture Intel a 32 bit nelle versioni più recenti). Il pacchetto potrebbe avere un nome diverso su un'altra distribuzione, puoi confrontare la lista dei file del pacchetto per trovare il pacchetto giusto sulla tua distribuzione.

Il seguente comando genererà l'immagine di GRUB, in questo caso un binario EFI che ogni computer con un firmware UEFI dovrebbe essere in grado di eseguire:

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

Ogni firmware UEFI standard dovrebbe cercare \EFI\BOOT\ per un file denominato boot{arch}.efi , quindi creare le cartelle sull'unità USB e copiare l'immagine appena creata in questa posizione. Altre architetture invece di x64 sono possibili, ma restiamo semplici con x64 / amd64.

2.2. Creazione del file di configurazione

Un esempio di base per un file di configurazione grub.cfg che dovrebbe essere inserito nella stessa directory di bootx64.efi sarebbe simile a questo:

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
    }
}

La cosa importante è il blocco di configurazione con il titolo Boot Ubuntu 14.04.2 LTS from ISO .È possibile modificare il colore e il timeout in base alle proprie preferenze. Ho scelto black/light-magenta perché sembra ancora un po 'Ubuntu, ma è facilmente distinguibile durante il caricamento in catena di altre configurazioni. Puoi trovare altri esempi per altre distribuzioni nella Arch Wiki e nella lettura di GRUB vale davvero il tuo tempo se vuoi andare oltre.

Tornando al blocco di configurazione, dovrebbe essere ovvio che l'ISO è referenziato come /efi/boot/ubuntu-14.04.2-desktop-amd64.iso , quindi copia il tuo ISO su \EFI\BOOT\ e sostituisci ubuntu-14.04.2-desktop-amd64.iso nella configurazione con il nome file reale della tua ISO.

loopback loop $isofile è la linea, che caricherà il nostro file ISO su un dispositivo di loopback dal quale possiamo avviare direttamente il kernel di Linux. Questo è possibile perché la nostra immagine EFI GRUB include il modulo di loopback. (Un po 'di prove ed errori sono stati implicati nel capire quali moduli sono ragionevoli da includere. Non dovresti vedere nessun messaggio di errore, comunque non è perfetto.) Parlando del kernel puoi aggiungere parametri del kernel come toram , parametri per lingue diverse (esempio locale=de_DE bootkbd=de ) e come nell'esempio: persistent

2.3. Aggiunta di persistenza

È possibile aggiungere una partizione come descritto in: Come si ottiene un live-USB per utilizzare una partizione per la persistenza? Oppure puoi creare un file casper-rw e posizionarlo nella radice della tua unità USB.

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

Non ho provato quale sia il massimo assoluto, dovrebbe essere compreso tra 4094 e 4096 MB. Utilizzare una partizione se si intende utilizzare più spazio. Nota che ogni modifica al (root) è una modifica al filesystem di sovrapposizione, anche cancellando i file.

2.4. Verifica dell'integrità

Dovresti dare un'occhiata alle risposte alle seguenti domande per verificare che il contenuto ISO dal vivo sull'unità USB sia in ottime condizioni:

2.5. UEFI Secure Boot

Il Boot sicuro diventerà obbligatorio con i computer Windows 10, suggerisco di dare un'occhiata al PreLoader di Linux Foundation per aggiungere la funzionalità Secure Boot a questa configurazione. Ecco alcuni art ASCII che illustrano i menu del HashTool che accompagna .

Congratulazioni, direi che ora hai padroneggiato l'avvio da UEFI e non dovresti avere più paura.

    
risposta data LiveWireBT 26.12.2013 - 11:03
2

Estrai dal file ISO a FAT32

Estrarre il contenuto di un file ISO desktop a 64 bit di Ubuntu in una partizione con un file system FAT32 e un flag di avvio farà il lavoro: per creare un'unità live, che si avvia solo in modalità UEFI. Si chiama 'Copia file dal metodo ISO' qui (nella risposta accettata).

Verifica se si sta eseguendo in modalità UEFI o BIOS

Ma è facile da testare su un sistema Ubuntu funzionante (sia live che installato), se è stato avviato in UEFI o in modalità BIOS. Esegui questa riga di comando,

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

Questo rende semplice l'uso di sistemi live che possono essere utilizzati in entrambe le modalità di avvio, il che può anche essere un vantaggio.

Vedi anche i seguenti link per una spiegazione più dettagliata e una descrizione del metodo,

help.ubuntu.com/community/Installation/iso2usb

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

    
risposta data sudodus 19.09.2017 - 22:21
1

L'utilizzo di dd ha funzionato per me, per qualche motivo, la versione della GUI non ha funzionato. Quindi, per prima cosa, potresti voler monitorare la progressione di dd , un'altra opzione sta usando l'opzione SIGUSR1 per attivare dd per segnalare periodicamente il suo avanzamento, ma è più complicato di pv .

Quindi:

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

( /dev/device_you_want_to_use sarà in genere /dev/sdb , ma controlla con df !)

    
risposta data sup 27.07.2014 - 14:43

Leggi altre domande sui tag