ELILO
Naprawdę trudno mi zdecydować, którą część skopiować i wkleić, ponieważ wszystko jest naprawdę dobre, więc poproszę tylko o przeczytanie.
Rod Smith
Jest autorem i utrzymuje zarówno, jak gdisk
i rEFInd
.
Ale zanim to zrobisz, chciałbym trochę o tym skomentować. Powyższy link ELILO prowadzi do jednej z wielu stron dotyczących uruchamiania systemu UEFI, które można znaleźć na stronie rodsbooks.com napisanej przez Rod Smitha. Jest znakomitym pisarzem technicznym, a jeśli kiedykolwiek przejrzałeś temat uruchamiania UEFI i skończyłeś na tym, że nie czytałeś czegoś o nim, prawdopodobnie dlatego, że pominąłeś kilka pierwszych wyników.
Rozruch systemu Linux UEFI
Zasadniczo jądro Linuksa może być bezpośrednio wykonywane przez oprogramowanie układowe.
W powyższym odsyłaczu wspomina o kodzie ładującym EFI jądra Linuksa - tego, moim zdaniem, powinieneś używać, ponieważ pozwala on na wywołanie jądra Linuksa bezpośrednio przez samo oprogramowanie. Niezależnie od tego, co robisz, oprogramowanie układowe wykonuje coś - i wygląda na to, że coś takiego jest grub
. Jeśli oprogramowanie układowe może bezpośrednio załadować jądro systemu operacyjnego, jaki jest pożytek z programu ładującego? Oprogramowanie układowe UEFI montuje partycję GPT w formacie FAT oznaczoną esp przez tablicę partycji i wykonuje tam ścieżkę zapisaną jako zmienna rozruchowa UEFI we wbudowanym module pamięci flash. Jedną rzeczą, którą możesz zrobić, to umieścić jądro Linux na tej partycji FAT i zapisać jego ścieżkę w tej zmiennej rozruchowej. Nagle jądro jest własne program rozruchowy.
Programy ładujące
W systemach UEFI programy ładujące są nadmiarowe - w tym ELILO.
Problem, który zostały zaprojektowane w celu rozwiązania ładujących, polegał na tym, że systemy BIOS odczytują tylko pierwszy sektor partycji oznaczonej jako boot i wykonują go. Jest to trochę trudne do zrobienia czegoś sensownego z jądrem 512 bajtów, więc często coś zrobić, to napisać małe narzędzie, które mogłyby zamontować system plików, w którym zachował rzeczywistą jądra i chainload go.
W rzeczywistości 512 bajtów często nie wystarczało nawet dla programów ładujących. grub
, na przykład, faktycznie ładuje się sam przed ładowaniem jądra, ponieważ klinuje swój drugi etap w pustej przestrzeni między sektorem rozruchowym a pierwszym sektorem systemu plików. To trochę brudny hack - ale zadziałało.
Bootmanagers
Przez wzgląd na łatwą konfigurację choć niektóre pośrednik może być przydatna.
REFInd Rod Smitha uruchamia się jako aplikacja EFI - jest to stosunkowo nowa koncepcja. Jest to program uruchamiany z dysku przez oprogramowanie sprzętowe i powracający do niego. REFInd pozwala zarządzać menu rozruchu, a następnie zwraca wybór rozruchu do oprogramowania układowego w celu wykonania. Dostarczany jest ze sterownikami systemu plików UEFI - na przykład można użyć modułu ładującego EFI-stub jądra na partycji innej niż FAT (takiej jak bieżąca /boot
). Jest bardzo prosty w zarządzaniu - jeśli taka rzecz jest w ogóle konieczna - i dodaje prostości wykonywalnego jądra systemowego do wygody konfigurowalnego bootmanagera.
Pośrednictwo atomowe
Jądro nie potrzebuje dowiązań symbolicznych - może mount --bind
.
Jeśli na twojej ścieżce jest jakaś ścieżka, w /
której powinieneś zabronić tworzenia dowiązań symbolicznych, jest to /boot
. Osierocone dowiązanie symboliczne nie/boot
jest problemem, który powinieneś kiedykolwiek rozwiązać. Nadal jednak dość powszechną praktyką jest tworzenie skomplikowanych pośredniości przez kilka dystrybucji - nawet jeśli jest to okropny pomysł - w celu obsługi lokalnych aktualizacji jądra i / lub wielu konfiguracji jądra./boot
Jest to problem w przypadku systemów EFI, które nie są skonfigurowane do ładowania sterowników systemu plików (takich, które są dostarczane z pakietem rEFInd), ponieważ FAT jest ogólnie dość głupim systemem plików i ich nie rozumie.
Ja osobiście nie używam sterowników systemu plików UEFI dostarczonych z rEFInd, chociaż większość dystrybucji zawiera pakiet rEFInd, który można zainstalować za pomocą menedżera pakietów i zapomniałem po prostu o używaniu własnej okropnej /boot
konfiguracji z linkami symbolicznymi oraz spakowanych sterowników systemu plików UEFI rEFInd.
Moja konfiguracja
Kiedyś napisałem na nim zestaw instrukcji i opublikowałem go tutaj , ale wygląda to tak:
% grep esp /etc/fstab &&
> ls /esp/EFI
LABEL=ESP /esp vfat defaults 0 1
/esp/EFI/arch_root /boot none bind,defaults 0 0
arch_root/ arch_sqsh/ arch_xbmc/ BOOT/ ipxe/
Więc po prostu umieściłem te dwa wiersze, /etc/fstab
wskazując na folder, który zamierzam zawierać nowe instalacje Linuksa /boot
i już prawie martwię się o całą sprawę. Muszę też zrobić:
cat /boot/refind_linux.conf
"Arch" "root=LABEL=data rootflags=subvol=arch_root,rw,ssd,compress-force=lzo,space_cache,relatime"
Oprócz zainstalowania refind-efi
pakietu za pośrednictwem pacman
pierwszego, to wszystko, co jest potrzebne do skonfigurowania tylu osobnych instalacji / konfiguracji, ile chcę. Zauważ, że większość powyższego łańcucha składa się z opcji montowania specyficznych dla btrfs określonych jako parametry jądra. Bardziej typowy /boot/refind_linux.conf
wyglądałby prawdopodobnie:
"Menu Entry" "root=/dev/sda2"
I to wszystko.
rodsbooks.com
Jeśli nadal chcesz ELILO, możesz znaleźć instrukcje instalacji pod linkiem powyżej. Jeśli chcesz otrzymać REFInd, znajdziesz linki do niego w pierwszym akapicie. Zasadniczo, jeśli chcesz wykonać dowolną konfigurację rozruchową UEFI, najpierw przeczytaj rodsbooks.com .