GNU/Linux >> Znalost Linux >  >> Debian

Debian – jak postupovat před duálním bootováním Windows 7 a Debianu na Efi?

Chystám se koupit základní desku Asus s firmwarem EFI a chtěl jsem se připravit na instalaci Windows a Debianu, jakmile dorazí hardware. Doufal jsem, že někdo, kdo se vydal touto cestou, by mi mohl dát pár rad.

Jaké přípravy bych měl udělat, než se pokusím nainstalovat Windows 7 a Debian na nový systém založený na UEFI?

Přijatá odpověď:

UPRAVIT: Když jsem napsal tuto odpověď, velmi málo distribucí bylo dodáno s jádrem nakonfigurovaným EFI_STUB, takže bylo nutné vytvořit vlastní. V současné době většina distribucí dodává vhodně nakonfigurované jádro a vlastní sestavení již není vyžadováno. V tomto případě sekce „Nastavení diskových oddílů“ a „Nastavení věcí“ jsou ty zajímavé, „Požadavky“ a „Kompilace jádra“ lze přeskočit.

Nevím, jak Windows zachází s UEFI, ale ze strany Debianu je to docela
přímočaré.

Nastavte své oddíly

Použijte schéma oddílů GPT, nikoli MBR.

Ke spuštění z oddílu GPT s UEFI je vyžadován vyhrazený spouštěcí oddíl,
nazývaný SYSTÉMOVÝ ODDĚL EFI (ESP). Není to povinné, ale nejvíce
kompatibilním způsobem je použití oddílu FAT32. Velikost 200 MiB by měla být v pořádku
pro většinu případů.

Chcete-li zaregistrovat oddíl jako ESP, musí být označen příznakem boot příznak.
Na rozdíl od schémat MBR se příznak spouštění používá pouze k označení ESP,
nikoli oddílů, ze kterých lze zavést systém.

UEFI používá adresářovou strukturu EFI<vendor><application>.efi k ukládání
aplikací UEFI. Oddělovač adresářů je označen zpětným lomítkem , a to i na
Linuxu. může být název distribuce, skutečná hodnota není relevantní
pro UEFI.

Aplikace mohou být systémové nástroje, jako je kontrola paměti nebo prostředí UEFI. Může to být také
zavaděč OS nebo samotný operační systém. Tyto aplikace
musí být zaregistrovány v UEFI, aby je bylo možné spustit při spouštění.

Požadavky

Verze linuxového jádra>=3.3 lze načíst přímo pomocí UEFI. Jádro může fungovat jako svůj vlastní zavaděč. Toto se nazývá EFISTUB . Jsou zapotřebí následující konfigurace jádra.

CONFIG_EFI=y
CONFIG_EFI_PARTITION=y
CONFIG_EFI_STUB=y
CONFIG_RELOCATABLE=y
CONFIG_FB_EFI=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_EFI_VARS=m

Jádro s touto konfigurací zatím není ve stabilní verzi Debianu. Můžete si buď
upéct vlastní jádro, nebo použít to z experimentálního stromu. V tom případě můžete přeskočit další odstavec.

Kompilace jádra

(pravděpodobně už není potřeba, viz úprava)

Pokud se rozhodnete zkompilovat jádro, zde jsou krátké pokyny, jak na to. Pokud narazíte na problémy, je k dispozici spousta informací o tom, jak zkompilovat jádro.

Získání zdroje

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

Podívejte se na jednu konkrétní verzi

git checkout v3.6

Konfigurace jádra

make menuconfig

Proveďte nastavení, která jsou ve vašem systému potřebná, nebo jej nechte tak, jak je
, pokud nemáte co upravovat. Tím se zapíše konfigurace jádra
do souboru .config .

Ujistěte se, že jsou nastavena nastavení z předchozího odstavce. Také
dává smysl vybrat CONFIG_INPUT_EVBUG=n . V opačném případě budou vaše protokoly
plné GiB nevyžádané pošty.

Související:Debian – Odebrat uživatele a heslo při přihlášení v Debian 9 Stretch?

Vytváření jádra

INSTALL_MOD_STRIP=1 make-kpkg --uc --us binary-arch

Balíčky jsou vytvořeny v nadřazeném adresáři.

Instalace jádra

dpkg -i linux-image-3.5.0_Custom.deb linux-headers-3.5.0_Custom.deb

Vytváření initramfs

mkinitramfs -o /boot/initrd.img-3.6.0-amd64 3.6.0

3.6.0 je verze jádra. Výchozí je běžící jádro,
což není dobrá volba, protože stále používáte staré
jádro.

Nastavení věcí

Aby bylo možné zavést linuxové jádro, musí být zkopírováno do ESP společně
s initramfs. Vzhledem k tomu, že ESP je připojeno na /boot/efi

/boot/efi/EFI/debian/vmlinuz-3.6.0.efi
/boot/efi/EFI/debian/initrd.img-3.6.0

POZNÁMKA: Pro zajištění kompatibility s většinou systémů je přípona efi musí být
přidán do jádra.

Nyní lze jádro zaregistrovat v UEFI. Používáme nástroj efibootmgr pro
to.

echo "root=UUID=3a4287b6-b3a7-4721-da38-acc38a928278 ro rootfstype=ext4 add_efi_memmap initrd=\EFI\debian\initrd.img-3.6.0" |
  iconv -f ascii -t ucs2 |
  efibootmgr 
    --create 
    --gpt 
    --disk /dev/sda 
    --part 4 
    --label "Debian Linux kernel 3.6.0" 
    --loader "\EFI\debian\vmlinuz-3.6.0" 
    --write-signature 
    --append-binary-args -

Argument --disk je zařízení, kde sídlí jádro, nikoli ESP. --part je číslo oddílu, kde se nachází jádro. --label je položka
v spouštěcí nabídce UEFI.

Chcete-li zobrazit seznam dostupných položek, stačí spustit efibootmgr bez
argumentů. Syntaxe pro odstranění konkrétní položky

efibootmgr -b entry (hex) -B

například:

efibootmgr -b 001a -B

Tyto pokyny se nezabývají případem aktualizace jádra. Jádro a initramfs nejsou automaticky zkopírovány do ESP. To lze provést pomocí krátkého skriptu, který zkopíruje jádro a initramfs do ESP a spustí efibootmgr . Tento skript lze umístit do /etc/kernel/postinst.d se spustí automaticky po aktualizaci jádra.

Poznámka: Správce spouštění jako GRUB není potřeba, jako správce spouštění funguje samotné UEFI.

To je vše, co potřebujete ze strany Linuxu, nevím, co je potřeba k přidání
Windows.


Debian
  1. Vlastní jádra v Ubuntu/Debianu – jak, kdy a proč

  2. Jak nainstalovat a používat Ansible na Debian 11

  3. Jak nainstalovat Node.js a npm na Debian 11

  1. Jak nainstalovat a používat Debian Backports

  2. Jak nainstalovat a nakonfigurovat Redis na Debian 9

  3. Jak nainstalovat a zabezpečit MariaDB na Debian 11

  1. Jak nainstalovat a používat FFmpeg na Debianu 9

  2. Jak nainstalovat a nakonfigurovat Redmine na Debian 9

  3. Jak nainstalovat a používat FFmpeg na Debianu 10