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

6.0 KiB

Полный гайд восстановления Proxmox после повреждения загрузки (Hetzner, RAID, Rescue)

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


📌 Проблема

После обновления Proxmox сервер перестал загружаться. Доступ был возможен только через Hetzner Rescue, а vKVM/VNC не работал. Причины:

  • загрузчик GRUB повреждён после обновления,
  • grub-efi был установлен вместо grub-pc (сервер использует BIOS, а не UEFI),
  • initramfs не содержал правильной конфигурации mdadm,
  • root-файловая система не монтировалась при загрузке,
  • сеть тоже не поднималась на ранних этапах.

🛠 Шаг 1. Загрузка в Hetzner Rescue и вход по SSH

В панели Hetzner выбираем:

  • Rescue → Activate → Reboot

Подключаемся:

ssh root@SERVER_IP

🛠 Шаг 2. Проверка RAID-массивов

cat /proc/mdstat

Ожидаемые массивы:

  • md0 — RAID0 (bootloader area)
  • md1 — RAID1 (/boot)
  • md2 — RAID0 (/)
  • md3 — RAID0 (/var/lib/vz)

Все массивы были в состоянии clean.


🛠 Шаг 3. Монтирование всех разделов Proxmox

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

Проверка:

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

Все системные файлы были на месте.


🛠 Шаг 4. Подготовка корректного chroot

(важно — иначе grub не сможет видеть /dev)

mount --bind /dev  /mnt/root/dev
mkdir -p /mnt/root/dev/pts
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.conf

Убедились, что массивы записаны:

grep ARRAY /etc/mdadm/mdadm.conf

Если пусто (у нас было заполнено), можно восстановить:

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

🛠 Шаг 7. Исправление GRUB (ключевой этап восстановления)

Мы обнаружили:

  • был установлен grub-efi-amd64 (UEFI), но сервер грузится в BIOS,
  • после обновления grub не мог найти root.

Удаление UEFI-версии:

apt remove grub-efi-amd64 -y

Переустановка BIOS-версии:

apt install --reinstall grub-pc grub-common

Если во время установки появились ошибки — ЗАПУСКАЛИ:

dpkg --configure -a

Установка GRUB на все 7 NVMe дисков: (это делало postinst grub-pc автоматически)

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 — skipping ESP sync

нормально, потому что сервер НЕ использует UEFI.


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

В rescue определялся интерфейс:

eth0  (altname enp195s0)

Конфигурация Proxmox:

cat /etc/network/interfaces

Сетевой интерфейс enp195s0 был корректным — изменений НЕ потребовалось.


🛠 Шаг 10. Выход из chroot и перезагрузка

exit
reboot

После этого система успешно загрузилась, оболочка Proxmox стала доступна.


🛠 Шаг 11. Финальная проверка после загрузки

На работающем Proxmox проверяли:

RAID

cat /proc/mdstat

Все массивы — clean.

dpkg состояние

dpkg --configure -a
apt -f install

Система чистая.

Список ядер

dpkg -l | grep -E "pve-kernel|linux-image"

Установлены Debian-ядра, но не pve-kernel. Proxmox работал стабильно, поэтому ядра не трогали.


🧹 Что можно очистить (но не обязательно)

apt autoremove --purge

Удалит старые Debian ядра, но так как система стабильна — лучше ничего не трогать.


🎉 Итог

✔ GRUB полностью восстановлен ✔ mdadm исправно инициализируется ✔ initramfs пересобран ✔ сеть работает ✔ Proxmox загружается корректно ✔ RAID из 7× NVMe стабилен


Если хочешь — могу подготовить:

  • PDF-версию гайда,
  • облегчённую версию для техподдержки,
  • автоматизированный recovery-скрипт.