/ sbin / init не существует - выручая, вы сами. Удачи


8

Я пытаюсь установить Arch Linux. Когда я загружаюсь, это дает мне сообщение, найденное ниже.

ERROR: Root device mounted successfully, but /sbin/init does not exist.
Bailing out, you are on your own now. Good luck.

sh: can't access tty: job control turned off
[rootfs /]# _

init должен находиться в / usr / bin / init, а не в / sbin / init
Jeight

2
Вы использовали старый установочный образ, а не -Syu?
Джейсонвриан

3
@Jeight /sbinи /binсимволические ссылки /usr/binна Arch Linux.
Струджи

1
@strugee Теперь вопрос в том, являются ли в OP Arch Linux / sbin и / bin ссылки на символы, которые должны быть по умолчанию. Это вызвало бы проблему.
Джайт

4
@ChanceLeachman Я бы действительно рекомендовал не использовать такие вещи. если вы не хотите настраивать Arch так, как рекомендует вики, или не понимаете, что вы делаете, то, вероятно, Arch вам не подходит (возможно, попробуйте Mint или Debian). также ваша ссылка 404с. @Jeight FWIW, я подозреваю, что он может просто установить systemdпакет. возможно, его сценарий не был обновлен для перехода к systemd в качестве init.
Струджи

Ответы:


8

Вам нужен systemd-sysvcompat, если вы хотите использовать init. Это /sbin/initпростая символическая ссылка /lib/systemd/systemd(см. PKGBUILD ), предоставляемая systemd-sysvcompat.

Поэтому, если вы хотите загрузить свою систему, вы должны добавить в grub kernel line(если вы используете grub):

init=/lib/systemd/systemd

Если вы не хотите использовать, systemd-sysvcompatвы должны добавить строку выше в вашGRUB's configuration


3

Я столкнулся с этой проблемой и решил ее, переустановив систему арочной базы и уделив более пристальное внимание приведенным инструкциям . Специально под Syslinux - Установка в BIOS .

Я выбрал установку syslinux, слишком быстро прочитал инструкцию и забыл

Сконфигурируйте syslinux.cfg, чтобы он указывал на правильный корневой раздел. Этот шаг жизненно важен .

Мой корневой раздел, который в моем случае был / dev / sda2, и, как вы можете видеть ниже, не указывает на него.

...
LABEL arch
    ...
    APPEND root=/dev/sda3 rw
    ...

Он указал на мой домашний раздел, / dev / sda3


2

Загрузите самую последнюю версию ISO (на данный момент 2013.10.1) со страницы загрузки Arch . Поместите этот ISO на CD или что-то еще и переустановите.

Либо вы использовали устаревший установочный ISO, либо во время установки что-то пошло не так. На моем относительно современном сервере Arch /sbin/initесть символическая ссылка на /lib/systemd/systemd.

Вы можете проверить, /sbin/initсуществует ли это, или это реальный файл или символическая ссылка. Если последнее, проверьте, существует ли символическая ссылка, является ли она исполняемой, является ли она файлом и т. Д. И т. Д. Я предполагаю, что что-то в этом процессе покажет, где установка прошла неудачно, но вам, вероятно, следует повторить установку из новой загрузки образа ISO.


2
Arch использует initв том смысле, что ядро ​​хочет, чтобы программа вызывалась /sbin/init(если загрузчик не передает другое значение через initопцию), и что программа с PID 1 обычно вызывается init. Для ядра не имеет значения, является ли это initот Systemd или от SysVinit или от Upstart или от BusyBox.
Жиль "ТАК - перестань быть злым"

1

Это может произойти, если вы использовали неправильный раздел для root. Найдите запись вашего загрузчика (в /boot/loader/entries/arch.conf, если вы используете systemd-boot в Arch Linux, как я) и убедитесь, что UUID root является вашим корневым разделом.


1

Я знаю, что этот пост старый, но я только что столкнулся с этой проблемой, и я не нашел хорошего ответа в другом месте, так что вот мой ответ, надеясь, что это поможет кому-то в будущем.

В моем случае, когда я был на этапе

ERROR: Root device mounted successfully, but /sbin/init does not exist.
Bailing out, you are on your own now. Good luck.

sh: can't access tty: job control turned off
[rootfs /]# _

Там на самом деле был /sbin/init, который был только символической ссылкой на busybox!

Вот что случилось. В Archlinux каталог /sbinявляется символической ссылкой на / usr / sbin. И, как говорят другие люди, /usr/sbin/initсимволические ссылки на /lib/systemd/systemd. Но в моем случае я обнаружил, что /usrкаталог не был смонтирован.

В основном вам необходимо смонтировать раздел, /usrкак описано на этой странице ArchWiki. Вы также можете проверить /etc/fstab, особенно если вы используете один сгенерированный genfstab.


Связанный ответ - unix.stackexchange.com/a/392223/5132, а связанный вопрос - unix.stackexchange.com/questions/247532 .
JdeBP
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.