Александр Горбач


программирование, админство

Настройка KVM под Ubuntu Server 10.04 LTS. Часть 7 – FAQ

без комментариев

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

Как предотвратить конфликты Virtualbox и KVM?

Установка kvm загружает модуль kvm (или kvm-intel в моем случае) который не позволяет запуск других программ вирутализации, к примеру virtualbox.

Хорошая новость в том, что вы можете отключить kvm и выгрузить его модули. То есть вы просто:

1. Убедитесь что вы полностью выключили все ваши виртуальные машины kvm (используйте virt-manager или что-нибудь еще).

2. Выгрузите все его модули:

$ sudo service qemu-kvm stop

Как загрузить виртуальную машину в однопользовательском режиме (single mode)?

Виртуальная машина имеет нормальный BIOS, и она так же запускает GRUB. Плохо то, что он исчезает через несколько секунд, в большинстве случаев вы не успеваете подключиться, используя virt-viewer. Здесь есть маленький трюк: выключите виртуальную машину, запустите virt-viewer с аргументом —wait (при этом он будет ждать, когда запустится виртуальная машина и всплывает непосредственно после этого), и затем запустите виртуальную машину; это должно дать вам нормальные две секунды для того чтобы войти в BIOS или получить доступ к меню grub.

Если вы запускаете виртуальные машины, собранные ubuntu-vm-builder, то там есть маленький баг, который не даст вам залогиниться; в grub, выберите линию восстановления (recovery) и нажмите»e»; выберите линию, начинающуюся с «kernel», нажмите «e» снова. В конце лини добавьте «init=/bin/sh» (без кавычек). Подтвердите нажатием enter, и нажмите «b» для того, чтобы загрузить ядро с этими настройками.

Как сконвертировать машины VMware в virt-manager (KVM)?

Если вы хотите сконвертировать Windows (XP) vmdk вы должны вначале сделать две вещи пока ваша машина запущена в VMWare:

1. Включить IDE в реестре. Запустите машину и выполните mergeide.reg. См. ProxMox wiki.

2. Удалите VMWare tools через Панель управления.

Если это не работает (выдает BSOD когда запускает сконвертированную виртуальную машину), вы может запустить сконвертированную виртуальную машину с Windows XP CD. Не выбирайте ‘R = Repair’, но выберите ‘Install’. Спустя некоторое время, установщик Windows setup покажет вам существующую установку windows (к примеру, расположенную в C:\Windows) и вы согласитесь на попытку восстановить эту установку. Обновления Windows будут сброшены после этой процедуры, но все ваши программы, настройки, документы и т.п. будут на месте. После этой процедуры, вы переактивируете Windows, но виртуальная машина будет загружаться.

Для использования машины VMware внутри virt-manager, файл .vmx должен быть сконвертирован в .xml libvirt-а. vmware2libvirt создана для того чтобы помочь вам в этом. Она доступна в пакете ‘virt-goodies’. После установки она может быть использована таким образом:

$ vmware2libvirt -f ./file.vmx > file.xml
$ virsh -c qemu:///system define file.xml

Первая команда конвертирует файл VMware ‘file.vmx’ в совместимый с libvirt ‘file.xml’. Смотри man vmware2libvirt для подробностей. Вторая команда импортирует file.xml в libvirt. Импортированный .xml хранится в /etc/libvirt/qemu.

Предостережения
Пока работает vmware2libvirt нормально только с простыми виртуальными машинами, это ограничение присутствует потому что файлы .vmx не всегда содержат достаточно информации, и так же потому что vmware2libvirt старается не делать слишком много предположений что он нашел в конфигах. Пара вещей для размышления:
Когда vmware2libvirt пытается определить 64-битную гостевую машину, убедитесь что ваша 64-битная гостевая машина имеет в своем .xml файле:


 hvm
 ...

vmware2libvirt определяет и использует только первый найденный сетевой контроллер. Дополнительные интерфейсы могут быть добавлены virt-manager.
В настоящий момент первый scsi используется если найден, иначе первый ide диск. Дополнительные диски могут быть добавлены virt-manager.
Перобразованная виртуальная машина использует по умолчанию всегда один процессор. Это может быть изменено с помощью

2

vmware2libvirt не делает (и не умеет) преобразование чего-либо, что является специфичным для VMware. См. «Примечания к гостевым машинам» ниже для подробностей.

Использование и конвертирования файлов виртуальных дисков VMWare

kvm имеет возможность непосредственно использовать файлы дисков VMWare.vmdk, пока диск целиком не содержится в едином файле vmdk.

Но VMWare также позволяет разбивать диск по меньшим, обычно 2Гб, файлам. kvm не может их использовать. Вы можете преобразовать эти файлы в единый виртуальный диск используя vmware-vdiskmanager. Он включен в VMWare Server (доступен свободно).

$ vmware-vdiskmanager -r  -t 0 

ВАЖНО: держите в голове что вы должны сначала удалить все снимки (через веб-интерфейс если вы используете VMWare Server 2.0) перед тем как вы это сделаете, иначе ваш преобразованные диск не будет содержать последнее состояние системы. Удаление этих снимков займет всего лишь несколько минут, после чего файлы вида *-000001.vmdk могут исчезнуть из вашей директории.

Измените xml файл виртуальной машины в /etc/libvirt/qemu:

 ...
 
      
      
      
 
 ...

и перезагрузите его:

$ virsh -c qemu:///system define NameOfMachine.xml

ВАЖНО: помните, что файлы .vmx, преобразованные в .xml, используются как есть. Пожалуйста, делайте резервные копии, особенно если вы планируете использовать виртуальную машину позже в VMWare.

kvm не может сделать быстрых снимков состояния когда используются файлы дисков vmdk. Так что я рекомендую преобразовать эти диски в формат qemu qcow2. Пакет qemu содержит для этого утилиту qemu-img:

qemu-img convert diskname.vmdk -O qcow2 diskname.qcow2

ИЛИ для raw

qemu-img convert diskname.vmdk -O raw diskname.raw

измените xml файл машины и презагрузите его (см. выше). Добавление диска через virt-manager всегда добавляет его как raw-диск. Вам может понадобиться отредактировать xml как показано ниже для того, чтобы убедиться что он работает как qcow2. Важное место начинается с «type=’qcow2′» вместо type=’raw’!

...
    
      
      
      
    
...

Нужно ли оставлять VMWare Tools после преобразованийbe?

Если преобразование из vmware в libvirt, убедитесь что удалили vmware-tools если вы их устанавливали (иначе они перезапишут xorg.conf во время перезагрузки)

Как преобразовать реальную физическую машину в virt-manager

Если вы желаете преобразовать физическую машину Windows (XP) вы во-первых должны включить в реестре IDE. Запустите машину и запустите mergeide.reg. См. ProxMox wiki для очень подробной интсрукции.

использование VMWare Converter

VMWare Converter это бесплатная утилита для переноса физической машины в VMWare. Таким образом, первый шаг — это перенос виртуальной машины в образ image. Второй шаг — это следовать инструкции «Как преобразовать машину VMWare в virt-manager» (см. выше).

использование linux tools

См. немецкую книгу о переносе.

Нужно ли использовать ntp для синхронизации времени?

Гостевым машинам не нужно использовать ntp для синхронизации часов, так что убедитесь что удалили/отключили ntpd

Какой драйвер необходимо использовать для Xorg?

Video

Когда вы первый раз устанавливаете гостевую машину с Linux, используйте видео драйвер «cirrus». После установки, если вам понадобится разрешение Post выше 800х600, переключитесь на стандартный видео драйвер

xorg.conf — «depreciated» и таким образом по умолчанию отсутствует в Linux. Для использования «стандартного» видео драйвера поместите следующий файл /etc/X11/xorg.conf


Section "ServerLayout"
        Identifier     "BodhiZazen's KVM xorg.conf"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Module"
        Load  "record"
        Load  "dri"
        Load  "extmod"
        Load  "glx"
        Load  "dbe"
        Load  "dri2"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "vmmouse"
        Option      "Protocol" "SysMouse"
        Option      "Device" "/dev/sysmouse"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
        HorizSync       20.0 - 50.0
        VertRefresh     40.0 - 80.0
        Option          "DPMS"

EndSection

Section "Device"
        Identifier  "Card0"
        Driver      "vesa"
        VendorName  "KVM - std"
        BoardName   "GD 5446"
        BusID       "PCI:0:2:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        SubSection "Display"
                Viewport   0 0
                Modes "1600x1200"
        EndSubSection
EndSection

Измените строку «Modes «1600×1200» на ваше желаемое разрешение.

Обратите внимание, что драйвер мыши vmmouse . vmmouse включен в большинство дистрибутивов (Debian, Fedora, и Ubuntu все включают этот драйвер по умолчанию).

Установка стандартного видеодрайвера отличается от того, как вы используете KVM.

Командная строка — используйте опцию -vgs std

kvm -hda ubuntu.qcow -vga std

Virtmanager (графический фронтенд}

Когда гостевая машина выключена, перейдите на страницу обзора , выберите вкладку «Video» справа, выберите «vga» (стоит раньше cirrus) из выпадающего меню.

Libvirt — отредактируйте ваш xml, установите видео в std следующим образом:

Как установить разрешение экрана гостевой машины в Xorg?

Если предположить, что вы используете xorg.conf из вышеприведенного примера, вы можете установить разрешение также редактированием /etc/X11/xorg.conf и установкой нового разрешения по умолчанию ( Modes line как выше) или, когда запущена гостевая машина, используйте системное графическое меню для установки разрешения.

В gnome это System -> Preferences -> Monitors

В XFCE это Applications -> Settings -> Display

Какие специфичный для системы подстройки рекомендуются?

Windows (Vista)

В Windows (старее чем Vista) виртуальных машинах необходимо подставить следующую строку в .xml:


  

вместо:


Windows Vista

Виртуальные машины с Windows Vista на борту должны добавить это в xml:


...
  
    
  

Debian Sarge

Debian Sarge (oldstable) могут записать неправильно /boot/grub/menu.lst, в результате в следующей загрузке:

pivot_root: no such file or directory
/sbin/init: 432: cannot open dev/console: no such file
Kernel panic: Attempted to kill init!

Чтобы исправить это в меню grub, нажмите ‘e’ и подправьте root=/dev/hdb1 чтобы стало root=/dev/hda1. После успешной загрузки, вам необходимо обновить /boot/grub/menu.lst чтобы получилось:

# kopt=root=/dev/hda1 ro

и запустить:

# update-grub

OpenBSD 4.1 (и другие?)

OpenBSD 4.1 (и, возможно, другие) когда используют сетевой драйвер rtl8139 могут показывать плохую производительность сети и выводить такое сообщение на консоль:

re0: watchdog timeout

Это исправляется использованием другой сетевой карты (e1000 подходит для нормальной работы). См. ‘Изменение модели сетевой карты’ выше.

OpenBSD 4.5 and later

Изменения в ядре OpenBSD kernel привели к повисаниям при загрузке при «setting tty flags». Если это происходит у вас, следуйте инструкциям на http://scie.nti.st/2009/10/4/running-openbsd-4-5-in-kvm-on-ubuntu-linux-9-04

Автор Sash(k)a

Ноябрь 28th, 2011 at 12:59 пп

Опубликовано в Без рубрики

Оставьте комментарий

Яндекс.Метрика