Эмулятор QEMU

Такая нужная вещь…  Особенно для тех, кто любит все тестировать. В общем, вашему внимаю представляется эмулятор компьютера QEMU. Что он может? А может он практически все что пожелает душа :).  Мое знакомство с ним началось с установки Qemulator- простенькая графическая  для управления. Тут даже инструкций не надо все понятно с первого раза. Создал образ диска (винта для системы), выбрал откуда грузиться (сиди или образ сиди), и запускай. И вот установилась Винда… Да, она нужна мне. При предыдущих опытах я запорол диск с данными, которые собирал не один год. Под линукс я не нашел ничего, что могло бы это восстановить винт, на который ставили поверх систему. Максимум, что возможно — это восстановить удаленные файлы… А зачем они мне, если я их удалил ))).
Установить систему — самое простое. Дальше проблема подключение реального раздела диска. Решилось просто в параметрах запуска qemu -hdb /dev/hdc2 (где — hdb на какой диск виртуальной машины монтировать (всего их четыре + 2 флоппика), а второй — образ диска или устройство).
Дальше проблема была с созданием сети для виртуальной машины. После чтения разных предложений решил так:
ставлю мост:
в /etc/network/interfaces пишу:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto tap0
iface tap0 inet static
up ifconfig tap0 up
down ifconfig tap0 down
tunctl_user delimer

auto br0
iface br0 inet dhcp
bridge_ports eth0 tap0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

Тут надо обратить внимание, что инет у меня раздает роутер. Грубо говоря, к нему подключается мост ( устройство br0), которое принимает на себя обработку (от устройств eth0 и tap0 — первое сетевая карта, второе виртуальная сетевая карта), еще адреса выдаются по DHCP. При статическом адресе это надо указывать в настройках моста (br0).
В общем получается, что моя система обращается через сетевую карту (eth0), виртуальная машина будет использовать виртуальную карту (tap0), все это будет идти на мост (br0), а далее в нет…
После всех настроек должен работать интернет на линуксе (или как говорят на домашней системе, а та которая запускается на эмуляторе — гостевая система). Далее запускаем виртуальную машину (запускать надо под рутом, еще не совсем разобрался, как можно запустить под пользователем):
qemu -M pc -m 128 -net nic -net tap,ifname=tap0 -hda /home/delimer/win -localtime -hdb /dev/hdc2 -boot c
где:
-M pc тип запускаемой машины
-m 128 сколько оперативной памяти у запускаемой машины
-net nic -net tap,ifname=tap0 все сетевые данные гостевой системы будут направлены на tap0
-hda /home/user/win.img образ с установленной системой
-localtime время в гостевой системе берется из домашней машины
-hdb /dev/hdc2 присоединить вторым диском реальный раздел винчестера
-boot c загружаться с диска «це»(можно и с сд рома)

Но чтобы сеть заработала надо еще потрудиться… Простой способ — после загрузки гостевой системы в домашней системе сделать рестарт сети (/etc/init.d/networking restart). Ну, и в гостевой системе обновить адрес. По крайней мере, у меня так все заработало.
Для справки: дома стоит два компа соединенных через роутер. Адреса раздает роутер. Инет раздает роутер. На одной машине винда, На второй линукс. На линуксе виртуалка с виндой))) Все запутанно, но работает.

Добавить комментарий