LINUX.ORG.RU

Загрузка системы

 


0

1

Если при загрузке линукс я не указал корневой каталог в аргументах ядра, как мне можно это сделать из initramfs и продолжить обычную загрузку ядра?

★★

Зависит от дистра и образа, по сути если используется initrd/initramfs то корень монтирует система инициализации из этого рам диска и потом уже делает chroot или в случае с systemd смотри systemctl switch-root

sparks ★★★
()

Да с наскоку что-то не получилось, ладно попробую потом, когда время будет

voltmod ★★
() автор топика

Скорее всего никак. Если в initramfs управляет systemd, то он при загрузке парсит командную строку и в рантайме создаёт нужные юниты, в том числе для switch root. Насколько мне известно, в лоб не существует решения для такой ситуации. Если запустить switch root вручную, то все равно какие то созданные в рантайме юниты не будут отмечены как выполненные, не факт что загрузка продолжится после этого.

mxfm ★★
()
Ответ на: комментарий от voltmod

переключиться в другую систему switch_root /mnt /sbin/init

первый аргумент /mnt, это то, куда ты смонтировал mount /dev/sda1 /mnt корневной раздел

второй аргумент это первый процесс, который запустит всё остальное.

у sysvinit это /sbin/init, у systemd это /lib/systemd/systemd, однако обрати внимание, что /sbin/init может не запуститься т.к. он будет _абсолютным_ симлинком, тогда как _абсолютный путь_ у тебя это твой initramfs.

Spoofing ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.