Вы не можете использовать пароль root, потому что (переименовав libc) вы сломали все «обычные» способы, которыми вы можете его использовать, включая вход в getty на другой текстовой консоли. Если у вас есть статически связанное su или sudo, вы можете использовать его для запуска busybox mv или (в общем случае получения рабочей корневой оболочки), используйте
LD_PRELOAD=whatever LD_LIBRARY_PATH=whatever static-su --preserve-environment, чтобы передать этот обычай среда для bash, выполняемая как root
. Сами двоичные файлы Setuid не могут доверять среде, предоставляемой пользователем, выполняющим их, но (если они работают) могут передавать среду, если вы просили об этом, и знаете правый пароль для аутентификации этой операции.
Если у вас есть статически связанное su или sudo , вы должны просто использовать свой физический доступ для перезагрузки в среду, которая позволяет изменять корневой FS , например DVD или USB-накопитель или загрузите свою обычную систему с помощью init=/bin/busybox sh (см. ответ @ Eliah).
Если у вас нет средств для резервного копирования, создайте что-то загрузочное на другом компьютере, используя либо Живое изображение Ubuntu или одно из нескольких изображений с восстановительной загрузкой, которые подходят для ремонта различных операционных систем и диагностики аппаратного обеспечения (вот обзор 5 различных). (Это часто меньше, чем живой Ubuntu, например, для загрузки всего около 700 МБ на USB-накопителе.)
Вы можете настроить USB-накопитель для загрузки с одним из них (или Ubuntu) возможность использовать его для нормального хранения файлов; вам не нужно выделять весь USB-накопитель на загрузочный образ. (Простейшие способы создания живого USB-накопителя будут удалять предыдущее содержимое, а иногда даже не оставлять его пригодным для хранения файлов.)
Другой вариант - получить initramfs, чтобы перейти в оболочку перед выполнением pivot_root и выполнить команду init=, переданную в командной строке ядра. Это не зависит от содержания самого корневого FS. У вас может не быть редактора вообще, но у вас есть cat и перенаправление, а также mv и ln. ([F9]). Если проблема, которую вам нужно исправить, нетривиальна, вы, вероятно, должны загрузить что-то более мощное!
Это происходит автоматически в некоторых случаях сбоя при загрузке, например. если обнаружение RAID не удается или что-то такое, что root fs не монтируется в первую очередь (даже для чтения). [[10])
Вы можете сделать так, чтобы break=bottom в командной строке ядра переместился в оболочку busybox в initramfs, после выполнения большинства (загрузка модулей и установка только корневого FS), но перед выполнением реального init. break=premount останавливается раньше; см. эту ссылку или /usr/share/initramfs-tools/init для более подробной информации.
Обновление:
$ sudo apt-get install ubuntu-desktop
работал для меня после перезагрузки.
Примечание: мои быстрые клавиши были сброшены как результат, и мой тачпад не работал в течение одного цикла загрузки, но теперь все работает отлично для меня. Я надеюсь, что эта команда может помочь кому-то еще!
Обновление:
$ sudo apt-get install ubuntu-desktop
работал для меня после перезагрузки.
Примечание. Мои быстрые клавиши были сброшены как результат, и мой тачпад не работал в течение одного цикла загрузки, но теперь все работает отлично для меня. Я надеюсь, что эта команда может помочь кому-то еще!