Использование QEMU/KVM для установки операционной системы на физический диск


 

Итак, к чему это я все это длинное вступление написал, как вы наверное знаете, да и я про это уже несколько раз писал, для работы с KVM/QEMU не обязательно устанавливать Proxmox, WebVirtManager и прочие утилиты управления, вам достаточно использовать консольную утилиту qemu-system-x86_64. Про то, что можно использовать qemu-system-x86_64 отдельно от разного рода интерфейсов управления и прослоек типа LibVirt многие знают, но не многие знают, что вы можете ей передать для работы реальный жесткий диск и например образ Windows 8.1 для работы с консолью восстановления Windows реально ничего не загружая.

Или можно снять RAW-образ диска при помощи команды dd и передать путь к дампу для emu-system-x86_64, после чего работать с утилитами восстановления информации не боясь "запороть" исходный носитель данных.

Для запуска qemu-system-x86_64 в режиме работы с RAW-диском используется следующая команда:

# qemu-system-x86_64-spice -m 2048 -boot d -enable-kvm -cdrom ./ubuntu-18.04.1-desktop-amd64.iso -drive file=/dev/sdb,format=raw

Если дополнительно требуется поддержка сети:

# qemu-system-x86_64 -m 2048 -boot d -enable-kvm -cdrom ./ubuntu-18.04.1-desktop-amd64.iso -drive file=/dev/sdb,format=raw -net nic -net user

В тяжелых случаях еще и тип видео-адаптера передаем

# qemu-system-x86_64 -m 4096 -vga cirrus -boot d -enable-kvm -cdrom ./neon-devedition-gitstable-20180814-1103-amd64.iso -drive file=/dev/sda,format=raw -net nic -net user

Пробежимся по параметрам которые мы передавали qemu-system-x86_64:

-m 4096 - Задаем объем оперативной памяти который мы предоставляем нашей виртуальной машине

-vga cirrus - Тип видео-адаптера который будем эмулировать

-boot d -Загружаться с CD-ROM (для загрузки с жесткого диска уберите этот параметр)

-enable-kvm - Активируем режим аппаратного ускорения (в противном случае будет медленно)

-cdrom ./neon-devedition-gitstable-20180814-1103-amd64.iso - Путь к ISO образу который будет подключен как CD-ROM

-drive file=/dev/sda,format=raw - Путь к физическому накопителю или RAW-образу диска который будет подключен в качестве HDD

-net nic -net user - Создаем виртуальное сетевое устройство

Ну и на последок небольшое видео, чтобы продемонстрировать как это работает.