GNU/Linux >> Linux Esercitazione >  >> Linux

È possibile una chiavetta USB Linux ibrida per UEFI e BIOS legacy?

È 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 cercare gptmbr.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 sotto EFI chiamato BOOT . Ci deve essere solo un'immagine EFI eseguibile per ogni architettura di processore supportata in BOOT 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:

  1. Partizione di avvio del BIOS (tipo GPT 1686148-6449-6E6F-744E-656564454649 ) - 1 MiB, nessun filesystem
  2. Partizione di sistema EFI (tipo GPT C12A7328-F81F-11D2-BA4B-00A0C93EC93B ) - 200 MiB, file system VFAT
  3. Partizione di avvio di Linux (tipo GPT 0FC63DAF-8483-4772-8E79-3D69D8477DE4 ) - 1 GiB, filesystem ext4
  4. 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à.


Linux
  1. Come partizionare un disco in Linux

  2. Come creare una partizione su Linux per dimensioni di 2 TB utilizzando Parted GPT

  3. Crea un'unità USB Windows 10 avviabile (UEFI) da Linux

  4. Perché USB non funziona in Linux quando funziona in UEFI/BIOS?

  5. Qual è la dimensione consigliata per una partizione Linux /boot?

Un'introduzione a bpftrace per Linux

Scegliere una stampante per Linux

Gestione delle partizioni Linux

Abilita il supporto UEFI per macchine virtuali KVM in Linux

Sposta il tuo Linux dal BIOS legacy a UEFI con tempi di inattività minimi

Sistema operativo Zorin per principianti Linux