Ответы:
Когда загрузчик вызывает ядро, он передает ему параметр с именем root
. Поэтому, как только ядро завершит инициализацию, оно продолжит монтирование указанного корневого раздела /
и последующий вызов /sbin/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
и параметры монтирования все еще учитываются systemd.
Вы можете использовать любое плохое имя устройства, например /dev/sdz1
, кроме плохого UUID. При неправильном UUID сообщение будет напечатано при загрузке Failed to start Remount Root and Kernel File Systems
, но система все равно загрузится .
init
процесс монтирует объекты в/etc/fstab
соответствии с их параметрами, что обычно означает повторное монтирование корневого раздела для чтения-записи.