Запуск Windows XP в окружении Xen3

В статье подробно описывается процедура установки и запуска Windows XP под управлением открытого гипервизора Xen

[Сгибнев Михаил (www.dreamcatcher.ru)]

Сгибнев Михаил

Вольный перевод и дополнение этого письма и Руководства пользователя.

В первую очередь, для установки Windows XP, как и любой другой системы с закрытым кодом, необходима поддержка центральным процессором технологии виртуализации IntelRVirtualization Technology (VT) или Pacifica (AMD). Таблицу поддержки для процессоров Intel можно посмотреть здесь. Также необходимо обеспечить поддержу VT самим Xen. Для этого необходимо установить следущие пакеты:
  • dev86 Ассемблер и линкер для реального режима 80x86. Этот пакет необходим для сборки кода BIOS, запускаемого в (виртуальном) реальном режиме. Если пакет dev86 недоступен для x86_64, то можно использовать i386 версию.
  • LibVNCServer Немодифицируемый VGA дисплей, клавиатуру и мышь можно виртуализировать с помощью библиотеки vncserver. Взять ее можно здесь. Поскольку в версии 0.8 наблюдалось падение производительности, то рекомендуется использовать версию из CVS-репозитория.
  • SDL-devel, SDL Если пакеты SDL и SDL-devel не были установлены по умолчанию, то взять их можно из системы портов или скомпилировав из исходных текстов.
В терминологии Xen, немодифицируемые гостевые домены называются VMX. Для облегчения процесса конфигурирования такого домена служит образцово-показательный конфигурационный файл /etc/xen/xmexample.vmx, в котором помимо традиционных опций есть и сугубо специфические.
  • kernel VMX firmware loader, /usr/lib/xen/boot/vmxloader
  • builder Функции сборки домена. VMX-домены используют vmx builder
  • acpi Задействует ACPI VMX-домена, по умолчанию равно "0" (отключено)
  • apic Задействует APIC VMX-домена, по умолчанию равно "0" (отключено)
  • pae Задействует PAE VMX-домена, по умолчанию равно "0" (отключено)
  • vif Опционально определяет MAC адрес и/или режим моста для сетевого интерфейса. Если значение MAC не указано, то назначается случайный адрес. Есть возможность задать параметр type=ioemu для использования ioemu в VMX NIC. Если это значение не определено, то vbd используется как паравиртуальных("нормальных", с модифицированным ядром) доменах.
  • disk Определяет дисковые устройсва, к которым гостевой домен должен иметь доступ. Если для домена используется физический носитель в качестве диска, то он должен быть описан строкой типа:
      
      phy:UNAME,ioemu:DEV,MODE,
      
    Где UNAME - имя устройства, DEV - имя диска, как его видит домен и MODE принимает значения r для read-only и w для read-write. Если это значение не определено, то ioemu используется как паравиртуальных доменах.

    Если используется образ диска, то строка принимает вид:
      
      file:FILEPATH,ioemu:DEV,MODE
      
    Если используется больше одного диска, то они разделяются запятой. Например:
      
      disk = ['file:/var/images/image1.img,ioemu:hda,w', 
      'file:/var/images/image2.img,ioemu:hdb,w']
      
    Без переноса строки
  • cdrom Образ CD-ROM. По умолчанию, для Domain0 это значение равно /dev/cdrom. Внутри VMX-домена CD-ROM будет виден как /dev/hdc.
  • boot Загрузка с floppy (a), hard disk (c) или CD-ROM (d).
  • device_model Инструмент эмуляции устройств для VMX-домена. Могут быть изменены параметры, приведенные ниже.
  • sdl Задействует библиотеку SDL для отображения графики, по умолчанию равно "0" (отключено)
  • vnc Задействует библиотеку VNC для отображения графики, по умолчанию равно "0" (отключено)
  • vncviewer Если vnc=1 и vncviewer=0, пользователь может использовать vncviewer для подключения к VMX-домену. Например:
      
      vncviewer domain0_IP_address:VMX_domain_id
      
  • ne2000 Задействует режим совместимости ne2000, по умолчанию равно "0" (отключено, используется pcnet)
  • serial Перенаправление последовательных портов гостевого домена на реальное устройство.
  • usb Включение поддержки USB без указания специфического устройства. По умолчанию эта функция отключена, в случае же определения параметра usbdevice, ее необходимо задействовать.
  • usbdevice Включение поддержки конкретных устройств. Например, поддержка мыши PS/2 через USB:
      
      usbdevice='mouse'
      
  • localtime Установка локального времени. По умолчанию равно "0", т.е UTC
  • enable-audio Поддержка звука. Находится в разработке.
  • full-screen Поддержка полноэкранного режима. Находится в разработке.
  • nographic Другой способ перенаправить вывод на последовательный порт. В этом случае опции 'sdl' или 'vnc' не работают. Использование данного режима не рекомендуется.
Установка самого Xen достаточно хорошо описана в статьях:
Установка и настройка виртуальной машины Xen на NetBSD-3.0
NetBSD/xen Howto
Виртуализация с помощью Xen в Linux

После загрузки самого Dom0 убедимся в наличии поддержки VMX:
    
       [root@vermont ~]# xm dmesg | grep VMX
       (XEN) VMXON is done
       (XEN) VMXON is done
    ...
       (XEN) VMXON is done
       (XEN) VMXON is done
       (XEN) VMXON is done
       [root@vermont ~]#
    
Если у вас другое сообщение, то проверьте настройки BIOS и, если вы этого еще не сделали, задействуйте поддержку VT.

Создаем образ диска Xen:
    
    # mkdir -p /root/xenimages
    # cd /root/xenimages
    # dd if=/dev/zero of=WS128.img bs=1M count=4096
    
Также необходимо создать iso-образ системы WinXP - ServicePack2. В данном случае, разместим его в каталоге /root/xenimages.

На основе эталонного файла конфигурации создадим свой собственный:
    
    [root@vermont xen]# cat /etc/xen/winXP128
       kernel = "/usr/lib/xen/boot/hvmloader"
       builder='hvm'
       memory = 512
       name = "WinXP128"
       vcpus=1
       pae=0
       acpi=0
       apic=0
       cpus = ""
       vif = [ 'type=ioemu, bridge=xenbr0' ]
       disk = [ 'file:/root/xenimages/winXP128.img,ioemu:hda,w' ]
       on_poweroff = 'destroy'
       on_reboot   = 'destroy'
       on_crash    = 'destroy'
       device_model = '/usr/lib/xen/bin/qemu-dm'
       cdrom='/root/xenimages/en_winxp_pro_with_sp2.iso'
       boot='d'
       sdl=0
       vnc=1
       vncviewer=0
       stdvga=0
       serial='pty'
       ne2000=0
    [root@vermont xen]#
    
Обратите внимание на то, что указан параметр boot='d', что необходимо для установки. Впоследствии его необходимо заменить на "boot='c'". Доступ к гостевому домену будет осуществляться через VNC, использование SDL не предполагается.

Начинаем установку и подсоединяемя к домену с помощью VNC - сразу после создания домена подключаемся к нему с помощью vncviewer.
    
    # xm create -c /etc/xen/winXP128
    Using config file "/etc/xen/winXP128".
    Started domain WinXP128
    
Подключение к VNC:
    
    % vncviewer vermont:1
    
С установкой могут быть проблемы. Решение описано в этом письме и заключается в том, что на экране установки, предлагающем нажать F6 для установки SCSI или RAID контроллера надо нажать F5 и из предложенного меню:
    
    ACPI Multiprocessor PC 
    ACPI Uniprocessor PC 
    Advanced Configuration and Power Interface (ACPI) PC 
    Compaq SystemPro Multiprocessor or 100% Compatible PC 
    MPS Uniprocessor PC 
    MPS Multiprocessor PC 
    Standard PC 
    Standard PC with C-Step i486 
    Other
    
выбрать "Standard PC".

После того, как программа установки Windows отформатирует диск и скопирует на него необходимые файлы настанет неизбежный момент перезагрузки. Согласно нашему файлу конфигурации, виртуальная машина будет закрыта и нам предоставится удачная возможность отредактировать параметр boot='c', после чего запускаем виртуальную машину и соединяемся с консолью:
    
    [root@vermont xen]# xm create -c /etc/xen/winXP128
        Using config file "/etc/xen/winXP128".
        Started domain WinXP128
    
VNC:
    
    % vncviewer vermont:2
    
Обратите внимание на параметр ':2', так как изменился XenID (посмотреть его можно командой xm list). Не особо волнуйтесь насчет проблем VNC при работе с мышью. Как только вы завершите установку можно настроить службу терминального доступа и использовать Windows Remote Desktop или rdesktop. Если вы по прежнему хотите использовать VNC, то обратитесь к этому разделу руководства.

Статья взята с сайта DreamCatcher

[ опубликовано 25/07/2006 ]

Сгибнев Михаил (www.dreamcatcher.ru) - Запуск Windows XP в окружении Xen3   Версия для печати