Відповіді:
Коли завантажувач викликає ядро, він передає йому параметр, який називається root
. Отже, як тільки ядро закінчиться ініціалізацією, воно буде продовжуватись, встановивши заданий кореневий розділ до /
та потім викликаючи /sbin/init
(якщо це не було замінено іншими параметрами).
Тоді init
процес запускає решту системи, завантажуючи всі служби, визначені для запуску, у вашому рівні запуску за замовчуванням.
Залежно від вашої конфігурації та системи init, яку ви використовуєте, між тими, які я згадав, може бути кілька інших кроків. В даний час найпопулярнішими системами init в Linux є SysVInit (традиційна), Upstart і Systemd. Більш детальну інформацію про процес завантаження ви можете знайти в цій статті у Вікіпедії .
Ось спрощений приклад конфігурації Grub. Важлива частина відповіді на ваше запитання - це другий та останній рядки 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
}
У багатьох конфігураціях ядро монтується /
в режимі лише для читання, а всі інші параметри встановлюються за замовчуванням. У /etc/fstab
можна задати параметри файлової системи , які потім будуть застосовуватися один раз ініціалізація перемонтують його.
Запис fstab
потрібен, якщо ви хочете вказати деякі параметри кріплення, що не використовуються за замовчуванням. Однак на сьогодні systemd
правильний пристрій ядра та fstype у fstab
не потрібні. Ви можете замінити кореневий запис чимось на зразок:
#UUID=8f74237d-b689-4beb-9d1f-f60b426c9969 / ext4 rw,relatime,data=ordered 0 1
dummy / auto rw,relatime,data=ordered,debug 0 1
і параметри кріплення все ще вшановуються системою.
Ви можете використовувати будь-яке неправильне ім’я пристрою, наприклад /dev/sdz1
, крім поганого UUID. З поганим UUID повідомлення буде надруковано під час завантаження:, Failed to start Remount Root and Kernel File Systems
але система все одно завантажується.
init
процес монтує речі у/etc/fstab
відповідності з параметрами, які зазвичай означають повторне встановлення кореневого розділу для читання-запису.