Гид по технологиям

VNC и загрузка гостевых систем в Xen

4 min read Virtualization Обновлено 19 Nov 2025
VNC и загрузка гостевых систем в Xen
VNC и загрузка гостевых систем в Xen

1. Проблема: гость снова запускает установщик после перезагрузки

Большинство установщиков требует перезагрузки и удаления установочного носителя в конце установки. Если вы указали ISO в конфигурационном файле гостя или загрузили CD и не успели вынуть диск до перезагрузки виртуальной машины, гость загрузится с CD/ISO и начнёт установщик заново.

Если это произошло, остановите гостя:

xm destroy xen1.example.com

Затем отредактируйте файл конфигурации гостя:

vi /etc/xen/xen1.example.com.cfg

Удалите CD‑драйв из строки загрузки…

| [...] boot="c" [...] |

…и загрузите гостя снова:

xm create /etc/xen/xen1.example.com.cfg

На этот раз гость должен загрузиться с жёсткого диска. При необходимости снова подключитесь к нему через VNC.

Важно: команды xm destroy и xm create выполняют немедленную остановку и запуск. xm destroy эквивалентно отключению питания — используйте осторожно.

2. Использование VNC при одновременном запуске нескольких гостей

Если запущено несколько гостей, они не могут одновременно использовать порт 5900. Каждый последующий гость использует следующий порт: 5901, 5902 и т.д. Чтобы узнать, какие VNC‑порты заняты, выполните:

netstat -tap

Пример вывода, где видно прослушивание портов 5900–5902:

server1:/etc/xen# netstat -tap  
Active Internet connections (servers and established)  
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  
tcp        0      0 *:5900                  *:*                     LISTEN      24492/qemu-dm  
tcp        0      0 *:5901                  *:*                     LISTEN      24950/qemu-dm  
tcp        0      0 *:5902                  *:*                     LISTEN      25295/qemu-dm  
tcp        0      0 *:42991                 *:*                     LISTEN      2293/rpc.statd  
tcp        0      0 *:sunrpc                *:*                     LISTEN      2282/portmap  
tcp        0      0 *:ssh                   *:*                     LISTEN      2987/sshd  
tcp        0      0 localhost.localdom:smtp *:*                     LISTEN      2803/exim4  
tcp        0      0 server1.example.co:5901 192.168.0.6:49936       ESTABLISHED 24950/qemu-dm  
tcp        0    148 server1.example.com:ssh 192.168.0.2:4399        ESTABLISHED 4134/2  
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      2987/sshd  
server1:/etc/xen#

В вашем VNC‑клиенте укажите нужный порт, например 192.168.0.100:5901.

Окно VNC‑клиента с указанным портом :5901

И вот второй гость — рабочий стол Ubuntu 8.10, подключённый через VNC:

Гость Ubuntu 8.10 — рабочий стол в VNC

А это третий гость — рабочий стол Windows XP через VNC:

Гость Windows XP — рабочий стол в VNC

Дополнительный снимок экрана гостя в VNC

3. Устранение неполадок подключения по VNC

Иногда вы запускаете гостя, но не можете подключиться по VNC, и netstat -tap не показывает новых VNC‑портов. В логах гостя (/var/log/xen/qemu-dm-*.log) вы можете увидеть строки вроде:

I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0

Действия при такой проблеме:

  • Убедитесь, что нет конфликта портов — проверьте netstat ещё раз.
  • Остановите один или несколько других гостей, чтобы освободить ресурсы, и попробуйте запустить проблемный гость снова.
  • Проверьте права доступа и владельца сокета VNC (если используется UNIX‑сокет).
  • Просмотрите полный лог qemu‑dm для дополнительных ошибок об открытии порта или привязке интерфейса.

Если после остановки других гостей проблема исчезла, значит проблема была в нехватке доступных ресурсов или конфликте портов.

4. Важные команды Xen

Ниже — основные команды для управления гостями:

  • xm create -c /path/to/config — Запустить виртуальную машину (с подключением консоли).
  • xm shutdown — Корректно остановить виртуальную машину.
  • xm destroy — Немедленно остановить гостя (экстренное выключение).
  • xm list — Список всех запущенных систем.
  • xm help — Справка по командам xm.

5. Чек‑лист администратора (быстрые шаги)

  • При установке: заранее проверьте конфигурацию загрузки (boot=) и временно снимите привязку ISO, если установка требует ручного удаления носителя.
  • Если гость застрял в установщике: xm destroy → редактирование /etc/xen/.cfg → удаление CD/ISO из boot → xm create.
  • При проблемах с VNC: проверить netstat -tap → убедиться в отсутствии конфликта портов → остановить лишние гости → просмотреть /var/log/xen/qemu-dm-*.log.
  • Всегда делать резервную копию конфигурации гостя перед изменениями.

6. Мини‑методика: устранение циклической установки (шаги для быстрого восстановления)

  1. Остановить гостя: xm destroy .
  2. Резервная копия конфигурации: cp /etc/xen/.cfg /root/.cfg.backup.
  3. Отредактировать /etc/xen/.cfg и установить boot=”c” или удалить устройство CD/ISO.
  4. Запустить гостя: xm create /etc/xen/.cfg.
  5. Подключиться по VNC и проверить загрузку с диска.
  6. Если не удаётся — проверить логи qemu-dm и свободные VNC‑порты.

7. Диагностическое дерево (простая логика принятия решения)

flowchart TD
  A[Гость перезагружается в установщик?] -->|Да| B[Остановить гостя 'xm destroy']
  B --> C[Удалить ISO/CD из конфигурации]
  C --> D[Запустить гостя снова 'xm create']
  D --> E{Гость загрузился с диска?}
  E -->|Да| F[Готово]
  E -->|Нет| G[Проверить логи /var/log/xen/qemu-dm-*.log]
  G --> H{Видны ошибки привязки порта?}
  H -->|Да| I[Проверить netstat -tap, остановить конфликтующие гости]
  H -->|Нет| J[Проверить конфигурацию дисков и прав доступа]

8. Когда это не помогает (когда стоит искать альтернативы)

  • Если после всех шагов гость всё ещё не загружается с диска, возможно, проблема в повреждённой установке или в образе диска.
  • Если многократные попытки приводят к ошибкам qemu/dm, рассмотрите перезагрузку хоста или миграцию гостя на другой хост для дальнейшей диагностики.

9. Справочные ссылки

Краткий глоссарий (1 строка)

  • VNC — протокол удалённого отображения рабочего стола.
  • xm — инструмент командной строки для управления гостями Xen.
  • qemu‑dm — демон, управляющий виртуальными устройствами для гостя.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Почта в RSS и публикация на сайте
Веб-инструменты

Почта в RSS и публикация на сайте

Вставить PDF в Word — простые способы
Microsoft Word

Вставить PDF в Word — простые способы

Письма для мобильных: 7 ключевых правил
Электронная почта

Письма для мобильных: 7 ключевых правил

Добавить функцию Snooze в Gmail без приложений
Productivity

Добавить функцию Snooze в Gmail без приложений

Автообновление контейнеров с Podman
DevOps

Автообновление контейнеров с Podman

Ошибка system cannot find python.exe — как исправить
ошибки

Ошибка system cannot find python.exe — как исправить