È possibile, ed è molto frequente fatto sia con chiavette USB esterne che con unità interne.
Per quanto riguarda i tipi di tabella delle partizioni:
-
Normalmente il BIOS non ha bisogno qualsiasi tabella delle partizioni. È interessato solo al codice bootstrap parte che è i primi 440 byte del tuo MBR. (Anche se ci sono delle eccezioni. Alcune implementazioni del BIOS in realtà si rompono se non riescono a trovare un MBR con uno dei soliti tipi di partizione. Si spera che siano rari.)
La tabella delle partizioni GPT non fisicamente sostituisci un MBR - inizia sempre dal settore 1, mentre l'MBR è nel settore 0 - quindi è possibile che un disco abbia entrambi. In effetti, la maggior parte dei dischi GPT fa avere un "MBR protettivo" contenente solo una singola partizione che copre l'intero disco, per evitare che i vecchi strumenti di partizionamento solo MBR distruggano accidentalmente i dati.
Quindi puoi installare, ad esempio, il settore di avvio di Syslinux nel tuo MBR e si avvierà. (Il
syslinux-install_update
script lo farà per te, ma puoi cercaregptmbr.bin
nel tuo pacchetto syslinux per farlo manualmente.)Proprio come il flag "attivo" sulle partizioni MBR, Syslinux cercherà il flag "legacy BIOS bootable" sulle partizioni GPT (bit 2 – UEFI spec 2.4 sezione 5.3.3 tabella 20); lo script di cui sopra imposta anche quel flag automaticamente se hai
sgdisk
(da gptfdisk) installato.Si può usare anche GRUB, ma è anche un po' più fastidioso. Poiché GRUB 2 vuole "incorporare" parti di se stesso nei settori tradizionalmente inutilizzati 1-62, sovrascriverebbe un GPT archiviato nella stessa posizione. Quindi potrebbe essere necessario creare una partizione dedicata di 2-4 MB e contrassegnarla come avviabile dal BIOS, in modo che
grub-install
si troverebbe un luogo di incorporamento. -
D'altra parte, la specifica UEFI fa richiedono il supporto per i tipi di partizione MBR (sezione 12.3.1) e assegnano il tipo di partizione MBR
0xEF
alla partizione di sistema EFI (sezione 5.2.2).Quindi, se per qualche motivo non riesci a far funzionare il tuo disco con GPT, puoi comunque creare una partizione di sistema EFI su MBR e verrà utilizzata purché abbia il filesystem corretto e tutti i file necessari (sezione 12.3.1.3):
Per i dispositivi di supporto rimovibili deve essere presente una sola partizione di sistema conforme a UEFI e tale partizione deve contenere una directory definita da UEFI nella directory principale. La directory si chiamerà
EFI
. Tutti i caricatori e le applicazioni del sistema operativo verranno archiviati in una sottodirectory sottoEFI
chiamatoBOOT
. Ci deve essere solo un'immagine EFI eseguibile per ogni architettura di processore supportata inBOOT
directory. Affinché il supporto rimovibile sia avviabile in EFI, deve essere creato in conformità con le regole stabilite nella Sezione 3.4.1.1.
Per quanto riguarda i sistemi operativi, Linux in genere non si preoccupa minimamente se viene avviato dal BIOS oggi e dall'UEFI domani. Ho dovuto riavviare il mio laptop dalla modalità UEFI alla modalità "Compatibilità BIOS" e viceversa forse un centinaio di volte questa settimana, mentre cercavo di trovare un bug nel supporto UEFI 3.17...
Si noti che l'articolo "Trasformazione da BIOS a UEFI" riguarda una cosa completamente diversa. Descrive come installare UEFI stesso - un'implementazione UEFI chiamata "DUET" - da avviare da un sistema solo BIOS. Non ha nulla a che fare con l'avvio di un sistema operativo direttamente dal BIOS.
Sì, è possibile.
L'idea di base è di partizionare GPT la tua chiavetta USB in questo modo:
- Partizione di avvio del BIOS (tipo GPT
1686148-6449-6E6F-744E-656564454649
) - 1 MiB, nessun filesystem - Partizione di sistema EFI (tipo GPT
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
) - 200 MiB, file system VFAT - Partizione di avvio di Linux (tipo GPT
0FC63DAF-8483-4772-8E79-3D69D8477DE4
) - 1 GiB, filesystem ext4 - Linux root/home file system (tipo GPT
0FC63DAF-8483-4772-8E79-3D69D8477DE4
) - spazio rimanente, file system XFS o Btrfs
Questo partizionamento ci consente di eseguire l'avvio su sistemi legacy perché con GPT c'è ancora spazio per un MBR (per motivi di compatibilità con le versioni precedenti) e Grub2 ha spazio sufficiente per installare alcune fasi intermedie nella partizione di avvio del BIOS. I BIOS legacy non si preoccupano dello schema di partizionamento e il kernel Grub2/Linux non ha problemi a comprendere GPT sui sistemi legacy.
Sui sistemi UEFI, il firmware UEFI ignora l'MBR e utilizza la partizione di sistema EFI come punto di ingresso.
Ad esempio, con Fedora, devi sostanzialmente fare quanto segue:
Assicurati che il filesystem di avvio di Linux sia montato in /boot
e che il filesystem della partizione di sistema EFI sia montato in /boot/efi
.
(Re-)Installa entrambi i boot loader legacy e UEFI:
grub2-pc grub2-efi-x64 shim-x64 efibootmgr
(Ri-)Genera i file di configurazione di grub sia per l'avvio legacy che UEFI:
# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfg
A seconda che il tuo sistema sia stato avviato in modalità legacy o UEFI, devi correggere il primo o il secondo file e sostituire (linux|initrd)16
con (linux|initrd)efi
o viceversa.
Installa grub nell'MBR:
# grub2-install --target=i386-pc /dev/sd_your_usb_stick_device
Voilà.