Sembra che installare Ubuntu su un hard disk esterno non sia possibile con UEFI, dove come con MBR non c'era una grande differenza tra esterno e interno. È vero o è ancora possibile?
È anche possibile combinare entrambi i metodi di avvio?
Sembra che installare Ubuntu su un hard disk esterno non sia possibile con UEFI, dove come con MBR non c'era una grande differenza tra esterno e interno. È vero o è ancora possibile?
È anche possibile combinare entrambi i metodi di avvio?
Risposte:
In realtà è possibile .
Prima di continuare, queste istruzioni sono pensate per le partizioni di sistema EFI (ESP) vuote e probabilmente sovrascriveranno i file esistenti o non funzioneranno come previsto. Almeno fare dei backup!
Piattaforme: PC legacy, computer Windows basato su UEFI, computer Apple
È necessario seguire queste istruzioni da un'altra installazione o live media.
Installa il grub-efi-amd64-bin
pacchetto. Questo installerà solo le risorse necessarie. Non cambierà la tua attuale installazione in stile MBR in UEFI e capovolgerà le cose.
Riduci la tua partizione Ubuntu in GParted per fare spazio a un ESP. Le dimensioni consigliate per gli ESP vanno da 100 MB a 500 MB, ma i file creati seguendo queste istruzioni qui non richiederanno più di 2 a 5 megabyte.
Nota: non dovrebbe importare dove si trova il tuo ESP sul disco e ridurre la partizione di Ubuntu di qualche megabyte dalla fine dovrebbe essere rapido e sicuro. Ridurre all'inizio non è sicuro . Un avvertimento però, il tuo ESP dovrebbe essere una partizione primaria e non far parte di una partizione estesa o di un volume logico, i numeri di partizione da 1 a 4 vanno bene, i numeri sopra indicano una partizione estesa sulle tabelle delle partizioni MBR.
Scegli FAT32 come filesystem e imposta il flag di avvio.
Montare l'ESP appena creato e il filesystem di root ridotto:
mkdir -p /mnt/esp
mount $esp_device /mnt/esp
mkdir -p /mnt/rootfs
mount $root_device /mnt/rootfs
Nota: Sostituire
$esp_device
e$root_device
con i dispositivi appropriati ad esempio/dev/sdb2
e/dev/sdb1
. I mountpoint/mnt/esp
e/mnt/rootfs
sono solo esempi scelti per lavorare con la parte rimanente di questa risposta.
Installa l'immagine EFI di GRUB e un file di configurazione minimo con:
grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
Si noti che
$device
è l'intero dispositivo/dev/sdb
, ad esempio , non una partizione.
Ecco fatto, abbiamo già finito, ma lasciami provare a spiegare alcune cose.
Il parametro --target x86_64-efi
assicurerà che le immagini ei moduli UEFI vengano installati nei percorsi indicati. --removable
installa l'immagine UEFI sul percorso codificato \EFI\BOOT\BOOT{arch}.EFI
per i supporti rimovibili, anziché un percorso specifico di distribuzione. Il tuo grub.cfg
in /boot/grub/
dovrebbe funzionare con entrambi i metodi di avvio e x86_64-efi
accanto dovrebbe esserci una nuova cartella denominata i386-pc
.
Per completezza, questo è il comando per supporti non rimovibili che scrive e si basa su voci NVRAM nella piattaforma:
grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
Le installazioni UEFI appropriate includono una linea simile a quella in basso /etc/fstab
, ma l'installazione è funzionale senza e l'immagine UEFI (simile al bootloader MBR) viene solitamente scritta / aggiornata solo durante l'installazione del sistema operativo.
UUID=1234-567F /boot/efi vfat defaults 0 1
L'aggiunta di un ESP a un'installazione legacy su un'unità partizionata GPT è molto simile alla precedente:
grub-efi-amd64-bin
pacchetto.boot
flag.grub-install
comando dall'alto che include il --removable
parametro.Questo funziona anche se vuoi solo avviare la tua installazione UEFI esistente su un altro computer.
La creazione di una partizione di avvio del BIOS (BBP) per GRUB è leggermente diversa:
Installa il grub-pc-bin
pacchetto.
Crea una partizione simile alle istruzioni sopra ridimensionando la partizione di root e imposta il bios_grub
flag. Scegli nessun filesystem e lascialo non formattato.
Modifica il file di configurazione /etc/default/grub
con diritti amministrativi e aggiungi GRUB_DEVICE=/dev/sdb6
alla fine. Sostituisci /dev/sdb6
con il nome effettivo del dispositivo del tuo BBP. Puoi usare l'editor della riga di comando nano per semplificare le cose.
Installa l'immagine MBR di GRUB sul BBP con:
grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
Potresti voler rimuovere o commentare la linea /etc/default/grub
e aggiungerla all'installazione effettiva.
Ho scoperto che il nuovissimo Mac (Mac Mini A1347 EMC 2840) con cui stavo testando poteva avviarsi da un ESP FAT32 standard, anche da MBR! Comunque, eccoci qui:
Installare i grub-efi-amd64-bin
, hfsprogs
, mactel-boot
e mactel-boot-logo
pacchetti (opzionale). È necessario abilitare i repository Universe ( Come si abilita il repository "Universe" dalla riga di comando? ) E aggiungere l'attuale PPA di supporto Mactel (vedere il team della Community di supporto Mactel per maggiori dettagli) per installarli tutti.
Crea una partizione con un filesystem HFS + simile alle istruzioni sopra ridimensionando la partizione root. Questa volta abbiamo bisogno di qualche megabyte in più di spazio, quindi raddoppia le dimensioni dell'ESP se in precedenza avevi solo 5 megabyte o meno. Non è richiesta la bandiera.
Montare le partizioni:
mkdir -p /mnt/esp-mac
mount $esp-mac_device /mnt/esp-mac
mkdir -p /mnt/rootfs
mount $root_device /mnt/rootfs
Nota: ho scelto
$esp-mac_device
e/mnt/esp-mac
per evitare conflitti.
Esegui il grub-install
comando che include il --removable
parametro:
grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
Infine, imposta la partizione nel modo in cui un Mac si aspetta che sia:
sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
Per avviare Ubuntu da un supporto esterno su un Mac ora è sufficiente premere il tasto opzione ⌥ o Altsulla tastiera di Windows e selezionare il disco giusto.
Per essere il più accurato possibile, il flag di avvio non è importante per GRUB, per impostazione predefinita GRUB cerca gli UUID per trovare il giusto filesystem da cui avviare. L'impostazione del flag di avvio o del flag bios_grub in GParted solitamente imposta un tipo (MBR) o GUID (GPT) per la partizione.
Il vantaggio di impostare il tipo corretto o GUID, oltre ad avere una configurazione correttamente funzionante, è che queste partizioni saranno nascoste nel gestore dei file. Il modo più semplice per controllare e modificare tipi e GUID è tramite Disks ( gnome-disks
).
In alternativa puoi usare parted o gdisk:
Wikipedia ha un grande elenco di GUID per GPT .
Gli equivalenti della riga di comando parted
secondo il manuale sono parted $device set partition esp on
e parted $device set partition bios_grub on
.
/boot/
non trovato". La grub.cfg
partizione ESP punta all'UUID giusto. Qualche idea? Sarei felice di pubblicare una nuova domanda.