Вопрос или проблема
Я перезагрузил свой Ubuntu EC2, и теперь не могу ничего сделать. Я получаю следующую ошибку, пытаясь почти что угодно:
sudo: невозможно разрешить хост ip-xxx-xx-xx-xxx: Ресурс временно недоступен
где xxx — это частный IP-адрес.
Как мне решить эту ошибку?
Например, это происходит с этой командой:
sudo rm some_file
Это просто пример. Практически ничего не работает.
Я посмотрел на аналогичные вопросы на Stackoverflow и попробовал все предложенные варианты, включая:
-
подтвердил в панели управления EC2, что как частный, так и публичный IP-адреса не изменились.
-
Я могу получить доступ к серверу как по FTP, так и по SSH.
-
У VPC EC2 включены как DNS-имена хостов, так и разрешение DNS.
-
Я проверил содержимое hostname с помощью:
cat /etc/hostname
В нем содержится тот же ip-xxx-xx-xx-xxx, что и в сообщении об ошибке.
Что еще я могу попробовать?
Оказалось, что моя файловая система была полна. Я удалил несколько файлов и перезагрузил. Тогда все заработало. Уф.
Ответ или решение
Как решить проблему "Resource temporarily unavailable" после перезагрузки EC2
При перезагрузке экземпляра EC2 на базе Ubuntu возможна появление ошибки:
sudo: unable to resolve host ip-xxx-xx-xx-xxx: Resource temporarily unavailable.
Эта ошибка возникает, когда система не может корректно разрешить имя хоста. Ниже представлены шаги, которые помогут вам быстро устранить эту проблему.
Шаг 1: Проверка конфигурации имени хоста
-
Проверьте файл /etc/hostname:
Убедитесь, что в этом файле содержится правильное имя хоста. Используйте команду:
cat /etc/hostname
Имя хоста должно соответствовать формату
ip-xxx-xx-xx-xxx
. -
Проверьте файл /etc/hosts:
Откройте файл
/etc/hosts
и убедитесь, что в нём есть запись для вашего хоста:127.0.0.1 localhost 127.0.1.1 ip-xxx-xx-xx-xxx
Если записи не хватает, добавьте строку с вашим именем хоста. Это должно помочь системе правильно разрешать имя хоста.
Шаг 2: Убедитесь, что DNS настроен правильно
Поскольку VPC вашей EC2 имеет включённые DNS-имена и разрешение DNS:
-
Убедитесь, что вы можете выполнить команду
ping
на ваше имя хоста для проверки его доступности:ping ip-xxx-xx-xx-xxx
-
Если пинг не срабатывает, попробуйте перезагрузить службы DNS для обновления настроек. Перезапустите службу
systemd-resolved
:sudo systemctl restart systemd-resolved
Шаг 3: Проверка заполненности файловой системы
Иногда подобные ошибки могут возникать из-за того, что раздел, на котором расположен корень системы, заполнен. Чтобы проверить это:
-
Проверьте использование диска:
df -h
-
Если вы видите, что файловая система заполнена, удалите ненужные файлы, чтобы освободить место. Например:
sudo rm -rf /path/to/unnecessary/files
После освобождения места выполните перезагрузку экземпляра:
sudo reboot
Шаг 4: Проверка других факторов
Если проблема сохраняется, рассмотрите следующие проверки:
-
Убедитесь, что нет ошибок в вашем файле
/etc/nsswitch.conf
. Важной строкой в этом файле является:hosts: files dns
Это гарантирует, что системная утилита
gethostbyname
будет сначала искать в локальных файлах, а затем в DNS. -
Проверьте состояние сети и параметры безопасности. Возможно, проблема заключается в настройках групп безопасности или ACL.
Вывод
В большинстве случаев проблема "Resource temporarily unavailable" связана с неправильной настройкой имен хостов или нехваткой места на диске. Следуя приведённым выше шагам, вы сможете эффективно устранить эту проблему. Если после выполнения всех шагов ошибка сохраняется, рекомендуется создать экземпляр в новой среде и перенести важные данные, так как это может свидетельствовать о более серьезных неисправностях системы.
Таким образом, правильно настроенная среда EC2 и поддержание файловой системы в порядке — ключевые факторы для исключения подобных ошибок.