10 из 15 конфигураций серверов в наличииМгновенная выдачаБез платы за установку

Начало работы

Загрузка в режим восстановления и устранение неполадок сервера

Режим восстановления загружает временную систему Linux по сети, не затрагивая ваши диски. Смонтируйте установленную систему, выполните в нее chroot и устраните то, что мешает ей загрузиться или не дает вам войти.

5 мин чтенияОбновлено UbuntuDebianAlmaLinuxRocky Linux

Применимо к
UbuntuDebianAlmaLinuxRocky Linux
Время чтения
5 минут
Обновлено

Не получается? Инженеры отвечают 24/7

На этой странице

Если установленная система перестала загружаться или пускать вас, режим восстановления даст рабочее окружение Linux с полным доступом к дискам. Из него можно починить установленную систему или скопировать данные перед переустановкой.

Что такое режим восстановления

Система восстановления — это live-система Linux, которую сервер загружает по сети и которая целиком работает в оперативной памяти. Ваши диски остаются нетронутыми: ничего не монтируется, не форматируется и не изменяется, пока вы сами этого не решите. Вы входите по SSH как root и получаете обычную оболочку для работы с дисками, RAID-массивами и файловыми системами. Режим восстановления бесплатен, и пользоваться им можно сколько угодно.

Если доступ потерян из-за настроек сети или файрвола, часто быстрее воспользоваться консолью IPMI: через нее вы входите прямо в установленную систему.

Загрузите систему восстановления

  1. Включите режим восстановления. В личном кабинете откройте сервер и выберите «Режим восстановления». Запишите выданный вам временный пароль root.

  2. Перезагрузите сервер из личного кабинета или командой reboot, если он еще отвечает. Вместо установленной системы запустится система восстановления.

  3. Войдите по SSH с временным паролем. У системы восстановления свой ключ хоста; отдельный файл известных хостов не дает ему смешаться с настоящим ключом вашего сервера:

    Shell
    ssh -o UserKnownHostsFile=~/.ssh/known_hosts_rescue root@203.0.113.10

Определите диски и соберите RAID

Shell
lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,MOUNTPOINT

Разделы с типом linux_raid_member входят в программный RAID-массив — стандартную схему на серверах с двумя дисками. Соберите массивы, если /proc/mdstat их еще не показывает, и проверьте их состояние:

Shell
mdadm --assemble --scan
cat /proc/mdstat

Массивы могут получить не те имена, что в установленной системе, например md127 вместо md0, — это не страшно. Если одного из компонентов нет ([U_]), с массивом все равно можно работать, но проверьте и сами диски: см. Состояние дисков. Если lsblk показывает LVM2_member, активируйте группы томов:

Shell
vgchange -ay
lvs

Смонтируйте систему и выполните chroot

Корневая файловая система — та, на которой есть /etc/fstab; обычно это самый большой массив. Смонтируйте ее и прочитайте fstab, чтобы узнать, какие еще файловые системы к ней относятся:

Shell
mount /dev/md1 /mnt
cat /mnt/etc/fstab

Если система аварийно завершила работу или консоль показывала ошибки файловой системы, сначала размонтируйте ее и запустите проверку: fsck -f /dev/md1 для ext4, xfs_repair /dev/md1 для XFS (тип подскажет столбец FSTYPE в выводе lsblk). Никогда не проверяйте смонтированную файловую систему.

Смонтируйте отдельные /boot и /boot/efi, если они указаны в fstab (blkid сопоставляет UUID с устройствами), затем примонтируйте виртуальные файловые системы через bind и переключитесь в установленную систему:

Shell
mount /dev/md0 /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot/efi
mount --rbind /dev /mnt/dev
mount --rbind /proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --rbind /run /mnt/run
chroot /mnt /bin/bash

Имена устройств приведены для примера; если отдельных /boot или /boot/efi нет, пропустите первые две строки. Внутри chroot такие команды, как passwd и systemctl enable, а также менеджер пакетов работают с установленной системой, а не с системой восстановления.

Нужны только данные? Обойдитесь без chroot и скопируйте их прямо из /mnt, например с помощью rsync -a /mnt/var/www/ backup@203.0.113.50:rescue-copy/.

Типичные исправления

Аварийный режим при загрузке: исправьте /etc/fstab

Неверный UUID или уже несуществующий диск в /etc/fstab приводит к тому, что systemd останавливается в аварийном режиме. Сверьте записи с выводом blkid, исправьте или закомментируйте ошибочную строку с помощью vi /etc/fstab (или nano), затем проверьте файл:

Shell
findmnt --verify

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

Нет загрузчика: переустановите GRUB на оба диска

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

Shell
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

Загрузка через BIOS. Ubuntu и Debian:

Shell
grub-install /dev/nvme0n1
grub-install /dev/nvme1n1
update-grub

AlmaLinux и Rocky Linux:

Shell
grub2-install /dev/nvme0n1
grub2-install /dev/nvme1n1
grub2-mkconfig -o /boot/grub2/grub.cfg

В Ubuntu и Debian также выполните dpkg-reconfigure grub-pc и выберите оба диска, чтобы будущие обновления GRUB записывались на оба.

Загрузка через UEFI. GRUB находится на системном разделе EFI, смонтированном в /boot/efi. Ubuntu и Debian:

Shell
grub-install --target=x86_64-efi --efi-directory=/boot/efi
update-grub

AlmaLinux и Rocky Linux, где grub2-install на системах с UEFI не используется:

Shell
dnf reinstall -y grub2-efi-x64 shim-x64
grub2-mkconfig -o /boot/grub2/grub.cfg

Если на втором диске есть свой системный раздел EFI (небольшой раздел vfat в lsblk), установите загрузчик и на него. Смонтируйте его:

Shell
mkdir -p /boot/efi2
mount /dev/nvme1n1p1 /boot/efi2

Затем в Ubuntu и Debian выполните grub-install --target=x86_64-efi --efi-directory=/boot/efi2 --removable — команда установит GRUB по резервному пути, который прошивка находит и без загрузочной записи. В AlmaLinux и Rocky Linux скопируйте файлы с помощью cp -r /boot/efi/EFI /boot/efi2/. В завершение выполните umount /boot/efi2.

Сбросьте утерянный пароль root

Shell
passwd root

В AlmaLinux и Rocky Linux у нового файла паролей еще нет метки SELinux, и пока она не появится, вход может не работать: не пропускайте шаг повторной маркировки (relabel) при выходе из режима восстановления.

Нет доступа из-за настроек SSH или файрвола

Переместите в другое место drop-in-файл SSH, из-за которого вы потеряли доступ, и убедитесь, что ваш ключ на месте:

Shell
ls /etc/ssh/sshd_config.d/
mv /etc/ssh/sshd_config.d/00-keys-only.conf /root/
cat /root/.ssh/authorized_keys

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

Shell
systemctl disable ufw
systemctl disable firewalld
systemctl disable nftables

Когда сервер снова станет доступен, исправьте правила и снова включите файрвол командой systemctl enable --now, указав то же имя.

Выйдите из режима восстановления

В AlmaLinux и Rocky Linux, если вы меняли какие-либо файлы внутри chroot, перед выходом из него выполните touch /.autorelabel. Тогда при следующей загрузке SELinux заново промаркирует файловую систему: это займет несколько минут, после чего сервер сам перезагрузится еще раз. Затем выйдите из chroot и размонтируйте все:

Shell
exit
sync
umount -R /mnt

Если umount сообщает, что точка монтирования занята (target is busy), можно продолжать: при перезагрузке все будет размонтировано. Отключите режим восстановления в личном кабинете, если он еще включен, затем перезагрузите сервер. Следите за первой загрузкой в консоли IPMI: если она снова остановится, на экране будет видно, где именно.

Все еще не получается?

Если система восстановления не запускается, диск не определяется или /proc/mdstat показывает отказавший компонент, создайте тикет в разделе Поддержка. Оборудование — наша зона ответственности: неисправный компонент заменяется в течение 4 часов после диагностики (см. SLA), а как затем перестраивается зеркало, описано в руководстве Программный RAID. Программное обеспечение на сервере администрируете вы, но расскажите нам, что уже пробовали, и наши инженеры подскажут верное направление.

Нужна помощь?

Клиенты с активным сервером создают тикеты в личном кабинете, а отвечают на них инженеры 24/7.

Как работает поддержка