Test NVMe
This commit is contained in:
@@ -0,0 +1,261 @@
|
||||
# Полный гайд восстановления 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-скрипт.
|
||||
Reference in New Issue
Block a user