# Полный гайд восстановления 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 Подключаемся: ```bash ssh root@SERVER_IP ``` --- # 🛠 Шаг 2. Проверка RAID-массивов ```bash cat /proc/mdstat ``` Ожидаемые массивы: * **md0** — RAID0 (bootloader area) * **md1** — RAID1 (/boot) * **md2** — RAID0 (/) * **md3** — RAID0 (/var/lib/vz) Все массивы были в состоянии **clean**. --- # 🛠 Шаг 3. Монтирование всех разделов Proxmox ```bash mkdir -p /mnt/root mount /dev/md2 /mnt/root mkdir -p /mnt/root/boot mount /dev/md1 /mnt/root/boot ``` Проверка: ```bash ls /mnt/root ls /mnt/root/boot ``` Все системные файлы были на месте. --- # 🛠 Шаг 4. Подготовка корректного chroot (важно — иначе grub не сможет видеть /dev) ```bash 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 ``` Проверка: ```bash mount | grep /mnt/root ``` --- # 🛠 Шаг 5. Вход в chroot ```bash chroot /mnt/root /bin/bash ``` --- # 🛠 Шаг 6. Проверка и восстановление mdadm.conf Убедились, что массивы записаны: ```bash grep ARRAY /etc/mdadm/mdadm.conf ``` Если пусто (у нас было заполнено), можно восстановить: ```bash mdadm --detail --scan >> /etc/mdadm/mdadm.conf ``` --- # 🛠 Шаг 7. Исправление GRUB (ключевой этап восстановления) Мы обнаружили: * был установлен `grub-efi-amd64` (UEFI), но сервер грузится в BIOS, * после обновления grub не мог найти root. Удаление UEFI-версии: ```bash apt remove grub-efi-amd64 -y ``` Переустановка BIOS-версии: ```bash apt install --reinstall grub-pc grub-common ``` Если во время установки появились ошибки — ЗАПУСКАЛИ: ```bash dpkg --configure -a ``` Установка GRUB на **все 7 NVMe дисков**: (это делало postinst grub-pc автоматически) ``` grub-install /dev/nvme0n1 ... grub-install /dev/nvme6n1 ``` Генерация меню: ```bash update-grub ``` --- # 🛠 Шаг 8. Пересборка initramfs Это нужно для включения mdadm скриптов в initrd. ```bash update-initramfs -u -k all ``` Сообщения: ``` No /etc/kernel/proxmox-boot-uuids found — skipping ESP sync ``` — **нормально**, потому что сервер НЕ использует UEFI. --- # 🛠 Шаг 9. Проверка сетевой конфигурации В rescue определялся интерфейс: ``` eth0 (altname enp195s0) ``` Конфигурация Proxmox: ```bash cat /etc/network/interfaces ``` Сетевой интерфейс `enp195s0` был корректным — изменений НЕ потребовалось. --- # 🛠 Шаг 10. Выход из chroot и перезагрузка ```bash exit reboot ``` После этого система **успешно загрузилась**, оболочка Proxmox стала доступна. --- # 🛠 Шаг 11. Финальная проверка после загрузки На работающем Proxmox проверяли: ### RAID ```bash cat /proc/mdstat ``` Все массивы — `clean`. ### dpkg состояние ```bash dpkg --configure -a apt -f install ``` Система чистая. ### Список ядер ```bash dpkg -l | grep -E "pve-kernel|linux-image" ``` Установлены Debian-ядра, но **не pve-kernel**. Proxmox работал стабильно, поэтому ядра **не трогали**. --- # 🧹 Что можно очистить (но не обязательно) ```bash apt autoremove --purge ``` Удалит старые Debian ядра, но так как система стабильна — **лучше ничего не трогать**. --- # 🎉 Итог ✔ GRUB полностью восстановлен ✔ mdadm исправно инициализируется ✔ initramfs пересобран ✔ сеть работает ✔ Proxmox загружается корректно ✔ RAID из 7× NVMe стабилен --- Если хочешь — могу подготовить: * PDF-версию гайда, * облегчённую версию для техподдержки, * автоматизированный recovery-скрипт.