|
Программирование
On-line приложения
Почитать
Web-сервер Apache
Печать и форматирование
MySQL
Разные рецепты
Сборка/установка
Редактор vi
Справки
Философия
Мой опыт
Скачать
Программы на Tcl/Tk (GUI)
Программы на Python/Tk (GUI)
Программы (CLI)
Help
Хобби
Фракталы
on-line
Язык для рисования фракталов
Гиперкуб
Теория относительности
Ампуллярии
Преподавание
Студенту/абитуриенту
Мой опыт
Автора!
|
Qemu: Windows под UNIXКакие задачи решаем (запуск Winodws под FreeBSD)Qemu — универсальное средство (официальный сайт Qemu). Он создаёт виртуальные машину, на которой можно запустить любую ОС. Я его использую для запуска Windows (XP) на FreeBSD. Как это сделать я и собираюсь вкратце рассказать. Установка qemu под FreeBSDСборка qemuНачиная с FreeBSD 6.3 qemu можно просто поставить из бинарных пакетов. Но для более ранних версий, вам придётся собрать qemu самостоятельно. Qemu развивается очень быстро и я настоятельно рекомендую перед установкой обновить порты. Детальный рассказ о том, как обновить порты, пользуясь CVSup можно найти в документации на FreeBSD. Коротко расскажу последовательность действий. Создаём файл # ближайшее ко мне зеркало, можете выбрать другое *default host=cvsup2.ru.FreeBSD.org *default base=/var/db *default prefix=/usr *default release=cvs tag=. *default delete use-rel-suffix # разрешаем компрессию при передаче данных *default compress # обновляем все порты # можно обновлять только часть, например, ports-emulators ports-all Разместить это файл можно где угодно и назвать его можно как угодно. Далее запускаем процесс обновления: cvsup -g -L 2 supfile Ждём некоторое время, всё, порты обновлены. На текущий момент самая свежая версия qemu — 0.9.0 (в начале 2008 года появилась значительно улучшенная версия 0.9.1, но в портах её пока нет). Дальше собираем qemu из портов по традиционной схеме: cd /usr/ports/emulators/qemu make Вам будет задан вопрос, какие компоненты qemu необходимы. Я включаю поддержку kqemu — специального модуля ядра, значительно ускоряющего работу эмулятора. После сборки делаем make install Осталось сконфигурировать систему. Конфигурирование FreeBSD для использования qemuДля успешного запуска вам понадобятся два модуля ядра: во-первых, загружаем модуль kqemu: kldload kqemu.ko во-вторых, загружаем модуль асинхронного ввода/вывода: kldload aio.ko Без него qemu будет выдавать загадочное сообщение: Bad system call (core dumped) (или типа того, разные версии ругаются чуть по разному, но одинаково загадочно) и падать. Загрузка следующих модулей нужна только если вы хотите выдать эмулятору реальный IP-адрес. Для этого, вам понадобится мост. Загружаем модуль: kldload bridge.ko Настраиваем мост: sysctl net.link.ether.bridge_cfg=bge0,tap0 sysctl net.link.ether.bridge.enable=1 Здесь Кроме того понадобится устройство Файл диска виртуальной машиныВиртуальная машина, конечно, имеет жёсткий диск. На самом деле это просто файл, объём которого и определяет объём диска. Я создаю файл на 12 гигабайт, для моих целей этого более чем достаточно. qemu-img create win12G 12G Теперь у нас имеется файл Конфигурирование сети для виртуальной машины qemu в режиме NATQemu может сам эмулировать NAT. Запускаем так: qemu -m 512 \
-hda /root/qemu/win12G \
-net nic \
-net user \
-localtimeОбратите внимание на опции Никаких дополнительных модулей ядра в этом режиме не требуется. Конфигурирование сети для виртуальной машины qemu с реальным IP-адресомВ этом случае вам как раз понадобится мост
( Чтобы qemu смогло поднять сетевой интерфейс, ему
нужен up-скрипт. Назовём его Я получаю данные по DHCP, поэтому скрипт не велик: #!/bin/sh ifconfig $1 0.0.0.0 Всё, виртуальная машина готова к запуску. qemu -m 512 \
-hda /root/qemu/win12G \
-net nic \
-net tap,script=/root/qemu/qemu-ifup \
-localtimeУстановка Windows на виртуальную машинуОбраз загрузочного дискаПервым делом я создаю образ загрузочного диска Windows. Этого можно и не делать, для установки можно использовать полноценный диск, но как показывает практика, образ не повредит. dd if=/dev/acd0 of=WXP.iso bs=2048 Я делаю образ из двух соображений: первое — элементарная запасливость, второе — из файла установка идёт быстрее потому, что диск то раскручивается, то останавливается, а файл всегда доступен по первому требованию. Установка Windows, шаг первыйТеперь нам надо загрузить виртуальную машину с CD-ROM и установить Windows: qemu -m 512 \
-win2k-hack \
-cdrom /root/qemu/WXP.iso \
-boot d \
-hda /root/qemu/win12G \
-net nic \
-net tap,script=/root/qemu/qemu-ifup \
-localtimeВиртуальная машина будет иметь 512Mb оперативной памяти
( После запуска Windows предложит вам разбить новый диск на разделы и начнёт установку. Тут нет ничего необычного, Windows живёт на виртуальной машине точно так же, как и на реальной. Установка Windows, шаг второйНа втором шаге установки вам надо загрузиться с диска, но CD-ROM должен быть по прежнему доступен: qemu -m 512 \
-win2k-hack \
-cdrom /root/qemu/WXP.iso \
-hda win12G \
-net nic \
-net tap,script=/root/qemu/qemu-ifup \
-localtimeЗавершаем установку и настройку Winodws. Использование.Запуск WindowsТеперь, чтобы запустить Windows, достаточно выполнить команду вида: qemu -m 512 \
-hda /root/qemu/win12G \
-hdb /root/qemu/win8G-d \
-net nic \
-net tap,script=/root/qemu/qemu-ifup \
-localtimeОбратите внимание, здесь я ещё добавил в систему второй диск ( Несколько простых инструкций
Возможности консоли qemuВсе возможности можно узнать по команде Остановка машины — Остановить эмуляцию (остановить процессор машины) — Запустить процессор снова — Вытащить виртуальный CD-диск — Сохранить или загрузить состояние виртуальной машины —
Единственная «неприятность» связана с часами. Системе будет казаться, что часы сделали резкий скачок, что может привести к некоторым недоразумения. Впрочем, не фатальным. Кроме того из консоли вы можете делать много другое: управлять мышью и клавиатурой, смотреть регистры процессора и состояние памяти, эмитировать нажатия кнопок «reset» и «power», добавлять и удалять USB-устройства, делать снимок экрана и многое другое. Работа с Windows через rdesktopПреимуществаНа мой взгляд, при запуске Windows в эмуляторе с ним проще и удобней работать через rdesktop. Основные преимущества:
ЗапускЕсли вы используете NAT-конфигурацию Qemu, то для того, чтобы
пропустить «наружный» трафик, вам следует создать канал,
добавив опцию qemu -m 512 -hda win12G -net nic -net user -localtime -redir tcp:3389::3389 Вот, собственно, и всё. Теперь весь трафик, входящий на порт 3389 вашей виртуальной машины, будет пропущен внутрь. Больше нам ничего и не надо. Запускаем rdesktop: rdesktop -k en-us -r clipboard -u winuser 127.0.0.1 Утилита rdesktop позволяет сделать очень многое, здесь я привёл пример использования только трёх опций:
Подключаемся мы на локальный хост, но никто не мешает подключиться и с удалённой машины, кроме, возможно, firewall-a. |
|
|
|