Hetzner · Robot · Документация

Установка ОС через VNC: QEMU в Rescue System и безопасный доступ

Обновлено

Если нужной ОС нет в installimage, а KVM-консоль недоступна, установщик можно запустить в виртуальной машине QEMU прямо из Rescue System, подключив к ней реальный диск сервера. Экран установщика вы увидите через VNC. Способ мощный и опасный: установка идёт на физический диск, и ошибка в имени устройства уничтожит данные. Используйте его осознанно и только при отсутствии простых вариантов — стандартный путь описан в статье Rescue System и installimage.

Подготовка

  1. Активируйте Rescue System и загрузитесь в неё (инструкция).
  2. Определите диски: lsblk. Все данные на выбранном диске будут перезаписаны.
  3. Скачайте ISO-образ установщика в память Rescue (хватит места в tmpfs, если образ небольшой):
    cd /tmp
    wget https://example.org/path/installer.iso
  4. Убедитесь, что установлен QEMU: apt update && apt install -y qemu-system-x86.
  5. Определите режим сервера (Legacy или UEFI): UEFI и Legacy BIOS.

Запуск QEMU с VNC

Пример для Legacy BIOS и одного диска (/dev/sda замените на свой):

qemu-system-x86_64 -enable-kvm -cpu host -smp 2 -m 4096 \
  -boot d -cdrom /tmp/installer.iso \
  -drive file=/dev/sda,format=raw,cache=none,if=virtio \
  -net nic,model=virtio -net user \
  -vnc 127.0.0.1:0

Для UEFI добавьте прошивку OVMF: пакет ovmf и параметр -bios /usr/share/ovmf/OVMF.fd. Для двух дисков передайте второй параметр -drive и настройте RAID в установщике. Важно: параметр -vnc 127.0.0.1:0 слушает только локальный адрес — это защищает установщик от доступа из интернета.

Подключение через SSH-туннель

На своём компьютере создайте туннель до сервера (VNC-экран 0 соответствует порту 5900):

ssh -L 5900:127.0.0.1:5900 root@IP_СЕРВЕРА

Затем подключите VNC-клиент к 127.0.0.1:5900. Пароль у такого VNC нет, поэтому не открывайте его наружу и закрывайте туннель после установки.

Установка и завершение

  1. Пройдите установщик, выбрав виртуальный диск (он соответствует реальному диску сервера).
  2. Задайте сетевые настройки: после загрузки на реальном железе имя интерфейса и сеть будут другими (Конфигурация статического IP).
  3. Установите SSH-сервер и создайте пользователя.
  4. После завершения остановите QEMU (выключите виртуальную машину) и перезагрузите сервер: reboot — он загрузится с диска.
  5. Если сервер не загрузился, вернитесь в Rescue и проверьте загрузчик (Системный раздел EFI).

Типичные ошибки

  • Не тот диск в -drive — потеря данных.
  • VNC открыт на всех интерфейсах: используйте 127.0.0.1 и SSH-туннель.
  • Установщик Legacy в UEFI-режиме (и наоборот) — загрузчик не встаёт.
  • Не хватает оперативной памяти в tmpfs для ISO.

Частые вопросы

Чем это лучше KVM-консоли?

Не требует заказа консоли, но сложнее и рискованнее: вы вручную подключаете реальный диск к виртуальной машине.

Можно ли использовать этот способ для Windows?

Технически да, но драйверы virtio и разметка делают процесс сложным; для Windows смотрите разделы про Windows Server и KVM-консоль.

Как проверить, что VNC слушает только локальный адрес?

Выполните ss -tlnp | grep 5900: адрес должен быть 127.0.0.1.