воскресенье, 5 июля 2009 г.

QEMU: простой и быстрый эмулятор процессора

Автор: Майкл Вильямсон (Michael Williamson)
Перевод: Алексей Бешенов


QEMU позволяет вам работать с виртуальным компьютером на базе вашего реального компьютера. Это как нельзя кстати подходит для тестирования последних версий дистрибутивов, запуска старых операционных систем, или опробования чего-то еще.

Итак, пусть вы хотите запустить LiveCD, сохраненный на жестком диске. Это довольно легко — просто пишем

qemu -cdrom path/to/livecd.iso -boot d

Опция -cdrom указывает QEMU путь к образу диска, а -boot указывает устройство загрузки — здесь это CD-ROM (он всегда обозначается как d).

(Тут вы можете получить сообщение о kqemu — можете пока без всяких последствий не обращать на него внимания.)

Кроме того, вы можете загрузиться с настоящего диска, для этого просто укажите путь к дисководу в директории /dev. Например, если ваш дисковод — /dev/hdc:

qemu -cdrom /dev/hdc -boot d

Конечно, мы хотим не просто использовать компакт-диски все время, а еще и что-то установить. Итак, мы должны сначала сделать образ жесткого диска при помощи qemu-img:

qemu-img create virtualharddrive.qcow 5G -f qcow

Это создаст образ с именем «virtualharddrive.qcow» размером 5 гигабайт. Для 5 мегабайт вместо этого напечатайте «5M», для десяти гигабайт — «10G», и так далее.

Наконец, -f указывает qemu-img, какой формат будет использоваться. Выбор невелик, и qcow работает довольно хорошо и занимает на диске только требуемый объем — если виртуальный диск имеет емкость 5 гигабайт, но содержит 2 гигабайта, то на реальном диске он и займет в районе 2 гигабайт.

Итак, приступим:

qemu virtualharddrive.qcow -cdrom path/to/installcd.iso -boot d

Далее следуем инструкциям, как при обычной установке.

Не все дистрибутивы идут на одном диске, поэтому иногда диски приходится менять. Для этого нужно сделать две вещи: во-первых, включить обработку команд монитором QEMU, добавив опцию «-monitor stdio», как-то так:

qemu virtualharddrive.qcow -cdrom path/to/installcd.iso -boot d -monitor stdio

Когда вы запустите это, QEMU позволит вводить команды. Для смены CD напечатайте

eject cdrom
change cdrom path/to/newcd.iso


Вуаля! Виртуальная машина теперь должна сменить диск, и вы продолжите установку. На самом деле, диски можно менять когда угодно, а не только во время установки.

Когда установка завершится, вам будет нужно загрузиться с жесткого диска. Так как QEMU делает это по умолчанию, просто уберите из команды «-boot d»:

qemu virtualharddrive.qcow -cdrom path/to/installcd.iso -monitor stdio

Если вам нужно использовать диск после установки, используйте

qemu virtualharddrive.qcow -monitor stdio

Это позволит вам делать с установленной системой все что угодно, без риска по отношению к вашему компьютеру. Если хотите с чем-то поиграться, но не хотите вносить изменения в образ, добавьте опцию -snapshot. Если после использования этой опции вы все-таки захотите сохранить изменения, просто напечатайте в мониторе QEMU «commit».

Хотя эти команды работают, вы заметите, что все несколько медленно, если речь не об облегченных дистрибутивах. Это происходит оттого, что QEMU использует по умолчанию до 128 Мб оперативной памяти. Вы можете увеличить доступное пространство памяти, указав его объем после ключа -m. Например, если для запуска LiveCD нужно использовать 256 Мб памяти, нужно напечатать

qemu -cdrom path/to/livecd.iso -boot d -m 256

Это должно все хорошо ускорить, но не стоит отдавать QEMU слишком много памяти — что-то нужно оставить для других приложений. Увы, по правде говоря, работать все будет довольно медленно, и для дополнительного ускорения понадобится kqemu.

Установить kqemu из хранилищ пакетов несложно. Получите пакет kqemu-source — в apt-get сделайте

apt-get install kqemu-source

Если у вас нет пакета module-assistant, установите и его:

apt-get install module-assistant

Далее исполните (как root) следующие команды:

m-a prepare
m-a auto-install kqemu


Все должно быть готово. Теперь всякий раз, когда вам потребуется модуль kqemu, вам нужно сначала стать пользователем root, а потом напечатать

modprobe kqemu major=0

Теперь запущенный простым пользователем QEMU автоматически использует kqemu для ускорения. Если QEMU пожалуется на то, что kqemu не может запуститься, то, возможно, вы не установили соответствующих прав; попробуйте как root выполнить

chmod 666 /dev/kqemu

Надеюсь, теперь QEMU может использовать kqemu.

Есть еще одна опция: -kernel-kqemu. Теоретически, это еще больше ускоряет эмулятор, но, увы, не все так просто. Во-первых, версия QEMU в хранилищах пакетов Debian такой опции не поддерживает. Во-вторых, даже если опция используется, не все операционные системы будут работать — например, последняя версия дистрибутива GNU/Linux будет работать быстрее (если будет работать), но Windows 98 просто рухнет.

Статья отсюда

1 комментарий:

Oleg комментирует...

как-то мне больше VirtualBox и Vmware Player нравятся.
QEMU не приглянулся.