# Восстановление 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: ```bash ssh root@SERVER_IP ``` --- # 🛠 Шаг 2. Определить RAID и убедиться, что массивы активны ```bash cat /proc/mdstat ``` Если всё корректно, должны быть массивы `md0`, `md1`, `md2`, `md3`. --- # 🛠 Шаг 3. Смонтировать систему Proxmox ```bash mkdir -p /mnt/root mount /dev/md2 /mnt/root # root mkdir -p /mnt/root/boot mount /dev/md1 /mnt/root/boot # /boot ``` Проверить содержимое: ```bash ls /mnt/root ls /mnt/root/boot ``` --- # 🛠 Шаг 4. Подготовить chroot-окружение ```bash 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 ``` Проверка: ```bash mount | grep /mnt/root ``` --- # 🛠 Шаг 5. Войти в chroot ```bash chroot /mnt/root /bin/bash ``` --- # 🛠 Шаг 6. Исправление mdadm конфигурации Проверить `/etc/mdadm/mdadm.conf`: ```bash grep ARRAY /etc/mdadm/mdadm.conf ``` Если пусто, восстановить: ```bash mdadm --detail --scan >> /etc/mdadm/mdadm.conf ``` --- # 🛠 Шаг 7. Переустановка загрузчика GRUB Удаление UEFI‑версии (если была): ```bash apt remove grub-efi-amd64 -y ``` Переустановка grub-pc: ```bash apt install --reinstall grub-pc grub-common ``` Если видите ошибки «is /dev mounted?» — значит chroot был сделан без bind‑монтирования. После установки выполнить: ```bash dpkg --configure -a ``` GRUB автоматически установится на все NVMe‑диски: ``` 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** — нормальны для BIOS‑загрузки. --- # 🛠 Шаг 9. Проверить сетевой интерфейс Hetzner использует нестандартные имена (`enp195s0`). Проверка: ```bash ip a ``` Проверить конфигурацию: ```bash cat /etc/network/interfaces ``` Если интерфейс после загрузки исчезнет — нужно обновить netplan/udev правила. (В нашем случае интерфейс сохранился и заработал.) --- # 🛠 Шаг 10. Выйти из chroot и перезагрузить сервер ```bash exit reboot ``` Загрузка Proxmox прошла успешно — оболочка Proxmox VE запустилась. --- # 🧹 Шаг 11. После восстановления (опциональная очистка) Старые ядра Debian (НЕ Proxmox): ```bash apt autoremove --purge ``` Но: если система работает стабильно — **лучше ядра не трогать**. Broken‑packages (если были): ```bash apt -f install ``` Проверка RAID: ```bash cat /proc/mdstat ``` --- # 🎉 Результат ✔ Система полностью восстановлена ✔ Загрузка GRUB исправлена ✔ mdadm работает корректно ✔ Сеть поднялась ✔ Proxmox полностью функционирует --- # 📝 Рекомендации на будущее * Перед обновлением Proxmox всегда делать `pve-kernel` update вручную * Избегать смешивания UEFI/BIOS boot режимов * Держать отдельный текстовый гайд под рукой --- Если нужно — могу подготовить **PDF**, **дополнительный раздел с типичными ошибками** или **автоматический recovery‑скрипт**.