11.11.2007

Использование виртуальной машины QEMU в Windows

В сети нашел несколько статей по использованию qemu из под linux и FreeBSD, а вот под Windows, видимо, народ предпочитает VMWare, но даже плеер весит более 100 мб, ну и для для небольших домашних экспериментов не хотелось заморачиваться со скачкой полноценной версии, поиском кряков и тп. (за основу взял статью FreeBSD QEMU + Windows 2000: новые подробности http://www.opennet.ru/base/sys/qemu_win.txt.html поэтому структуру своей статьи и некоторые фразы просто нагло копировал из за лени)


Задача: Поставить Linux на qemu под Windows XP для различных сетевых экспериментов

Установка qemu на Windows ХР
1. Качаем сам эмулятор qemu http://fabrice.bellard.free.fr/qemu/
2. Качаем Акселератор Kqemu http://www.h6.dion.ne.jp/~kazuw/qemu-win/Kqemu-1.3.0pre11-install.exe
3. Openvpn - http://openvpn.net из всего пакета нам пригодится только TAP-Win32 драйвер, без него сеть не заработает!
естественно страницы проекта могут изменяться, google в помощь!
Сначала ставим акселератор, потом распаковываем архив qemu.
Поскольку я довольно часто пользуюсь командной строкой в windows, то для удобства работы использую CmdHere Powertoy - удобная утилита, добавляет пункт в контекстное меню "open command window here", а так же портированые unix утилиты unxutils - значительно облегчают жизнь в консоли Windows (ищите в google).

Создаем образ жесткого диска для Windows размером 4Гб
qemu-img create ubuntusrv.img 4096M
Ставим Linux из образа
если планируется эксперементировать часто, то лучше создать bat файл
тем более образец лежит в папке с qemu. В качестве примера привожу
внутреннофсти моего пакетного файла для запуска knoppix - knoppix.bat:
***********************************************************************
REM Start qemu on windows.
@ECHO OFF

REM SDL_VIDEODRIVER=directx is faster than windib. But keyboard cannot work well.
SET SDL_VIDEODRIVER=windib

REM SDL_AUDIODRIVER=waveout or dsound can be used. Only if QEMU_AUDIO_DRV=sdl.
SET SDL_AUDIODRIVER=dsound

REM QEMU_AUDIO_DRV=dsound or fmod or sdl or none can be used. See qemu -audio-help.
SET QEMU_AUDIO_DRV=dsound

REM QEMU_AUDIO_LOG_TO_MONITOR=1 displays log messages in QEMU monitor.
SET QEMU_AUDIO_LOG_TO_MONITOR=0

REM PCI-based PC(default): -M pc
REM ISA-based PC : -M isapc
REM -M isapc is added for NE2000 ISA card.


qemu.exe -L "C:\Qemu" -m 256 -cdrom C:\Unix\ISO\Debian_based/KNOPPIX_V5.1.1CD-2007-02-01-UA.iso -soundhw all -localtime -boot d colinux.img -net nic,model=rtl8139,vlan=0 -net tap,ifname=TAP

**********************************************************************

Последняя строка начинающаяся с qemu.exe и далее все параметры пишутся через пробел без принудительного перехода на другие строки!
-L "C:\Qemu" - путь к папки с qemu
-m 256 - количество памяти системы, которое используется виртуальной машиной
-cdrom C:\Unix\ISO\Debian_based/KNOPPIX_V5.1.1CD-2007-02-01-UA.iso - эмулируется cdrom образом файла
-boot d ubuntusrv.img -boot [a|c|d]загрузка с дискеты (a), жёсткого диска (c) или CD-ROM (d). По умолчанию выполняется загрузка с жёсткого диска.
QEMU поддерживает два floppy диска и четыре IDE:
-fda файл.iso
-fdb файл.iso

-hda файл.iso
-hdb файл.iso
-hdc файл.iso
-hdd файл.iso
для доступа напрямую к дискам экспериментируйте с опцией \\.\PhysicalDriveN (N=0,1,2,...), сам не пробовал, так как боялся повредить структуру диска, а у меня там документы...
синтаксис подлючения второго виртуального диска такой: -hda C:\Qemu/colinux.img -hdb C:\Qemu/colinux2.img
Заметил, что программа не всегда создает образ пустого диска, чем объяснить - незнаю но после команды
qemu-img create название.img размерM
практически через раз создаются пустые образы по 0 байт, и соответственно припопытке подключения такого файла qemu просто не запускается.
Желательно с началом установки выставить низкий приоритет qemu, что бы не мешал работать с другими активными задачами. На моем Athlon 3200 с 1 Gb RAM и 256Мб под qemu установка ubuntu сервера из образа заняла более часа (правда иногда установка просто стояла в ожидании моих действий).

После установки Open VPN в Сетевых подключениях появиться новое сетевое соединение.
Нужно его настроить: задать сетевой адрес отличный от всех уже существующих соединений, маску подсети, шлюз.
Например, у меня интегрированная в материнскую плату сетевая карта смотрит в локальную районную сеть, через нее же я и получаю интернет.
Ее адрес 192.168.16.130 шлюз в интернет 192.168.16.180 DNS 192.168.16.180 192.168.1.1
В свойствах виртуального сетевого соединения, появившегося после установки Open VPN TAP-Win32 драйвера выставлены такие настройки:
адрес 10.0.0.1 маска 255.255.255.0 шлюз 192.168.16.130 DNS 192.168.16.180 192.168.1.1

После установи гостевой операционной системы, нужно настроить в ней сеть, при этом ее адрес должен находится в той же подсети с адресом виртуальной сетевой карты TAP-Win32:
например адрес 10.0.0.2 маска 255.255.255.0 шлюз 10.0.0.1 DNS 192.168.16.180 192.168.1.1
обратите внимание на шлюз - это адрес виртуального сетевого интерфейса.