Panoramica
La creazione di supporti live USB solo per UEFI è piuttosto semplice. Basta copiare i file sull'unità USB formattata FAT32 . Questo è tutto!
Ricordare che per un'installazione o l'avvio del supporto:
Sommario
- Copia i file dal metodo ISO
- Esempio tramite terminale
- Esempio tramite GUI
- Esempio su Windows
- Il metodo di loopback ISO (avanzato)
- Creazione del binario
- Creazione del file di configurazione
- Aggiunta di persistenza
- Verifica dell'integrità
- Avvio protetto UEFI
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
è la tua unità USB e hai già p7zip
installato:
$ 7z x ubuntu-12.04-desktop-amd64.iso -o/media/$USER/604A-00EA/
Hai finito se hai solo una partizione su questa unità USB, altrimenti devi contrassegnare la partizione come avviabile, ad esempio tramite parted
:
# parted /dev/sdX set 1 boot on
Dove /dev/sdX
si trova l'unità USB e 1
il numero di partizione da utilizzare per l'avvio.
1.2. Esempio tramite GUI
Montare il file .iso e copiare il contenuto sull'unità USB. Premi Ctrl+ Hin Nautilus per visualizzare e copiare anche i file nascosti.
Aggiungi il flag di avvio tramite GParted .
1.3. Esempio su Windows
- Come sopra, basta copiare i file.
- Premi Windows/Super+ X, vai su Gestione disco e controlla se la partizione è contrassegnata come attiva. Nelle versioni di Windows precedenti a Windows 8, premi Windows/Super+ Rper aprire il menu Esegui e
diskmgmt.msc
, per aprire Gestione disco.
2. Il metodo di loopback ISO (avanzato)
Invece di estrarre contenuti da un'immagine ISO, GRUB e GRUB2 sono stati in grado di eseguire l'avvio da immagini ISO direttamente tramite un dispositivo di loopback. Dato che l'immagine ISO è avviabile UEFI, possiamo configurare un'unità USB contenente più ISO con diversi sistemi operativi senza creare disordine sull'unità USB.
Se vuoi avviare anche Windows, potresti voler guardare SARDU . Ricordo di averlo usato con Windows PE intorno al 2005 e sembra essere stato aggiornato per supportare unità USB e UEFI, ma ricordo che questo strumento supporta anche l'avvio legacy.
Cosa ci serve?
- Conoscenza di base dei file di configurazione di GRUB.
- Conoscenze di base sull'avvio di UEFI e GRUB, in quanto genereremo la nostra immagine di bootloader GRUB con numerosi 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 macchina virtuale Linux tradizionale come in VirtualBox va bene.
2.1. Creazione del binario
Sul tuo computer o VM Ubuntu assicurati che il pacchetto grub-efi-amd64-bin sia installato (grub-efi-ia32-bin è disponibile anche per architetture Intel a 32 bit nelle versioni più recenti). Il pacchetto può avere un nome diverso su un'altra distribuzione, puoi confrontare l' elenco dei file del pacchetto per trovare il pacchetto giusto sulla tua distribuzione.
Il seguente comando genererà l'immagine 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\
un file chiamato boot{arch}.efi
, quindi crea le cartelle sull'unità USB e copia l'immagine che abbiamo appena creato in questa posizione. Altre architetture invece di x64 sono possibili, ma manteniamolo semplice con x64 / amd64.
2.2. Creazione del file di configurazione
Un esempio molto semplice per un grub.cfg
file di configurazione che dovrebbe essere collocato nella stessa directory in bootx64.efi
questo modo:
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
}
}
L'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
come sembri ancora un po 'Ubuntu, ma è facilmente distinguibile quando si eseguono il chainloading di altre configurazioni. Puoi trovare altri esempi per altre distribuzioni in Arch Wiki e leggere il manuale di GRUB vale davvero la pena se vuoi andare oltre.
Tornando al blocco di configurazione, dovrebbe essere ovvio che si fa riferimento all'ISO /efi/boot/ubuntu-14.04.2-desktop-amd64.iso
, quindi copia l'ISO \EFI\BOOT\
e sostituiscilo ubuntu-14.04.2-desktop-amd64.iso
nella configurazione con il nome file effettivo dell'ISO.
loopback loop $isofile
è la linea che caricherà il nostro file ISO su un dispositivo di loopback da cui possiamo avviare direttamente il kernel Linux. Ciò è possibile perché la nostra immagine EFI GRUB include il modulo loopback. (Un po 'di tentativi ed errori sono stati coinvolti nel capire quali moduli sono ragionevolmente da includere. Non dovresti vedere alcun messaggio di errore, tuttavia non è ancora 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 posso ottenere un live-USB per utilizzare una partizione per la persistenza? Oppure puoi creare un casper-rw
file e posizionarlo nella directory principale dell'unità USB.
dd if=/dev/zero of=casper-rw bs=1M count=4094
mkfs.ext4 -m 0 casper-rw
Non ho testato quale sia il massimo assoluto, dovrebbe essere compreso tra 4094 e 4096 MB. Utilizzare una partizione se si intende utilizzare più spazio. Si noti che ogni modifica a (root) è una modifica al filesystem overlay, anche eliminando i file.
2.4. Verifica dell'integrità
È necessario esaminare le risposte alle seguenti domande per verificare che il contenuto ISO live sull'unità USB sia in ottime condizioni:
2.5. Avvio protetto UEFI
L'avvio protetto diventerà obbligatorio con le macchine Windows 10, ti suggerisco di dare un'occhiata al PreLoader della Linux Foundation per aggiungere la funzionalità Avvio protetto a questa configurazione. Ecco alcune opere ASCII che illustrano i menu dell'HashTool in dotazione .
Congratulazioni, direi che ora hai imparato l'avvio UEFI e non dovresti più aver paura.