Co powinienem zrobić przed podwójnym uruchomieniem Windows 7 i Debiana na EFI?

10

Mam zamiar kupić płytę główną Asus z oprogramowaniem układowym EFI i chciałem przygotować się do zainstalowania systemu Windows i Debiana po dostarczeniu sprzętu. Miałem nadzieję, że ktoś, kto poszedł tą drogą, może mi dać kilka wskazówek.

Jakie przygotowania muszę podjąć przed próbą zainstalowania systemu Windows 7 i Debiana w nowym systemie opartym na UEFI?

Pan Shickadance
źródło

Odpowiedzi:

8

EDYCJA: Kiedy napisałem tę odpowiedź, bardzo niewiele dystrybucji dostarczono z jądrem skonfigurowanym przez EFI_STUB, więc trzeba było zbudować niestandardowy. Obecnie większość dystrybucji dostarcza odpowiednio skonfigurowane jądro i niestandardowa kompilacja nie jest już wymagana. W tym przypadku interesujące są sekcje „Konfigurowanie partycji” i „Konfigurowanie rzeczy” , „Wymagania” i „Kompilowanie jądra” można pominąć.

Nie wiem, jak Windows obsługuje UEFI, ale od strony Debiana jest to dość proste.

Skonfiguruj swoje partycje

Użyj schematu partycji GPT, a nie MBR.

Do rozruchu z partycji GPT za pomocą UEFI wymagana jest dedykowana partycja rozruchowa, zwana EFI SYSTEM PARTITION (ESP). Nie jest to obowiązkowe, ale najbardziej kompatybilnym sposobem jest użycie partycji FAT32. W większości przypadków rozmiar 200 MiB powinien być odpowiedni.

Aby zarejestrować partycję jako ESP, należy ją oznaczyć bootflagą. W przeciwieństwie do schematów MBR, flaga rozruchowa służy tylko do wskazania ESP, a nie partycji, z których można uruchomić system.

UEFI używa struktury katalogów \EFI\<vendor>\<application>.efido przechowywania aplikacji UEFI. Separator katalogów jest oznaczony odwrotnym ukośnikiem , nawet w systemie Linux. może być nazwą dystrybucji, rzeczywista wartość nie ma znaczenia dla UEFI.

Aplikacje mogą być narzędziami systemowymi, takimi jak kontrolery pamięci lub powłoka UEFI. Może to być również moduł ładujący system operacyjny lub sam system operacyjny. Aplikacje te muszą być zarejestrowane w UEFI, aby można je było uruchomić podczas rozruchu.

Wymagania

Wersja jądra Linux> = 3.3 może być ładowana bezpośrednio przez UEFI. Jądro może działać jako własny moduł ładujący. Nazywa się to EFISTUB . Potrzebne są następujące konfiguracje 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 z tą konfiguracją nie jest jeszcze stabilne w Debianie. Możesz albo upiec własne jądro, albo użyć drzewa eksperymentalnego. W takim przypadku możesz pominąć następny akapit.

Kompilowanie jądra

(prawdopodobnie już nie jest to konieczne, patrz edycja)

Jeśli zdecydujesz się na kompilację jądra, oto krótkie instrukcje, jak to zrobić. Jeśli napotkasz problemy, dostępnych jest wiele informacji na temat kompilacji jądra.

Uzyskiwanie źródła

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

Sprawdź jedną konkretną wersję

git checkout v3.6

Konfigurowanie jądra

zrobić menuconfig

Wprowadź ustawienia, które są potrzebne w systemie lub pozostaw takie, jakie są, jeśli nie masz nic do dostosowania. Spowoduje to zapisanie konfiguracji jądra do pliku .config.

Upewnij się, że ustawienia z poprzedniego akapitu są ustawione. Warto również wybrać CONFIG_INPUT_EVBUG=n. W przeciwnym razie twoje logi zostaną wypełnione GiB śmieci.

Budowanie jądra

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

Pakiety są tworzone w katalogu nadrzędnym.

Instalowanie jądra

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

Budowanie initramfs

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

3.6.0 jest wersją jądra. Domyślnie działa na nim uruchomione jądro, co nie jest dobrym wyborem, ponieważ nadal używasz starego jądra.

Konfigurowanie rzeczy

Aby móc uruchomić jądro Linuksa, należy je skopiować do ESP razem z initramfs. Biorąc pod uwagę, że ESP jest zamontowany na/boot/efi

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

UWAGA: Aby zapewnić kompatybilność z większością systemów, rozszerzenie efinależy dodać do jądra.

Teraz jądro można zarejestrować w UEFI. Używamy do tego narzędzia efibootmgr.

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 \
    --Stwórz \
    --gpt \
    --disk / dev / sda \
    - część 4 \
    --label „Jądro Debiana Linux 3.6.0” \
    --loader "\\ EFI \\ debian \\ vmlinuz-3.6.0" \
    --write-Signature \
    --append-binary-args -

Argumentem --diskjest urządzenie, w którym znajduje się jądro, a nie ESP. --partjest numerem partycji, na której znajduje się jądro. --labeljest pozycją w menu rozruchowym UEFI.

Aby zobaczyć listę dostępnych wpisów, po prostu uruchom efibootmgrbez argumentów. Składnia do usunięcia określonego wpisu

efibootmgr -b entry (hex) -B

na przykład:

efibootmgr -b 001a -B

Te instrukcje nie obsługują przypadku aktualizacji jądra. Jądro i initramfs nie są automatycznie kopiowane do ESP. Można to zrobić za pomocą krótkiego skryptu, który kopiuje jądro i initramfs do ESP i uruchamia się efibootmgr. Skrypt ten można umieścić, /etc/kernel/postinst.daby był uruchamiany automatycznie po aktualizacji jądra.

Uwaga: Menedżer rozruchu, taki jak GRUB, nie jest potrzebny, sam UEFI działa jako menedżer rozruchu.

To wszystko, czego potrzebujesz od strony Linuksa, nie wiem, co trzeba zrobić, aby dodać Windows.

Marco
źródło
2

Upewnij się, że UEFI nie zablokuje Linuksa na twoim komputerze; prawdopodobnie w BIOSie jest takie ustawienie. Sprawdź i sprawdź na pewno. Chciałbym dokładnie sprawdzić tę kwestię w instrukcji i u producenta, jeśli musisz.

Dyskutowano na ten temat; ZDNet miał kilka artykułów. Oto artykuł z 21 września 2011 r. I jeden z 23 września .

Po drugie, na podstawie danych historycznych możesz najpierw zainstalować system Windows. Tradycyjnie Windows zakłada, że ​​jest to jedyny system operacyjny na komputerze - w ten sposób usuwa wszelkie dane rozruchowe związane z Linuksem. To może być inne dla UEFI, nie wiem.

Mei
źródło
2

Nie musisz podwójnie uruchamiać systemu Windows i Linux w systemie UEFI. Postępuj zgodnie z instrukcjami, aby przekonwertować UEFI na MBR-BIOS bez utraty danych.

Ten przewodnik został opracowany przeze mnie. Ponadto polecony blog nigdy nie zostanie usunięty. Chociaż korzystałem z niego 10 razy bez utraty danych, przed skorzystaniem z mojej procedury zaleciłbym wykonanie kopii zapasowej danych.

Nehal J Wani
źródło
2

Z całego serca mogę polecić serię artykułów UEFI autorstwa Rod Smitha . W szczególności wspomina, że ​​„hybrydowy” GPT-MBR to „niebezpieczny hack” ze względu na ryzyko desynchronizacji.

Michael Shigorin
źródło