/sbin/init не существует

/sbin/init не существует

/sbin/init не существует

После установки Arch Linux я перезагрузился, но теперь не могу завершить процесс загрузки. Я оказываюсь на экране выше с этим сообщением

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

sh: can't access tty; job control turned off.

и [rootfs ]# подсказка.

Я проверил и подтвердил с помощью живого диска, чтосбинсуществует каксимволический связьк/usr/bin. Однако у меня нетв этомфайл/папка в моем/usr/binкаталог. Где мне взятьв этомфайл/папка? Я пропустил какой-то шаг во время установки? Можно ли что-то сделать, чтобы это исправить? Спасибо.

решение1

Продолжая свой комментарий, я бы рекомендовал вам для исправления этой проблемы перезагрузить систему с помощью livecd (или любого другого метода, который вы использовали для загрузки в среду установки) и повторить следующие шаги процесса установки:

Если после этого все еще не работает, я бы посоветовал проверить, какая файловая система на самом деле монтируется загрузчиком. Возможно, дать список файловявляютсяприсутствие в /usr/binкаталоге позволит нам оказать вам дальнейшую помощь.

решение2

Я потратил полдня на решение этой проблемы и в конце концов понял, что в моем случае причина была в том, что я настроил /usr на отдельном разделе, и только корневой раздел был смонтирован в точке, где загрузчик grub пытается получить доступ к /usr/bin/init.

Я решил проблему, переместив файловую иерархию /usr в корневой раздел.

Ричард

решение3

С отдельным /usrразделом вы должны использовать initramfs/ mkinitcpio и должны добавить usr-hook. В комментарии есть /etc/mkinitcpio.confобъяснение именно этого. Также могут потребоваться дополнительные хуки, описанные в комментариях к файлу. После этого повторно сгенерируйте initramfs, например mkinitcpio -P.

Предыстория: В настоящее время все основные дистрибутивы более или менее сломаны с отдельным /usr-разделом из-за непоследовательного хранения двоичных файлов и библиотек. Согласно Linux Standard Base они должны использовать /bin, /sbin и / или /lib. Вместо этого большинство создают свои собственные и заполняют /usr/bin, чтобы повозиться с /usr/sbin и смешать это с различными путями к библиотекам. Это отчасти для того, чтобы пользователи не ломали вещи и было удобно, а отчасти потому, что нет совета, который бы ставил выше всех стандарты.

По крайней мере Arch Linux и Gentoo Linux предлагают свежие руководства в своих Wiki для сложных настроек. Я рекомендую прочитать Gentoo'sРаннее монтирование пользовательского пространствачтобы получить представление о том, что требуется для создания пользовательского initramfs. Arch Linux немного более высокого уровня в этом отношении.

Я настоятельно рекомендую либо оставаться на безопасной стороне для обычных настольных систем, либо работать с очень небольшим разделением. Входя в систему ежедневно, вы довольно быстро поймете, что файловая система заполняется. Безопасно разделить /homeна отдельный раздел (и диск) и хранить все остальные каталоги на одном разделе/диске операционной системы.

Не-настольные компьютеры/серверы определенно должны разделять разделы, чтобы избежать заполнения разделов, блокирующего всю систему. Они работают без присмотра месяцами или годами. Они записывают журналы, данные и, возможно, автоматически обновляют пакеты. Вы больше не можете войти в систему на машине, на которой не осталось места в /tmp, /runили /var(в зависимости от дистрибутива) из-за собранных журналов или загруженных архивов пакетов. Также весьма вероятно, что тогда будут RAID-устройства и/или сложные файловые системы для некоторых разделов. Что требует еще больше хуков и ручной настройки загрузчика и всего ниже /sbin/init.

Связанный контент