переключатель _root :не удалось выполнить /sbin/init :Слишком много уровней символических ссылок

В визуальном режиме, когда выделен текст, который нужно свернуть, нажмите zf. Это лучше, чем использование :fold, так как вам не нужно переходить в командную строку (и использовать меньше нажатий клавиш ).

1
08.11.2021, 14:09
1 ответ

Что восстанавливать

Предположительно, переменная LFSне была установлена ​​при выполнении этой команды. Поэтому он изменил /lib64/ld-linux-x86-64.so.2и /lib64/ld-lsb-x86-64.so.3.

Вы испортили динамический загрузчик . Как следствие, вы не можете запускать никакие динамически связанные программы. Практически каждая программа динамически связана, включая bash, init, lnи т. д.

/lib64/ld-linux-x86-64.so.2является важным. Это динамический загрузчик, используемый 64 -битными программами Arch. Символическая ссылка предоставляется пакетом glibc . В работающей системе Linux запустите

ln -snf ld-2.33.so /lib/ld-linux-x86-64.so.2

Обратите внимание :число 2,33 со временем изменится! Проверьте, какой файл /lib/ld-*.soсуществует в вашей системе.

/lib64/ld-lsb-x86-64.so.3предназначен для совместимости с программами, не созданными для Arch. Он предоставляется пакетомld-lsb. Если этот пакет установлен, восстановите ссылку:

ln -snf ld-linux-x86-64.so.2 /lib/ld-lsb-x86-64.so.3

Если ld-lsbне установлено, удалите /lib/ld-lsb-x86-64.so.3.

Автономное -восстановление с предварительным планированием

Когда динамические библиотеки повреждены, вы по-прежнему можете запускать статически связанные исполняемые файлы. Если вы используете какую-либо нестабильную или скользящую систему выпуска -,Я рекомендую иметь базовый набор статически связанных утилит. (Не только оболочка :статически связанный bash бесполезен, например, для создания символических ссылок. )В Arch Linux его нет. Вы можете скопировать исполняемый файл из Debian busybox -static или zsh -static :, оба включают оболочку, а также встроены -в основные утилиты, такие как cp, lnи др.

При таком предварительном планировании, при условии, что у вас все еще есть запущенная корневая оболочка, вы можете запустить busybox-staticи

ln -snf ld-2.33.so /lib/ld-linux-x86-64.so.2

Или запустите zsh-staticи

zmodload zsh/files
ln -snf ld-2.33.so /lib/ld-linux-x86-64.so.2

Если вы перезагрузились и зависли из-за того, что /sbin/initне запускается, загрузитесь в статической оболочке :выполните действия, описанные в разделе Сбой при запуске на последнем корпоративном компьютере в разделе «Полезная отладка». техники :», начиная с «нажмите и удерживайте Shift». В командной строке linuxдобавьтеinit=/bin/busybox-static(или другой правильный путь ).

Восстановление из системы восстановления

Без предварительного планирования вам потребуется запустить работающую систему Linux, чтобы восстановить вашу. Arch wiki предлагает загружать ежемесячный образ Arch. Вы также можете использовать SysRescueCD . В любом случае, используйте свои письменные заметки lsblk, fdisk -l, lvsили что-то еще, что поможет вам выяснить, какой у вас корневой раздел, и смонтируйте его с помощью mount /dev/… /mnt. Затем восстановите символическую ссылку:

ln -snf ld-2.33.so /mnt/lib/ld-linux-x86-64.so.2
0
08.11.2021, 18:43

Теги

Похожие вопросы