GNU GRUB

GNU GRUB Opis obrazu Grub logo.png. Opis obrazu png Debiana Unstable GRUB2 (2015). Informacja
Opracowany przez Projekt GNU i Erich Boleyn ( d )
Pierwsza wersja 1995
Ostatnia wersja 2,04 (5 lipca 2019 r)
Kaucja git.savannah.gnu.org/git/grub.git
Napisane w Asembler i C
System operacyjny Typ Linux i Unix
Środowisko IA-32 ( en ) , x86_64 i PowerPC
Rodzaj Program rozruchowy
Licencja Powszechna Licencja Publiczna GNU w wersji 3
Stronie internetowej www.gnu.org/software/grub

GNU GRUB ( akronim oznaczający w języku angielskim „  GR i U nified B ootloader  ”) to program rozruchowy dla komputerów PC . Jest wykonywany podczas włączania komputera, po wewnętrznych sekwencjach kontrolnych i przed samym systemem operacyjnym , ponieważ jego rolą jest właśnie organizacja ładowania. Gdy komputer obsługuje kilka systemów (jest to tzw. Multi-boot ), umożliwia użytkownikowi wybranie systemu, który ma zostać uruchomiony.

Jest to wolne oprogramowanie . Pozwala na bootowanie systemów GNU / Linux lub Windows (a także innych mniej popularnych systemów FreeBSD i OpenBSD , Hurd , Solaris ), odczyt konfiguracji przy starcie (brak konieczności ponownej instalacji GRUB-a w sektorze startowym po zmianie konfiguracji, w przeciwieństwie do LILO ), wiersz poleceń umożliwiający zmianę konfiguracji podczas uruchamiania, a zwłaszcza natywne rozpoznawanie różnych istniejących systemów plików . Posiada również pewien rodzaj prostego języka poleceń, pozwalający na „nadrobienie” rozruchu, który poszedłby źle, na przykład po złym adresowaniu partycji .

Grub musi być w stanie rozpoznać wszystkie systemy plików, na których może zostać uruchomiony. Dlatego jest znacznie większy niż LILO.

Jest częścią projektu GNU.

funkcje

Operacja

Gdy komputer jest włączony, BIOS wyszukuje pierwsze urządzenie rozruchowe (zwykle dysk twardy), ładuje sektor rozruchowy lub główny rekord rozruchowy (MBR) , odpowiadający pierwszym 512 bajtom tego dysku, a następnie przekazuje sterowanie na ten dysk , zakodowane.

GRUB wersja 1

MBR zazwyczaj zawiera część GRUB-1, ale może także zawierać inny bootloader, że część łańcuch może GRUB 1 z innego sektora rozruchowego, takich jak na początku innego dysku lub partycji logicznej (typu DOS). Ze względu na mały rozmiar MBR , część 1 po prostu ładuje następną część GRUB-a (która może znajdować się w dowolnym miejscu na pierwszych 1024 cylindrach dysku). Część 1 może bezpośrednio załadować część 2 lub część 1.5, która znajduje się w granicach 30 kilobajtów MBR . Ta część 1.5 ładuje następnie część 2. Część 1.5 może zawierać pilotów, aby mieć dostęp do części 2.

GRUB wersja 2

Jest to zbliżone do wersji GRUB 1, boot.img jest przechowywany w MBR lub sektorze rozruchowym woluminu, podobnie jak część 1, jednak może załadować sektor z dowolnego adresu LBA48 . Spowoduje to załadowanie pierwszego sektora core.img (wygenerowanego z diskboot.img ), który jest następnie używany do załadowania reszty wygenerowanego pliku core.img . Plik core.img jest zwykle przechowywany w tej samej lokalizacji co część 1.5 z tymi samymi problemami. Można go jednak przenieść w ramach systemu plików lub partycji z mniejszym problemem niż przeniesienie lub pominięcie części 1.5.

Po załadowaniu plik core.img ładuje pliki konfiguracyjne i inne niezbędne moduły.

GRUB jest załadowany

Po załadowaniu GRUB przedstawia interfejs, który pozwala użytkownikowi wybrać system operacyjny do uruchomienia. Zwykle ma to postać menu graficznego. Jeśli to nie jest dostępne lub jeśli użytkownik życzy sobie bezpośredniej kontroli, GRUB ma własny wiersz poleceń. Użytkownik może następnie ręcznie określić parametry uruchamiania. GRUB można ustawić tak, aby automatycznie ładował określone jądro po upływie limitu czasu zdefiniowanego przez użytkownika.

Po wybraniu opcji rozruchu GRUB ładuje wybrane jądro do pamięci i przekazuje mu kontrolę. W przeciwnym razie GRUB może przekazać kontrolę rozruchu innemu programowi ładującemu, używając ładowania łańcuchowego. Jest to metoda używana do ładowania systemów operacyjnych, takich jak Windows, które nie obsługują standardowego rozruchu wielokrotnego. W tym przypadku zostały wykonane kopie programów ładujących innych programów startowych. Zamiast jądra ładowany jest inny system, tak jakby pochodził z MBR . Może to być inny program ładujący, taki jak menu startowe Microsoftu, umożliwiający wybór systemu operacyjnego.

Instalacja

W przeciwieństwie do LILO, GRUB nie musi być ponownie instalowany w MBR za każdym razem, gdy zmieniany jest jego plik konfiguracyjny.

W systemie GNU / Linux polecenie grub-install jest używane tylko do zainstalowania GRUB Part 1 w MBR lub na partycji. Pliki konfiguracyjne GRUB-a muszą znajdować się na partycji nadającej się do użytku, a jeśli nie, Część 1 automatycznie uruchamia procesor wiersza poleceń.

Nazwa i lokalizacja tego pliku różnią się w zależności od systemu. Na przykład w dystrybucji Debian GNU / Linux ten plik znajduje się w /boot/grub/grub.cfg, podczas gdy Fedora umieszcza go w /boot/grub/grub.conf(ta ostatnia używa symbolicznego łącza do lokalizacji /etc/grub.confi wskazuje /boot/grub/grub.confna ze względu na kompatybilność).

Dodatkowo GRUB można zainstalować na dysku wymiennym, takim jak dyskietka , płyta CD lub pamięć USB, aby załadować system, który nie może uruchomić się bezpośrednio z własnego dysku.

Podstawowa konfiguracja

Konfiguracja nie jest bardzo skomplikowana, musisz wiedzieć:

hd0 : correspond au premier disque, hd1 : correspond au deuxième disque, hd0,2 : correspond au premier disque, 3e partition Grub Legacy, 2e partition Grub2

Dzięki interaktywnemu systemowi podpowiedzi GRUB zarządza uzupełnianiem , co umożliwia znalezienie nazw dysku / jądra / initrd, jeśli menu ładowania już nie działa.

W pliku /boot/grub/menu.lst znajdują się elementy menu dotyczące koloru i limitu czasu . Parametr domyślny pozwala wstępnie wybrać jądro do załadowania. Jądra, które można załadować, są następnie definiowane jeden pod drugim .

default 0 timeout 5 # foreground = ffffff background = 000000 # splashimage=(hd0,1)/boot/grub/leaf_splash.xpm.gz # title Gentoo root (hd0,1) kernel /boot/vmlinuz root=/dev/sda2 quiet # title Windows root (hd1) chainloader +1

Dla części Microsoftu nie ma określonego jądra do załadowania, sztuka polega na wybraniu odpowiedniego dysku, a następnie uruchomieniu na pierwszym bajcie tego dysku za pomocą funkcji „chainloader +1”. Do rozpoczęcia wykonywania służy polecenie „boot”.

Rozwój

Termin „GRUB” ogólnie odnosi się do GRUB Legacy . Ta wersja nadal otrzymuje poprawki , ale nie są dodawane żadne nowe funkcje. Twórcy GRUB-a postanowili skupić się na GRUB 2  : całkowitym przepisaniu programu, aby był bezpieczniejszy, czystszy, mocniejszy i bardziej niezawodny.

GNU GRUB 2

Prawdziwa kontynuacja GRUB-a, GNU GRUB 2 jest nową domyślną wersją stopniowo przyjmowaną przez kilka dystrybucji GNU / Linuksa . Dlatego deweloperzy planują:

Warianty

Kilka innych projektów utrzymuje własne ulepszenia ( rozwidlenie ) kodu GRUB Legacy. Obejmuje to Super Grub Disk (nowe polecenia to „setgrubdevice” i „usbshift”) oraz GRUB4DOS . OpenSolaris używa zmodyfikowanej wersji GRUB Legacy, która obsługuje nazwy dysków, automatyczny wybór jądra 64-bitowego i uruchamianie z ZFS (z kompresją i środowiskami wielosystemowymi). Projekt Syllable OS stworzył zmodyfikowaną wersję GRUB do ładowania systemu z systemu plików AtheOS.

Uwagi i odniesienia

  1. „  https://www.gnu.org/software/grub/manual/grub.html#History  ” (dostęp: 29 września 2016 )
  2. Wydanie GRUB 2.04  " ,5 lipca 2019 r(dostęp 5 lipca 2019 )
  3. http://ubuntuforums.org/showpost.php?s=13e274036ad7b03c3f500520b490742e&p=8162655&postcount=4
  4. (in) Pełna lista funkcji
  5. x86: Modyfikowanie zachowania podczas rozruchu poprzez edycję menu GRUB podczas rozruchu , Modyfikowanie zachowania podczas rozruchu Solaris w systemach x86 (mapa zadań) - Przewodnik po administracji systemu: administracja podstawowa
  6. x86: Obsługiwane implementacje GRUB , (Podręcznik administracji systemu: Administracja podstawowa) - Sun Microsystems
  7. 2.3 Dlaczego Sylaba ma własną wersję GRUB-a? , Dokumentacja sylaby, sylaba

Zobacz też

Inne programy ładujące

Linki zewnętrzne