Ответы:
Когда загрузчик вызывает ядро, он передает ему параметр с именем 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соответствии с их параметрами, что обычно означает повторное монтирование корневого раздела для чтения-записи.