Odpowiedzi:
Kiedy moduł ładujący wywołuje jądro, przekazuje mu parametr o nazwie root
. Więc po zakończeniu inicjalizacji jądro będzie kontynuowało podłączanie danej partycji root do, /
a następnie wywoływanie /sbin/init
(chyba że zostało to nadpisane przez inne parametry).
Następnie init
proces uruchamia resztę systemu, ładując wszystkie usługi zdefiniowane do uruchomienia na domyślnym poziomie działania.
W zależności od konfiguracji i używanego systemu init, może być wiele innych kroków między tymi, o których wspomniałem. Obecnie najpopularniejszymi systemami init w Linuksie są SysVInit (tradycyjny), Upstart i Systemd. Więcej informacji na temat procesu rozruchu można znaleźć w tym artykule na Wikipedii .
Oto uproszczony przykład mojej konfiguracji Grub. Ważną częścią odpowiedzi na twoje pytanie jest od drugiej do ostatniej linii, jest to root=/dev/sda3
:
menuentry 'Gentoo GNU/Linux' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-40864544-2d0f-471a-ab67-edd7e4754dae' {
set root='hd0,msdos1'
echo 'Loading Linux 3.12.6-gentoo-c2 ...'
linux /kernel-3.12.6-gentoo-c2 root=/dev/sda3 ro
}
W wielu konfiguracjach jądro montuje się /
w trybie tylko do odczytu, a wszystkie pozostałe opcje są ustawione na wartości domyślne. W /etc/fstab
można określić parametry systemu plików, które następnie mają być stosowane raz startowych przełączany w tryb go.
Wpis fstab
jest potrzebny, jeśli chcesz określić niektóre inne niż domyślne opcje montowania. Jednak w dzisiejszych czasach systemd
prawidłowe urządzenie jądra i fstype fstab
są niepotrzebne. Możesz zamienić pozycję root na coś takiego:
#UUID=8f74237d-b689-4beb-9d1f-f60b426c9969 / ext4 rw,relatime,data=ordered 0 1
dummy / auto rw,relatime,data=ordered,debug 0 1
a opcje montowania są nadal honorowane przez systemd.
Możesz użyć dowolnej złej nazwy urządzenia, np /dev/sdz1
. Oprócz złego UUID. Przy złym UUID komunikat zostanie wydrukowany podczas rozruchu:, Failed to start Remount Root and Kernel File Systems
ale system i tak się uruchamia.
init
proces montuje elementy/etc/fstab
zgodnie z tamtejszymi parametrami, co zwykle oznacza ponowne zamontowanie partycji root do odczytu i zapisu.