/usr/bin/sudo: нет такого файла или каталога, не удается найти init, загрузка в initramfs

Вопрос или проблема

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

Я использую Ubuntu 22.04

Шаги, предпринятые перед ошибкой:

sudo chmod 600 configfile.yaml (из папки /etc/netplan/)
sudo configfile.yaml (закомментировал неуместную строку, ctrl-x, да, сохранил файл)

Когда я попытался применить свои изменения…

(base) user@device:/etc/netplan$ sudo netplan apply
-bash: /usr/bin/sudo: нет такого файла или каталога
(base) user@device: cd /usr/bin
(base) user@device: ls
-bash: /usr/bin/ls: нет такого файла или каталога

Вдруг почти каждая команда перестала работать. Хотя /usr/bin все еще существовал, многие команды отсутствовали.

Моя переменная пути казалась в порядке…

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Но я не мог ничего сделать. Я попытался перезагрузить, но не удалось найти init-файл в каких-либо папках, загрузка до ‘initramfs’

run-init: не удалось выполнить '/sbin/init': нет такого файла или каталога

Я не знаю, в чем была проблема, но многие файлы в ‘root/sbin, root/bin, root/lib’ полностью отсутствовали.

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

Если это полезно…

В первый раз, когда это произошло, я попытался запустить этот файл sudo sh ./script.sh.

grep /etc/netplan/configfile.yaml >> output.txt
grep /etc/hostapd/configfile.conf
ip a show wlan0 >> output.txt
echo "Text..." >> output.txt
systemctl enable netplan >> output.txt  # Позже я понял, что это не работает, хотя не уверен, могло ли это вызвать проблему

Я считаю, что проблема заключалась в отсутствии ‘>> output.txt’ в grep. Он завис, ожидая бесконечно, поэтому я нажал ctrl-x, но предыдущие проблемы возникли снова.

Ответ или решение

Ошибка «/usr/bin/sudo: no such file or directory, can’t find init, booting to initramfs»: Возможные причины и решения

Вы столкнулись с серьезной проблемой на вашем устройстве под управлением Ubuntu 22.04, которая приводит к загрузке в режим initramfs. Ошибка указывает на отсутствие критически важных файлов и исполняемых команд, что затрудняет дальнейшую работу с системой. Давайте разберемся, что произошло, какие могли быть причины возникновения данной проблемы, и как предотвратить ее повторное появление.

Описание проблемы

На момент возникновения ошибки вы пытались изменить конфигурационный файл для Netplan с помощью команды:

sudo chmod 600 configfile.yaml

Следующий вызов:

sudo netplan apply

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

После перезагрузки система не смогла найти файл init, что привело к загрузке в initramfs, что указывает на серьезные проблемы с файловой системой.

Возможные причины

  1. Повреждение файловой системы: Причиной может быть повреждение файловой системы в результате частых отключений питания, неправильного завершения работы системы или аппаратных сбоев.

  2. Ошибка в скрипте: Вы упомянули, что перед этой проблемой запускали sudo sh ./script.sh, и если в этом скрипте была ошибка, это могло привести к частичному удалению или повреждению системных файлов. Особенно это касается того факта, что использование >> output.txt было пропущено, что могло привести к бесконечному ожиданию и прерыванию выполнения сценария.

  3. Человеческая ошибка: Неправильное редактирование файлов или команд может было привести к случайному удалению или переименованию критически важных системных файлов.

  4. Малварь или вторжение: Хотя вероятность этого случая менее вероятна, нельзя полностью исключать возможность, что ваше устройство могло быть скомпрометировано, учитывая отсутствие файлов в /sbin, /bin, и /lib.

Рекомендации по предотвращению

  1. Создание резервных копий: Регулярно создавайте резервные копии важных конфигурационных и системных файлов. Это может помочь восстановить систему в случае сбоев.

  2. Мониторинг состояния системы: Используйте инструменты для мониторинга состояния файловой системы, такие как fsck, для регулярной проверки и исправления ошибок.

  3. Отладка скриптов: Перед выполнением новых скриптов проверяйте их на наличие ошибок. Используйте режим «тестирования» или «ошибки» для их отладки.

  4. Безопасность системы: Убедитесь, что ваш фаервол и антивирусные программы активны и обновлены. Это поможет защитить устройство от внешних угроз.

  5. Изучение логов: Анализируйте системные журналы (/var/log/syslog, /var/log/auth.log) для выявления подозрительных действий, которые могли бы указывать на компрометацию.

Заключение

Хотя вы смогли восстановить работоспособность своей системы копированием недостающих файлов с чистой установки, важно разобраться в корне проблемы, чтобы избежать повторения. Неправильное обращение с системными файлам и случайное удаление критических компонентов могут привести к серьезным последствиям. Следуя приведенным рекомендациям, вы сможете значительно снизить риск возникновения подобной ошибки и защитить свою систему от внешних угроз.

Оцените материал
Добавить комментарий

Капча загружается...