Initramfs Error: Target filesystem doesn't have requested /sbin/init
Linux / DevOps
Target filesystem doesn't have requested /sbin/init — Решение
Ядро Linux успешно монтирует корневую файловую систему, но не может обнаружить и выполнить первый процесс пространства пользователя: Target filesystem doesn't have requested /sbin/init. No init found. Try passing init= bootarg.
| Причина | Локализация сбоя | Последствия |
|---|---|---|
Удалена или повреждена ссылка /sbin/init | Симлинк на /lib/systemd/systemd | Kernel Panic: Attempted to kill init! |
Раздельный /usr не смонтирован | UsrMerge архитектура нарушена | Бинарники systemd недоступны |
| Ошибки прав доступа | chmod -x /sbin/init | EPERM / Permission denied при запуске init |
- В меню GRUB нажмите клавишу
eна пункте загрузки и добавьте в конец строкиlinux ...аварийный шелл:
и нажмитеinit=/bin/shCtrl+Xдля загрузки. - После входа в шелл перемонтируйте корень на запись:
mount -o remount,rw / - Проверьте наличие systemd и восстановите симлинки:
ls -la /lib/systemd/systemd /sbin/init # Восстановление правильного симлинка: ln -sf /lib/systemd/systemd /sbin/init - Убедитесь, что симлинки UsrMerge корректны (в современных системах
/binи/sbinуказывают на/usr/bin):ls -ld /bin /sbin /lib /lib64 - Завершите работу и перезагрузитесь штатными системными вызовами:
sync umount -a reboot -f
Внимание: Если файлы в
/lib/systemd/ отсутствуют, произошла критическая поломка пакета systemd. Требуется переустановка пакета из LiveUSB окружения: apt install --reinstall systemd-sysv.
Практический опыт инженера:
Если сервер использует UsrMerge (Debian 12+, RHEL 9+), убедитесь, что раздел `/usr` не вынесен отдельно без корректной поддержки dracut/initramfs.
Частые вопросы (FAQ)
Почему параметр init=/bin/bash выдает Permission Denied?
Проверьте права на исполнение у файла /bin/bash (должно быть 0755) или проверьте контексты безопасности SELinux/AppArmor.
Что такое Kernel Panic: Attempted to kill init?
Это паника ядра, возникающая, когда процесс с PID 1 падает или принудительно завершается, так как Linux не может функционировать без родительского процесса.