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

Сегодня в очередной раз мне понадобилось производить множественные операции с физическим жестким диском и если бы я по честному использовал установочные носители и инструментарий тестирования, то мне пришлось бы раз 30 перезагрузить компьютер. Мало того, что мне потребовалась бы для этого выделенная рабочая станция, так и времени бы это заняло гораздо больше.

 
 
Логотип GITA-DEV

Автор: Черноусов Антон aka Gita-Dev
Опубликовано: 01 Ноя 2018 (последние правки 2 месяца)

dev git kvm libvirt ubuntu видео утилиты

 

Итак, к чему это я все это длинное вступление написал, как вы наверное знаете, да и я про это уже несколько раз писал, для работы с 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 - Создаем виртуальное сетевое устройство

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

Похожие статьи

Создание сети типа мост для платформы виртуализации KVM при помощи Libvirt

Создание сети типа мост для платформы виртуализации KVM при помощи Libvirt

Если вы используете в своей работе менеджер виртуальных машин virt-manager, то вы наверное обращали внимание, что при создании сети вы не можете выбрать режим работы сети в виде добавления интерфейсов в существующий сетевой мост, но так как в основе этого менеджера лежит KVM и Libvirt, то мы всегда можем выполнить эту операцию в ручную из консоли.


Подготовка KVM-Libvirt инфраструктуры (удаленное подключение с поддержкой авторизации)

Подготовка KVM-Libvirt инфраструктуры (удаленное подключение с поддержкой авторизации)

Сегодня я расскажу и покажу как настроить удаленное управление гипервизором KVM/Qemu. Одним из ключевых моментов построения современных систем виртуализации ориентированных на продакшн-использование является централизованное управление и естественно, что централизация управления достигается использованием API. Одним из API для управления гипервизорами KVM/Qemu является Libvirt и стоит отметить, что эта библиотека, позволяет управлять не только KVM/Qemu, но и LXC.


Обзор open source платформы управления фермой виртуализации KVM (новое в WebVirtCloud)

Обзор open source платформы управления фермой виртуализации KVM (новое в WebVirtCloud)

Как верно подметили читатели моего блога, я конечно рассказал как установить WebVirtCloud, но не рассказал, чем же она так кардинально отличается от того же Proxmox например, да и немного скриншотов бы тоже не помешало. Я в свою очередь наверное даже пойду дальше и подготовлю небольшое видео, где продемонстрирую создание нескольких виртуальных машин и покажу некоторые новые фишки WebVirtCloud.


Создание фермы виртуализации на базе KVM/QEMU с WEB-интерфейсом управления WebVirtManager

Создание фермы виртуализации на базе KVM/QEMU с WEB-интерфейсом управления WebVirtManager

Так как мне надо подготовить для портфолио несколько описаний выполненных проектов, то пожалуй начну с построения фермы виртуализации на базе OpenSource решений без использования Proxmox и т.п. Стоит отметить, что мне удалось создать полноценную ферму виртуализации из исключительно Open Source компонентов и мигрировать на построенное решение около 100 виртуальных машин на которых производилась разработка и тестирование программного обеспечения.


Настройка OS Windows для работы в UTC time (проблема с локальным временем виртуальной машины в системе виртуализации KVM)

Настройка OS Windows для работы в UTC time (проблема с локальным временем виртуальной машины в системе виртуализации KVM)

Ничего против Windows не имею и считаю, что для каждой задачи требуется свой инструмент, но некоторые легаси-вещи там тянутся из из совсем уже глубины веков и я сейчас говорю не про поддержку кодировки UTF-8, сейчас с этим дела обстоят немного лучше, а про часы системы которые все еще не в UTC. И это кстати сказать порождает некоторые нетривиальные баги при виртуализации ОС Windows в KVM.


Запуск узла KVM-фермы WebVirtCloud (Ввод в эксплуатацию тестового сервера Metatron)

Запуск узла KVM-фермы WebVirtCloud (Ввод в эксплуатацию тестового сервера Metatron)

Как вы наверное знаете я активно использую в работе консоль управления гипервизорами KVM которая называется WebVirt Cloud. Она гарантированно OpenSource с исходными кодами которые я активно переделываю под себя и сегодня я хотел рассказать как в нее добавить одну ноду.


Отзывы и комментарии