Windows Vista в Xen
Материал из Xgu.ru
- Автор: Игорь Чубин
- Короткий URL: xen/vista
На этой странице рассматривается процесс инсталляции и запуска виртуальной машины под управлением в MS Windows Vista внутри полностью виртуализированного домена Xen на машине с поддержкой процессором архитектурных расширений виртуализации (HVM). Отдельное внимание уделяется решению проблем с сетью внутри виртуальной машины.
|
Для выполнения процедуры понадобится:
|
Содержание |
[править] Подготовка хост-системы
Выполните подготовку хост-системы (домена 0 Xen) как описано на странице Инсталляция Xen или другим способом.
В ходе инсталляции Windows доступ к виртуальной машине будет осуществляться через VNC-сервер, встроенный в Xen. По умолчанию сервер привязан к интерфейсу loopback и доступен только по адресу 127.0.0.1.
Если необходимо работать с VNC-консолью с другой машины, можно пойти двумя путями:
- (более безопасный) Перенести порт VNC на неё с помощью SSH (см. подробнее на странице SSH);
- (более простой) Разрешить доступ к VNC-консоли с других машин.
Для этого нужно отредактировать файл /etc/xen/xend-config.sxp, в котором найти и изменить параметры:
(vnc-listen '0.0.0.0')
и
(vnc-password 'PASSWORD')
Если последний параметр не установить, доступ по VNC будет разрешён без пароля.
[править] Проверка на поддержку VMX-расширений
Хост-система должна поддерживать VMX-расширения процессора (см. Аппаратные требования Xen).
Убедиться в наличии поддержки VMX можно так.
Для процессоров Intel:
# xm dmesg | grep VMX (XEN) VMXON is done (XEN) VMXON is done ... (XEN) VMXON is done (XEN) VMXON is done (XEN) VMXON is done #
Если используется процессор AMD:
# xm dmesg | grep -i svm (XEN) AMD SVM Extension is enabled for cpu 0. (XEN) AMD SVM Extension is enabled for cpu 1.
В общем случае:
# xm info | grep caps hw_caps : 178bfbff:ebd3fbff:00000000:00000010:00002001:00000000:0000001f xen_caps : xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
hvm-3.0-x86_32 говорит о том, что XEN успешно обнаружил процессор, который поддерживает технологии Intel VT или AMD-V.
Если у вас другое сообщение, но вы уверены, что у процессора есть архитектурные расширения виртуализации, то проверьте настройки BIOS и, если вы этого еще не сделали, задействуйте поддержку VT.
Возможно, BIOS вашей материнской платы искуственно отключает виртуализацию. В этом случае нужно обновить или исправить BIOS (см. например GA-M59SLI-S4).
[править] Подготовка образа инсталляционного диска
Можно использовать непосредственно диск с инсталлятором Windows, а можно предварительно создать с него образ.
Образ создаётся традиционным путём:
%# cd /Volumes/ISO %# cat /dev/hdd > windows-vista.iso %# ls -l windows-vista.iso -rw-r--r-- 1 igor igor 4681433088 2007-09-23 12:07 windows-vista.iso
[править] Подготовка конфигурационного файла домена Xen
Необходимо создать конфигурационный файл виртуальной машины, в которой будет работать Vista.
Можно использовать распространяемый с дистрибутивом Xen пример и доработать его, а можно воспользоваться этим примером:
$ grep -v ^# /etc/xen/windows-vista-hvm | grep -vx '' kernel = "hvmloader" builder='hvm' memory = 1024 shadow_memory = 8 name = "windows-vista-hvm" vif = [ 'type=ioemu, bridge=service0, mac=00:16:3e:03:00:c3' ] disk = [ 'file:/xen/images/windows-vista-hvm.img,hda,w', 'file:/Volumes/ISO/windows-vista.iso,hdc:cdrom,r' ] device_model = 'qemu-dm' boot="d" sdl=0 vnc=1 vncpasswd='' stdvga=0 serial='pty' usb=1
Параметры, использованные в этом конфигурационном файле (с полным списком можно ознакомиться в «Руководстве пользователя Xen»):
- kernel - VMX firmware loader, /usr/lib/xen/boot/vmxloader
- builder - Функции сборки домена. VMX-домены используют vmx builder
- 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']
- boot - Загрузка с floppy (a), hard disk (c) или CD-ROM (d).
- device_model - Инструмент эмуляции устройств для VMX-домена. Могут быть изменены параметры, приведенные ниже.
- sdl - Задействует библиотеку SDL для отображения графики, по умолчанию равно "0" (отключено)
- vnc - Задействует библиотеку VNC для отображения графики, по умолчанию равно "0" (отключено)
- serial - Перенаправление последовательных портов гостевого домена на реальное устройство.
- usb - Включение поддержки USB без указания специфического устройства. По умолчанию эта функция отключена, в случае же определения параметра usbdevice, ее необходимо задействовать.
- usbdevice - Включение поддержки конкретных устройств. Например, поддержка мыши PS/2 через USB:
usbdevice='mouse'
- localtime - Установка локального времени. По умолчанию равно "0", т.е UTC
- enable-audio - Поддержка звука. Находится в разработке.
- full-screen - Поддержка полноэкранного режима. Находится в разработке.
- nographic - Другой способ перенаправить вывод на последовательный порт. В этом случае опции 'sdl' или 'vnc' не работают. Использование данного режима не рекомендуется.
[править] Подготовка диска для виртуальной машины
Виртуальная машина под управлением Windows Vista требует обязательного использования жёсткого диска.
В качестве виртуального жёсткого диска можно использовать:
- файл в хост-системе;
- блочное устройство в хост-системе, которым может быть:
- физический жёсткий диски или его раздел;
- том LVM;
- сетевое или другое хранилище, доступное в виде блочного устройства.
В случае если будет использоваться файл, его нужно создать и указать в конфигурационном файле виртуальной машины в качестве диска.
%$ grep disk /etc/xen/windows-vista-hvm | grep -v ^# disk = [ 'file:/xen/images/windows-vista-hvm.img,hda,w', 'file:/Volumes/ISO/windows-vista.iso,hdc:cdrom,r' ]
Создание файла проще всего выполнить с помощью команды dd. Здесь создаётся разреженный файл размером 10G (минимальный размер диска при инсталляции Vista в конфигурации по умолчанию):
%$ sudo dd if=/dev/zero of=/xen/images/windows-vista-hvm.img bs=1k seek=10240k count=1 1+0 записей считано 1+0 записей написано скопировано 1024 байта (1,0 kB), 4,6e-05 секунд, 22,3 MB/s %$ ls -l /xen/images/windows-vista-hvm.img -rw-r--r-- 1 root root 10737419264 2007-09-23 12:17 /xen/images/windows-vista-hvm.img
[править] Первый запуск
После того как
- Xen в домене 0 установлен и настроен;
- Создан образ инсталляционного диска Windows Vista (или доступен сам диск);
- Создан файл для диска виртуальной машины (или доступно нечто вместо него);
- Создан конфигурационный файл новой виртуальной машины
виртуальную машину можно запускать.
Запуск выполняется с помощью команды:
%$ sudo xm create windows-vista-hvm Using config file "./windows-vista-hvm". Started domain windows-vista-hvm
Если старт прошёл успешно, новый домен появится в списке доменов, работающих в хост-системе:
%$ sudo xm list Name ID Mem VCPUs State Time(s) Domain-0 0 1000 1 r----- 706.4 windows-vista-hvm 7 1032 1 ------ 0.5
После того как виртуальная машина запущена, можно подключиться к её экрану с помощью VNC.
Используем vncviewer (в Debian GNU/Linux он находится в пакете xvncviewer):
$ vncviewer 127.0.0.1:0 VNC viewer version 3.3.7 - built Dec 30 2006 12:48:54 Copyright (C) 2002-2003 RealVNC Ltd. Copyright (C) 1994-2000 AT&T Laboratories Cambridge. See http://www.realvnc.com for information on VNC. VNC server supports protocol version 3.3 (viewer 3.3) No authentication needed Desktop name "HVMXEN-windows-vista-hvm" Connected to VNC server, using protocol version 3.3 VNC server default format: 32 bits per pixel. Least significant byte first in each pixel. True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0 Using default colormap and visual, TrueColor, depth 24. Got 256 exact BGR233 colours out of 256 Using BGR233 pixel format: 8 bits per pixel. True colour: max red 7 green 7 blue 3, shift red 0 green 3 blue 6 Using shared memory PutImage Throughput 20000 kbit/s - changing to Hextile Throughput 20000 kbit/s - changing from 8bit Using viewer's native pixel format: 32 bits per pixel. Least significant byte first in each pixel. True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
Программа покажет экран инсталлятора операционной системы.
[править] Инсталляция Vista
Инсталляция выполняется традиционно. В ходе инсталляции система будет несколько раз перезагружаться, при этом подключение по VNC будет теряться. Для его восстановления нужно вызывать vncviewer повторно.
Система успешно установлена.
[править] Изменение порядка загрузки
После того как система была проинсталлирована, имеет смысл перейти на загрузку виртуальной машины с диска (не с CD). Для этого нужно поменять значение параметра boot в конфигурационном файле домена с d на c.
%$ grep ^boot /etc/xen/windows-vista-hvm boot="c"
[править] Инсталляция сети
Неизвестно по какой причине, но Windows Vista не работает корректно с сетевым адаптером RTL8139, который эмулируется в HVM-доменах Xen по умолчанию: сетевое устройство обнаруживается и драйвер устанавливается, но сеть не работает.
Самое простое решение проблемы — перейти на эмуляцию сетевого устройства NE2000. С ним у Windows Vista никаких проблем не замечено [1] Шаблон:битая ссылка.
Для этого в конфигурационном файле домена нужно изменить строку vif, добавить в неё описание модели сетевой карты model=ne2k_pci:
vif = [ 'type=ioemu, bridge=service0, mac=00:16:3e:03:00:c3, model=ne2k_pci' ]
Правда, драйвер для этой карты по умолчанию отсутствует в поставке Vista, и его необходимо установить дополнительно.
Для того чтобы передать драйвер Windows Vista, в которой пока что сеть не работает, нужно подготовить ISO-образ с драйвером и загрузить его в виртуальную машину.
ISO-образ нужно подключить к работающей машине (Ctrl-Alt-2) или указать в параметре disk машины.
$ grep ^disk /etc/xen/windows-vista-hvm disk = [ 'file:/xen/images/windows-vista-hvm.img,hda,w', 'file:/Volumes/ISO/ne2k-drivercd.iso,hdc:cdrom,r' ]
Диск содержит ZIP-архив. Его необходимо распаковать, и инициировать инсталляцию драйвера стандартным способом.
После того как драйвер установлен, сеть начинает работать.
Это можно проверить с помощью команд ipconfig и ping:
Или с помощью других приложений, которые используют сеть:
[править] Запуск и работа
Windows Vista проинсталлирована и готова к работе.
Если у вас при загрузке после установки вываливается проблема с загрузчиком и система не может загрузиться, то есть способ всё поправить: Снова загрузиться с диска D (CD-ROM) и выбрать восстановление системы. Затем выбрать командную строку и выполнить bootrec.exe /fixmbr и bootrec.exe /fixboot
Всё, снова изменить загрузку на диск C и система загрузится без проблем.
JR.
[править] Дополнительная информация
|
---|