diff --git a/Installers/README.md b/Installers/README.md index fa7aea0..98db44c 100644 --- a/Installers/README.md +++ b/Installers/README.md @@ -2,9 +2,15 @@ Each script helps you to install compiler Examples to install -Обновить ssh +Обновить ssh Proxmox ```bash -sudo sed -i '/^AllowUsers/c\AllowUsers root@158.69.30.149 root@167.114.172.204 root@158.69.6.146 root@213.239.194.132 root@92.255.251.110 root@158.69.30.144 root@65.109.116.119 sem' /etc/ssh/sshd_config +sudo sed -i '/^AllowUsers/c\AllowUsers root@91.99.38.107 root@23.88.7.159 root@94.130.16.219 root@67.220.73.190 root@51.79.228.143 root@15.235.180.149 roo@162.55.133.173 root@148.251.68.179 root@142.132.148.174 root@136.243.190.88 root@91.99.38.107 root@167.235.180.96 root@176.9.52.254 root@158.69.30.149 root@158.69.6.146 root@92.255.251.110 root@158.69.30.144 sem' /etc/ssh/sshd_config +sudo sed -i 's/#Port 22/#Port 22\n\nAllowUsers root@91.99.38.107 root@158.69.30.149 root@167.114.172.204 root@158.69.6.146 root@213.239.194.132 root@92.255.251.110 root@158.69.30.144 root@65.109.116.119 sem\n/' /etc/ssh/sshd_config +sudo service ssh restart +``` +Обновить ssh LXC +```bash +sudo sed -i '/^AllowUsers/c\AllowUsers root@91.99.38.107 root@158.69.30.149 root@167.114.172.204 root@158.69.6.146 root@213.239.194.132 root@92.255.251.110 root@158.69.30.144 root@65.109.116.119 sem' /etc/ssh/sshd_config sudo service ssh restart ``` diff --git a/Installers/pre_install_LCX.sh b/Installers/pre_install_LCX.sh index 640de32..e5c8c14 100644 --- a/Installers/pre_install_LCX.sh +++ b/Installers/pre_install_LCX.sh @@ -17,7 +17,7 @@ echo -e "${C_LGn}Installation of necessary components ...${RES}" sudo apt install openssh-server mc htop tmux curl lsb-release wget git jq lz4 build-essential -y -sudo sed -i 's/#Port 22/#Port 22\n\nAllowUsers root@158.69.30.149 root@167.114.172.204 root@158.69.6.146 root@213.239.194.132 root@92.255.251.110 root@158.69.30.144 root@65.109.116.119 sem\n/' /etc/ssh/sshd_config +sudo sed -i 's/#Port 22/#Port 22\n\nAllowUsers root@91.99.38.107 root@158.69.30.149 root@167.114.172.204 root@158.69.6.146 root@213.239.194.132 root@92.255.251.110 root@158.69.30.144 root@65.109.116.119 sem\n/' /etc/ssh/sshd_config sudo sed -i -e '/^AllowUsers/ { /root@144\.217\.201\.167/! { s/$/ root@144.217.201.167/; h; } }' /etc/ssh/sshd_config sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes\n/' /etc/ssh/sshd_config diff --git a/Installers/pre_install_proxmos.sh b/Installers/pre_install_proxmos.sh index a16cfd2..39dab0c 100644 --- a/Installers/pre_install_proxmos.sh +++ b/Installers/pre_install_proxmos.sh @@ -9,7 +9,7 @@ echo -e "${C_LGn}Installation of necessary components ...${RES}" sudo apt install nginx openssh-server mc htop tmux curl lsb-release wget git jq lz4 build-essential certbot python3-certbot-nginx iptables-persistent -y -sudo sed -i 's/#Port 22/#Port 22\n\nAllowUsers root@158.69.30.149 root@158.69.30.149 root@167.114.172.204 root@158.69.6.146 root@213.239.194.132 root@92.255.251.110 root@158.69.30.144 root@65.109.116.119 sem\n/' /etc/ssh/sshd_config +sudo sed -i 's/#Port 22/#Port 22\n\nAllowUsers root@91.99.38.107 root@158.69.30.149 root@167.114.172.204 root@158.69.6.146 root@213.239.194.132 root@92.255.251.110 root@158.69.30.144 root@65.109.116.119 sem\n/' /etc/ssh/sshd_config sudo sed -i -e '/^AllowUsers/ { /root@144\.217\.201\.167/! { s/$/ root@144.217.201.167/; h; } }' /etc/ssh/sshd_config . /etc/os-release diff --git a/Proxmox/RAID0-x7-tuning.md b/Proxmox/RAID0-x7-tuning.md index a4e64e8..15eeb7e 100644 --- a/Proxmox/RAID0-x7-tuning.md +++ b/Proxmox/RAID0-x7-tuning.md @@ -46,10 +46,14 @@ xfs_info /dev/md3 | egrep 'sunit|swidth|sectsz' mkdir -p /var/lib/vz UUID=$(blkid -s UUID -o value /dev/md3) echo "UUID=$UUID /var/lib/vz xfs defaults,noatime,inode64,logbufs=8,logbsize=256k 0 2" >> /etc/fstab +``` +```bash +nano /etc/fstab +``` +```bash mount -a ``` - ### 6. Перезапусти службы Proxmox ```bash systemctl start pve-cluster pvedaemon pve-storage pveproxy diff --git a/Proxmox/Recovery/GRUB.md b/Proxmox/Recovery/GRUB.md new file mode 100644 index 0000000..b3d698a --- /dev/null +++ b/Proxmox/Recovery/GRUB.md @@ -0,0 +1,218 @@ +# Восстановление 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‑скрипт**. diff --git a/Proxmox/Recovery/GRUB2.md b/Proxmox/Recovery/GRUB2.md new file mode 100644 index 0000000..c30c51b --- /dev/null +++ b/Proxmox/Recovery/GRUB2.md @@ -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-скрипт.