Według Wikipedii , GRUB został wydany w 1995 roku. W tym momencie Linux i xBSD istniały przez kilka lat. Wiem, że wczesne wersje Uniksa były związane ze sprzętem w latach 70. i 80., ale Linux i xBSD mogły swobodnie dystrybuować i instalować. Co nasuwa pytanie, jak wtedy ładowałbyś Linuksa? Czy dystrybucje były dostarczane z własnymi implementacjami programów ładujących?
boot-loader
history
Sergiy Kolodyazhnyy
źródło
źródło
biosboot(8)
.biosboot
dwie architektury: i386 i amd64. Czy to oznacza, że OpenBSD musiał specjalnie ukierunkować się na architekturę zamiast mieć jedno narzędzie ujednolicające?Odpowiedzi:
Pierwsza dystrybucja Linuksa, której użyłem w latach 90. (
Slackware 3.0
IIRC), używała LILO jako bootloadera. I wiele dystrybucji używanychLILO
przez lata, nawet gdyGRUB
stawało się „domyślnym” bootloaderem.Co więcej, we wczesnych latach Linuksa powszechne było uruchamianie Linuksa z innego systemu operacyjnego (np. DOS lub Windows) zamiast polegać na bootloaderze / podwójnym uruchamianiu. Na przykład był loadlin .
Nie zapomnij o Syslinux , który jest prostszym programem ładującym często używanym do dystrybucji USB z instalacją / odzyskiem. Lub Isolinux (z tego samego projektu) używany przez wiele dystrybucji „Live”.
Należy pamiętać, że dziś
GRUB
można go używać do ładowania wielu systemów operacyjnych, choćLILO
był bardziej ograniczony i specjalnie ukierunkowany na Linuksa (tj. LInux LOader), z pewną obsługą podwójnego uruchamiania systemu Windows.GRUB
jest bardzo przydatny do uruchamiania podwójnego / wielokrotnego ze względu na wiele konfigurowalnych opcji, możliwości skryptów itp.Jeśli chcesz mieć tylko jeden system operacyjny na swoim komputerze, „dowolny” (tj. którykolwiek bootloader jest domyślny dla twojej dystrybucji Linux / BSD) powinien być wystarczającym.
źródło
other=/dev/hda1
Ztable=/dev/hda
dolilo.conf
, a Lilo po prostu przeniósł kontrolę do sektora rozruchowego na hda1, wiedząc, że tablica partycji będzie na hda.LILO był de facto standardem do uruchamiania Linuksa na komputerach PC przed Grubem, od bardzo wczesnego etapu (korzystała z niego MCC, jedna z pierwszych dystrybucji Linuksa). Różne inne programy ładujące były używane jednocześnie. Loadlin był dość powszechny; uruchomił Linux z DOS, a nawet był używany w niektórych konfiguracjach
umsdos
do hostowania środowiska Linux w systemie plików DOS ... Inna typowa konfiguracja w ogóle nie wymagała bootloadera: jądro mogło się uruchomić z dyskietki i większość Użytkownicy Linuksa trzymali dobrze znaną parę dyskietek „bootujących i rootujących”, jedną zawierającą jądro, a drugą podstawowy system plików root do celów ratunkowych.Istnieje wiele sposobów wykorzystania programów ładujących innych systemów operacyjnych do uruchamiania Linuksa; na przykład menedżer rozruchu systemu OS / 2 lub NTLDR systemu Windows NT.
Inne systemy miały własne programy ładujące:
Nawet dzisiaj Grub nie jest jedynym bootloaderem, jaki zobaczysz. Chociaż rozruch jądra bezpośrednio z dyskietki nie jest już bardzo przydatny (nie sprawdziłem, czy nadal jest to możliwe, zakładając, że można zbudować jądro wystarczająco małe, aby zmieściło się na dyskietce), może ono uruchamiać się bezpośrednio z EFI (co w rzeczywistości jest jego własny mały system operacyjny zaprojektowany do ładowania innych systemów operacyjnych, podobnie jak Grub). Na wielu mniejszych systemach (systemy wbudowane, komputery jednopłytkowe ...) znajdziesz U-Boot . (Jest też warstwa EFI dla U-Boota ).
źródło
W jądrze w połowie wersji 2.6 jądro x86 można było uruchomić bezpośrednio, jeśli zostało skopiowane na dyskietkę (jakby to był obraz dysku).
W rzeczywistości był to oryginalny sposób uruchamiania Linuksa.
Jeśli spojrzysz dzisiaj na nagłówek jądra x86, zobaczysz komunikat o błędzie, który mówi, że uruchamianie z dyskietek nie działa.
źródło
Zacząłem od Linuksa pod koniec lat 90. i jak wspomniano,
lilo
był domyślny. Jeśli chcesz podwójnego rozruchu z systemem DOS, możesz uruchomić goły rozruch bez ładowania rzeczy do HIMEM lub ładowania sterowników CD itp. I używanialoadlin
. W przypadku podwójnego uruchamiania Win95, możesz najpierw uruchomić dysk z DOS, a następnie zainstalować program „95”, a moduł ładujący „95” pozwoli ci nadal uruchamiać jądro DOS, a następnie będziesz mógł go użyćloadlin
.W przypadku podwójnego uruchamiania za pomocą NT4 sztuczka polegała na zapisaniu LILO na
/
partycji, a następnie usunięciu pierwszych 512 bajtów za pomocądd
(dd if=/dev/sda2 of=/path/to/file bs=512 count=1
) i umieszczeniu pliku wynikowego w miejscu, w którymntldr
można go zobaczyć, i można go użyć z modułu ładującego WinNT. Problem z robieniem tego polega na tym, że po aktualizacji jądra musiałeś pamiętać o powtórzeniu wszystkich kroków przed ponownym uruchomieniem, w przeciwnym razie będziesz miał problemy z powrotem do systemu Linux. Ten sam proces działał z Win2k.Dzięki LILO przy każdej aktualizacji jądra trzeba pamiętać o aktualizacji LILO.
Za
loadlin
każdym razem, gdy jądro jest aktualizowane, trzeba pamiętać o skopiowaniu jądra na partycję DOS.Inną opcją wskazaną w innych odpowiedziach było zapisanie jądra bezpośrednio na dyskietce,
dd if=/path/to/vmlinuz of=/dev/fd0
ALE urządzenie root musiało być poprawnie ustawione w jądrze, albo w czasie kompilacji, albo za pomocąrdev
narzędzia.Kiedy się
GRUB
pojawił, było wiele radości, ponieważ nie trzeba już było pamiętać o aktualizacji LILO, aktualizacji LILO i ponownym usunięciu informacji o rozruchu itp. Nigdy więcej nie opuszcza systemu Linux, ponieważ zapomniałeś zaktualizować moduł ładujący informacje ...źródło
make install
działałoby/sbin/lilo
, więc tak naprawdę nie musiałeś ręcznie niczego aktualizować (i tak może być nadal, jeśli maszlilo
zainstalowany). To może być kwestia opinii, alegrub
wręcz przeciwnie, nie pamiętam dużo radości . Ililo
(przynajmniej w wersji z 1999 roku) może dobrze podwójnego rozruchu systemu Windows, bez potrzebyloadlin
.A przed LILO i GRUB-em trzeba było uruchomić go z wiersza poleceń za pomocą niestandardowego programu ładującego.
Jako przykład Amiga miała dostępnego Linuksa. Trzeba było użyć narzędzia wiersza polecenia o nazwie amiboot, aby załadować ELF jądra do pamięci i przejść do niego.
Oto wideo osoby używającej amiboot z wiersza poleceń, aby uruchomić system Linux na Amiga 600 . Jego skrypt StartInstall wywołuje plik wykonywalny amiboot. Możesz obserwować konfigurację pamięci amiboot, ustalić pożądany adres ładowania i przekazać parametry do jądra około 0:55.
źródło