GNU/Linux >> Znalost Linux >  >> Linux

Je možný hybridní linuxový USB-Stick pro UEFI a starší BIOS?

Je to možné a je to velmi často provádět s externími USB klíči i interními disky.

Pokud jde o typy tabulek oddílů:

  • BIOS normálně nepotřebuje jakákoli tabulka oddílů. Zajímá ho pouze kód bootstrapu část, která je prvních 440 bajtů vašeho MBR. (I když existují výjimky. Některé implementace BIOSu se skutečně porouchají, pokud nemohou najít MBR s jedním z obvyklých typů oddílů. Doufejme, že jsou vzácné.)

    Tabulka oddílů GPT fyzicky není nahraďte MBR – vždy začíná v sektoru 1, zatímco MBR je v sektoru 0 – takže je možné, že disk bude mít obojí. Ve skutečnosti většina disků GPT dělá mít "ochranný MBR" obsahující pouze jeden oddíl, který pokrývá celý disk, aby se předešlo náhodnému zničení dat staršími nástroji pro dělení pouze MBR.

    Můžete tedy nainstalovat například zaváděcí sektor Syslinux do vašeho MBR a on se nabootuje. (syslinux-install_update script to udělá za vás, ale můžete hledat gptmbr.bin ve vašem balíčku syslinux, abyste to udělali ručně.)

    Podobně jako příznak „aktivní“ na oddílech MBR bude Syslinux hledat příznak „starší zaváděcí systém BIOS“ na oddílech GPT (bit 2 – UEFI spec 2.4 sekce 5.3.3 tabulka 20); výše uvedený skript také nastaví tento příznak automaticky, pokud máte sgdisk (z gptfdisk) nainstalován.

    GRUB lze také použít, ale je to také trochu otravnější. Protože GRUB 2 chce „vložit“ své části do tradičně nepoužívaných sektorů 1-62, přepíše GPT, který je uložen na stejném místě. Možná budete muset vytvořit vyhrazený oddíl o velikosti 2–4 MB a označit jej jako spouštěcí BIOS, takže grub-install by se našlo místo pro vložení.

  • Na druhou stranu specifikace UEFI ano vyžadovat podporu pro typy oddílů MBR (část 12.3.1) a přiřadit typ oddílu MBR 0xEF do systémové oblasti EFI (část 5.2.2).

    Takže pokud z nějakého důvodu nemůžete zprovoznit váš disk s GPT, stále můžete vytvořit systémový oddíl EFI na MBR a bude se používat, pokud bude mít správný souborový systém a všechny potřebné soubory (část 12.3.1.3):

    Pro zařízení vyměnitelných médií musí existovat pouze jeden systémový oddíl kompatibilní s UEFI a tento oddíl musí obsahovat adresář definovaný UEFI v kořenovém adresáři. Adresář se bude jmenovat EFI . Všechny zavaděče OS a aplikace budou uloženy v podadresáři pod EFI s názvem BOOT . Pro každou podporovanou architekturu procesoru v BOOT musí existovat pouze jeden spustitelný obraz EFI adresář. Aby bylo možné vyměnitelné médium zavést pod EFI, musí být vytvořeno v souladu s pravidly stanovenými v části 3.4.1.1.

Pokud jde o operační systémy, Linux se obecně ani trochu nestará o to, zda se dnes spouští z BIOSu a zítra z UEFI. Tento týden jsem musel snad stokrát restartovat svůj notebook z režimu UEFI do režimu „kompatibility s BIOSem“ a zpět, přičemž jsem se snažil najít chybu v podpoře 3.17 UEFI...

Všimněte si, že článek „Bios to UEFI Transformation“ je o docela jiné věci. Popisuje, jak nainstalovat samotné UEFI – implementace UEFI s názvem „DUET“ – ke spuštění ze systému pouze s BIOSem. Nemá to nic společného se zaváděním operačního systému přímo z BIOSu.


Ano, je to možné.

Základní myšlenkou je rozdělit váš USB klíč pomocí GPT takto:

  1. Spouštěcí oddíl systému BIOS (typ GPT 1686148-6449-6E6F-744E-656564454649 ) – 1 MiB, žádný souborový systém
  2. Systémový oddíl EFI (typ GPT C12A7328-F81F-11D2-BA4B-00A0C93EC93B ) - 200 MiB, souborový systém VFAT
  3. Linuxový bootovací oddíl (GPT typ 0FC63DAF-8483-4772-8E79-3D69D8477DE4 ) - 1 GiB, souborový systém ext4
  4. Kořenový/domácí souborový systém Linuxu (typ GPT 0FC63DAF-8483-4772-8E79-3D69D8477DE4 ) - zbývající místo, souborový systém XFS nebo Btrfs

Toto rozdělení nám umožňuje zavést systém na starších systémech, protože u GPT je stále prostor pro MBR (z důvodů zpětné kompatibility) a Grub2 má dostatek místa pro instalaci střední fáze do zaváděcího oddílu BIOSu. Legacy BIOSy se nestarají o schéma rozdělení a Grub2/Linux Kernel nemá problémy s pochopením GPT na starších systémech.

Na systémech UEFI firmware UEFI ignoruje MBR a jako vstupní bod používá systémový oddíl EFI.

Například s Fedorou musíte v podstatě udělat následující:

Ujistěte se, že souborový systém Linux Boot je připojen pod /boot a že souborový systém systémového oddílu EFI je připojen pod /boot/efi .

(Znovu) Nainstalujte starší zavaděče i zavaděče UEFI:

grub2-pc grub2-efi-x64 shim-x64 efibootmgr

(Znovu) vygenerujte konfigurační soubory grub pro starší verzi i spouštění UEFI:

# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfg

V závislosti na tom, zda se váš systém spustil ve starším režimu nebo v režimu UEFI, musíte opravit první nebo druhý soubor a nahradit (linux|initrd)16 s (linux|initrd)efi nebo naopak.

Nainstalujte grub do MBR:

# grub2-install --target=i386-pc /dev/sd_your_usb_stick_device

Voila.


Linux
  1. Linux – instalace pomocí Gpt na 32bitovém systému s Biosem?

  2. Jak vytvořit oddíl v Linuxu pro velikost 2 TB pomocí Parted GPT

  3. Je možné zavést Linux z disku GPT v systému BIOS?

  1. Jak rozdělit disk v Linuxu

  2. Proč USB nefunguje v Linuxu, když funguje v UEFI/BIOS?

  3. Jak převedu svůj linuxový disk z MBR na GPT s UEFI?

  1. Linux – Je možné předstírat konkrétní cestu pro proces?

  2. Linux – využití prostoru před 1. oddílem USB flash disku jako Luks Key?

  3. Linux – Proč USB nefunguje v Linuxu, když funguje v Uefi/bios?