Files
2025-12-04 10:51:36 +03:00

5.4 KiB
Raw Permalink Blame History

Восстановление Proxmox после неудачного обновления (Hetzner, RAID, Rescue)

Ниже приведён детальный гайд по восстановлению сервера Proxmox, аналогичный процессу, который мы выполнили вручную. Полностью подходит для серверов Hetzner, использующих software RAID (mdadm) и загрузку через grub-pc.

📌 Ситуация

После обновления Proxmox сервер перестал загружаться. Доступ — только через Hetzner Rescue. Проблема была в повреждённом grub-pc, неинициализированном mdadm в initramfs и невозможности загрузки root‑файловой системы.

✔️ Цель

Полностью восстановить загрузчик, initramfs, конфигурацию RAID и вернуть сервер в рабочее состояние.


🛠 Шаг 1. Загрузка в Rescue

В панели Hetzner выбрать Rescue → Enable & Reboot. После загрузки зайти по SSH:

ssh root@SERVER_IP

🛠 Шаг 2. Определить RAID и убедиться, что массивы активны

cat /proc/mdstat

Если всё корректно, должны быть массивы md0, md1, md2, md3.


🛠 Шаг 3. Смонтировать систему Proxmox

mkdir -p /mnt/root
mount /dev/md2 /mnt/root       # root
mkdir -p /mnt/root/boot
mount /dev/md1 /mnt/root/boot  # /boot

Проверить содержимое:

ls /mnt/root
ls /mnt/root/boot

🛠 Шаг 4. Подготовить chroot-окружение

mount --bind /dev        /mnt/root/dev
mount --bind /dev/pts    /mnt/root/dev/pts
mount --bind /proc       /mnt/root/proc
mount --bind /sys        /mnt/root/sys
mount --bind /run        /mnt/root/run

Проверка:

mount | grep /mnt/root

🛠 Шаг 5. Войти в chroot

chroot /mnt/root /bin/bash

🛠 Шаг 6. Исправление mdadm конфигурации

Проверить /etc/mdadm/mdadm.conf:

grep ARRAY /etc/mdadm/mdadm.conf

Если пусто, восстановить:

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

🛠 Шаг 7. Переустановка загрузчика GRUB

Удаление UEFI‑версии (если была):

apt remove grub-efi-amd64 -y

Переустановка grub-pc:

apt install --reinstall grub-pc grub-common

Если видите ошибки «is /dev mounted?» — значит chroot был сделан без bind‑монтирования.

После установки выполнить:

dpkg --configure -a

GRUB автоматически установится на все NVMe‑диски:

grub-install /dev/nvme0n1
...
grub-install /dev/nvme6n1

Сгенерировать меню загрузки:

update-grub

🛠 Шаг 8. Пересборка initramfs

(чтобы убедиться, что mdadm попал в initrd)

update-initramfs -u -k all

Сообщения No /etc/kernel/proxmox-boot-uuids found — нормальны для BIOS‑загрузки.


🛠 Шаг 9. Проверить сетевой интерфейс

Hetzner использует нестандартные имена (enp195s0). Проверка:

ip a

Проверить конфигурацию:

cat /etc/network/interfaces

Если интерфейс после загрузки исчезнет — нужно обновить netplan/udev правила. (В нашем случае интерфейс сохранился и заработал.)


🛠 Шаг 10. Выйти из chroot и перезагрузить сервер

exit
reboot

Загрузка Proxmox прошла успешно — оболочка Proxmox VE запустилась.


🧹 Шаг 11. После восстановления (опциональная очистка)

Старые ядра Debian (НЕ Proxmox):

apt autoremove --purge

Но: если система работает стабильно — лучше ядра не трогать.

Brokenpackages (если были):

apt -f install

Проверка RAID:

cat /proc/mdstat

🎉 Результат

✔ Система полностью восстановлена ✔ Загрузка GRUB исправлена ✔ mdadm работает корректно ✔ Сеть поднялась ✔ Proxmox полностью функционирует


📝 Рекомендации на будущее

  • Перед обновлением Proxmox всегда делать pve-kernel update вручную
  • Избегать смешивания UEFI/BIOS boot режимов
  • Держать отдельный текстовый гайд под рукой

Если нужно — могу подготовить PDF, дополнительный раздел с типичными ошибками или автоматический recovery‑скрипт.