5.4 KiB
Восстановление 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
Но: если система работает стабильно — лучше ядра не трогать.
Broken‑packages (если были):
apt -f install
Проверка RAID:
cat /proc/mdstat
🎉 Результат
✔ Система полностью восстановлена ✔ Загрузка GRUB исправлена ✔ mdadm работает корректно ✔ Сеть поднялась ✔ Proxmox полностью функционирует
📝 Рекомендации на будущее
- Перед обновлением Proxmox всегда делать
pve-kernelupdate вручную - Избегать смешивания UEFI/BIOS boot режимов
- Держать отдельный текстовый гайд под рукой
Если нужно — могу подготовить PDF, дополнительный раздел с типичными ошибками или автоматический recovery‑скрипт.