Искусство виртуализации Евгений Зобнин aka j1m Хакер, номер #089, стр. 089-094-5 Теперь на примере установки некой абстрактной ОС рассмотрим возможности qemu. Для начала нам нужно создать виртуальный жесткий диск. Это можно сделать двумя способами: командой dd заполнить файл нулями, взятыми из /dev/zero, либо командой qemu-img. Второй способ более правильный и простой - его и рассмотрим. Создадим винт размером в 1 Гб: # qemu-img create disk.img 1G Также нам необходим ISO-образ, содержащий инсталлятор ОС (его легко извлечь с компакт-диска: "dd if=/dev/cdrom of=cd.iso conv=noerror"). Теперь запускаем qemu такой командой: # qemu -hda disk.img -cdrom cd.iso -boot d -monitor stdio Аргумент '-hda' задает наш виртуальный винт, '-cdrom' указывает на образ компакт-диска, '-boot d' - на загрузку с компакт-диска (возможен один из трех вариантов: a, b или c, то есть флопик, жесткий диск или CD-ROM), '-monitor stdio' предоставляет доступ к управляющей консоли qemu. Если все сделано правильно, то должно открыться окно qemu, в котором начнется загрузка инсталлятора ОС (или самой ОС, если это LiveCD), ну а далее следует установить ОС обычным способом. Если операционка попросит второй установочный диск, то его легко подсунуть, набрав две команды в консоли qemu: > eject cdrom > change cdrom cd2.iso По окончании установки перезапускаем qemu командой и радуемся новой ОС: # qemu -hda disk.img -monitor stdio Кстати, можно обойтись и без образа жесткого диска, указав реальный: # qemu -hda /dev/hda -monitor stdio Но я бы не рекомендовал так делать: рискуешь разрушить файловую систему. При острой необходимости лучше использовать другую команду: # qemu -snapshot /dev/hda -monitor stdio Так данные будут записываться не на реальный диск, а во временный файл. К сожалению, в рамках данной статьи нереально раскрыть всех возможностей qemu, таких как организация сетевого соединения, встроенный SMB-сервер, запуск бинарных файлов других архитектур или сохранение состояния виртуальной машины. INFO Сегодня в состав любого популярного дистрибутива Linux по умолчанию входит Xen. |