"Иногда жизнь бьёт вас кирпичом по голове. Не только вас лично, а всех нас." Стив Джобс

Установка QEMU

Проверяем, поддерживается ли компьютером виртуализация:

~ $ egrep --color -E "vmx|svm" /proc/cpuinfo

в вывде должно быть:

flags ... vmx ...

В BIOS подключаем виртуализацию:

Virtualization Technology Enabled

В ядре устанавливаем следующие опции:

[*] Virtualization --->
<*> Kernel-based Virtual Machine (KVM) support
Если процессор Intel:
<M> KVM for Intel processors support
Если процессор AMD:
<M> KVM for AMD processors support
Needed for "vhost-net" USE flag (recommend):
<*> Host kernel accelerator for virtio net

Расширенная поддержка сети
Device Drivers --->
[*] Network device support --->
[*] Network core driver support
<*> Universal TUN/TAP device driver support
Needed for 802.1d Ethernet Bridging:
[*] Networking support --->
Networking options --->
<*> 802.1d Ethernet Bridging

Включение поддержки файловых возможностей Linux
Kernel hacking --->
Compile-time checks and compiler options --->
[*] Debug Filesystem

Включение поддержки ext4 kvm_stat
File systems --->
If you use the ext4 filesystem:
<*> The Extended 4 (ext4) filesystem
[*] Ext4 Security Labels

SPICE - поддержка включает более мощные QXL устройства отображения, повышает производительность, буфер обмена и возможность перетаскивания между хостом и гостем, автоматическое переключение разрешения и т.д.
Для его использования с QEMU добавляем USE - флаг spice:

root # vim /etc/portage/package.use
app-emulation/qemu spice usb QEMU_SOFTMMU_TARGETS: arm x86_64 sparc QEMU_USER_TARGETS: x86_64
app-emulation/spice client


Устанавливаем QEMU:

root # emerge --ask app-emulation/qemu
Сообщения для пакета sys-firmware/edk2-ovmf-201905:
Этот пакет содержит прошивки UEFI для tianocore edk2, 64-разрядной версии x86 виртуальных машин.
Прошивки находятся в:
/usr/share/edk2-ovmf/OVMF_CODE.fd
/usr/share/edk2-ovmf/OVMF_VARS.fd
/usr/share/edk2-ovmf/OVMF_CODE.secboot.fd
Если USE=binary флаг включен, также устанавливаем файл переменных OVMF (поступивший из fedora), который содержит ключи по умолчанию для безопасной загрузки:
/usr/share/edk2-ovmf/OVMF_VARS.secboot.fd
Если скомпилирован этот пакет вручную, необходимо либо заполнить все переменные EFI вручную при загрузке:
/usr/share/edk2-ovmf/UefiShell.(iso|img)
или создать вручную OVMF_VARS.secboot.fd см. qemu-ovmf-secureboot
Прошивка не поддерживает CSM (из-за отсутствия доступа к свободной реализации CSM). Если нужна прошивка с поддержкой csm, необходимо её скачать. Эти прошивки обычно помечаются:
OVMF{,_CODE,_VARS}-with-csm.fd
Для использования прошивки можно запустить qemu следующим образом:
$ qemu-system-x86_64 -drive file=/usr/share/edk2-ovmf/OVMF.fd,if=pflash,format=raw,unit=0,readonly=on ...
Можно зарегистрировать прошивку для использования в libvirt, добавив в /etc/libvirt/qemu.conf:
nvram = ["/usr/share/edk2-ovmf/OVMF_CODE.fd:/usr/share/edk2-ovmf/OVMF_VARS.fd" "/usr/share/edk2-ovmf/OVMF_CODE.secboot.fd:/usr/share/edk2-ovmf/OVMF_VARS.fd"]
Подробнее на /usr/share/doc/edk2-ovmf-201905/README.gentoo*


Если необходим графический интерфейс, дополнительно устанавливаем "Менеджер виртуальных машин" или app-emulation/aqemu.
При использовании virt-manager USE - флаг usbredir должен быть включен.

root # emerge virt-manager

Для запуска, необходимо убедиться, что пользователь, находятся в группе libvirt:

root # groupadd libvirt
root # usermod -a -G libvirt <user>

Раскомментируем следующие строки из файла конфигурации libvirtd:

root # vim /etc/libvirt/libvirtd.conf
unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"


Перед запуском менеджера необходимо запустить libvirtd:

root # /etc/init.d/libvirtd start

Для systemd:

root # systemctl restart libvirtd

Добавляем пользователя в группу KVM:

root # gpasswd -a username kvm

Проссматриваем QEMU опции.
Создаём директорию "QEMU".

~ $ mkdir ~/QEMU

Заходим в неё:

~ $ cd ~/Qemu

Установка Windows на виртуальную машину QEMU

"Но вернёмся к MS-DOS. Сейчас это основная операционная система для персональных компьютеров, но постепенно она заменяется системой с графическим пользовательским интерфейсом. Заменой ей могла бы быть и Macintosh, и OS/2, и UNIX. Но получилось так, что лидером стала Windows. Однако в области высоких технологий перемены не редкость, и даже на ближайшее будущее нет никакой гарантии, что Windows сохранит лидерство."
Билл Гейтс

Прежде, чем принять решение об установке Windows, внимательно ознакомьтесь с:
"Microsoft Terms of Use".
Загружаем на основной компьютер Win10_XXXXX_XXXXX_x64.iso
Создаём виртуальный, жёсткий диск:

~/QEMU $ qemu-img create -f qcow2 Windows10.img 50G

Устанавливаем "Windows" c загруженого iso образа на созданный виртуальный, жёсткий диск:

~/QEMU $ /usr/bin/qemu-system-x86_64 -enable-kvm -m 2048 -smp 4,cores=2 -usb -device usb-kbd -device usb-tablet -hda ./Windows10.img -boot d -cdrom ./Win10_XXXXX_XXXXX_x64.iso -name "Windows10"

Чтобы запустить QEMU из скрипта с поддержкой SPICE, предварительно устанавливаем net-misc/spice-gtk или app-emulation/virt-viewer:

root # emerge --ask net-misc/spice-gtk

Создаём скрипт для запуска "Windows" с поддержкой SPICE:

~/QEMU $ cat > ./Запуск_Qemu.sh << "EOF"
#!/bin/sh
/usr/bin/qemu-system-x86_64 -enable-kvm -m 2048 -rtc base=localtime -daemonize -soundhw hda \
-cpu host -smp 4,cores=2 \
-usb -device usb-ehci,id=ehci -device usb-tablet,bus=ehci.0 \
-net nic -net user,hostname=windowsvm \
-drive file=Windows10.img -vga qxl \
-spice port=5900,addr=127.0.0.1,disable-ticketing -device virtio-serial-pci \
-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
-chardev spicevmc,id=spicechannel0,name=vdagent \
"$@"
exec spicy --title Windows 127.0.0.1 -p 5900 # для virt-viewer строку заменяем на:
exec remote-viewer --title Windows spice://127.0.0.1:5900

EOF


Делаем его исполняемым:

~/QEMU $ sudo chmod +x ./Запуск_Qemu.sh

Запускаем Windows:

~/QEMU $ sh ./Запуск_Qemu.sh


Windows

Для повышения производительности, включения буфера обмена, возможности перетаскивания, автоматического переключения разрешения и т.д., устанавливаем на Windows spice-guest-tools.
Добавляем виртуальную память:
В проводнике правой кнопкой мыши щёлкаем "Этот компьютер".
Выбираем: "Свойства" > "Дополнительные параметры системы" > пункт "Быстродействие" > нажимаем "Параметры..." > "Дополнительно" > пункт "Виртуальная память" > нажимаем "Изменить..." > ставим галочку "Указать размер:" > устанавливаем "Исходный размер (МБ):" и "Максимальный размер (МБ):" > щёлкаем "Задать" и "OK"; "OK"; "OK"
Перезагружаемся.
Выход из полноэкранного режмиа осуществляется нажатием клавиш Shift_l + F12 или Shift_Ctrl + F12.
Выходим из спящего режима щелчком правой кнопкой мышки по экрану Qemu.

Установка Gentoo на виртуальную машину QEMU

"Я действительно не хочу уничтожать Microsoft - это будет побочный эффект"
Линус Торвальдс

Загружаем на основной компьютер установочный диск install-amd64-minimal-xxxx.iso.
Создаём виртуальный, жёсткий диск:

~/QEMU $ qemu-img create -f qcow2 Gentoo.img 20G

Устанавливаем ./install-amd64-minimal-xxxx.iso на созданный, виртуальный жёсткий диск:

~/QEMU $ /usr/bin/qemu-system-x86_64 -enable-kvm -m 2048 -smp 4,cores=2 -usb -device usb-kbd -device usb-tablet -hda ./Gentoo.img -boot d -cdrom ./install-amd64-minimal-xxxx.iso -name "Gentoo"

Для загрузки с CD-DVD диска, необходимо заменить iso образ на флаг "-cdrom /dev/cdrom"
Устанавливаем "Gentoo!".
Добавляем исходные коды ядра:

Processor type and features --->
[*] Linux guest support --->
[*] Enable Paravirtualization code
[*] KVM Guest support (including kvmclock)
Device Drivers --->
Virtio drivers --->
<*> PCI driver for virtio devices
[*] Block devices --->
<*> Virtio block driver
[*] Network device support --->
<*> Virtio network driver
SCSI device support --->
[*] SCSI low-level drivers --->
[*] virtio-scsi support


Для запуска Gentoo с жёсткого, виртуального диска создаём скрипт:

~/QEMU $ cat > ./Запуск_Qemu.sh << "EOF"
#!/bin/sh
/usr/bin/qemu-system-x86_64 --enable-kvm -m 2048 -soundhw hda -smp 4,cores=2 \
-usb -device usb-kbd -device usb-tablet \
-boot c ./Gentoo.img -name "Gentoo" \
EOF

Делаем его исполняемым:

~/QEMU $ sudo chmod +x ./Запуск_Qemu.sh

Запускаем Gentoo:

~/QEMU $ sh ./Запуск_Qemu.sh

Установка macOS на виртуальную машину QEMU

"Microsoft потратили много миллионов долларов на разработки и развитие собственных продуктов, но все они отчего-то выглядят как копии продуктов Apple. Когда я хочу поднять себе настроение, то сразу вспоминаю этот факт."
Стив Джобс

OS X

"Вы не можете просто спросить клиентов о том что им нужно, ведь к тому моменту пока вы это сделаете - они будут хотеть что-то новое..."
Стив Джобс

OS XOS X

"Пикассо говорил: 'Хорошие художники копируют, великие - воруют'. И мы никогда не стеснялись воровать великие идеи."
Стив Джобс


Прежде, чем принять решение об установке macOS, внимательно ознакомьтесь с:
"SOFTWARE LICENSE AGREEMENT FOR macOS High Sierra For use on Apple-branded Systems".
Загружаем установщик OS X в папку ~/QEMU.
Система должна содержать следующие компоненты:
libffi
gettext
glib
pkg-config
autoconf
automake
pixman

Проверяем, если их нет, устанавливаем.
Загружаем enoch_rev2902_boot BIOS в папку ~/QEMU.
Создаём виртуальный, жёсткий диск:

~/QEMU $ qemu-img create -f qcow2 macOS.img 64G

Создаём раздел GPT на диске «macOS.img»:

~/QEMU $ cfdisk macOS.img

Создаём скрипт для запуска macOS.sh:

#!/bin/sh
/usr/bin/qemu-system-x86_64 -enable-kvm -boot c -m 4096 -machine pc-q35-2.11 \
-usb -device usb-kbd -device usb-tablet \
-device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" \
-kernel enoch_rev2902_boot \
-smbios type=2 \
-device ich9-intel-hda \
-device hda-duplex \
-device ide-drive,bus=ide.2,drive=MacHDD \
-drive format=qcow2,id=MacHDD,if=none,file=macOS.img \
-cpu Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on -smp 4,cores=2 \
-netdev user,id=eno1 -device e1000-82545em,netdev=eno1,id=vnet0 \
-device ide-drive,bus=ide.0,drive=MacDVD \
-drive id=MacDVD,if=none,snapshot=on,file=macOS.iso -monitor stdio


Делаем его исполняемым:

~/QEMU $ sudo chmod +x macOS.sh

Устанавливаем "macOS" c iso образа на созданный виртуальный, жёсткий диск:

~/QEMU $ sh macOS.sh

enoch_rev2902_boot

нажимаем Enter.


enoch_rev2902_boot

Выбираем язык.
Перед установкой "macOS" заходим в терминал.

OS X

Форматируем образ диска «macOS.img», чтобы он соответствовал типу Apple.
Определяем наш виртуальный, жёсткий диск и разбиваем его, на разделы:

diskutil list
diskutil partitionDisk /dev/disk2 GPT HFS+J New 0b


MacOS
MacOS

Закрываем терминал и выбираем опцию «Установка macOS».


Следуем инструкциям.
Выбираем установочный диск, помеченный как «New».


После завершения установки может появиться черный экран с предупреждением: "ParseTagDate unimplemented".
Нажимаем F12, появится экран загрузки BIOS. Выбираем «Новый» диск «hd (1,2) () New», нажимаем Enter и завершаем установку macOS.
Cнова появится экран BIOS. На этот раз он будет содержать установщик, установленный образ диска macOS и диск восстановления.


Выбираем свой образ диска macOS «hd (1,2) (10.13) New», завершаем работу установщика.


Выключаем виртуальную машину.
Убираем ISO образ из стартового скрипта macOS.sh, закоментировав или удалив -device и -drive в последних двух строках:

/usr/bin/qemu-system-x86_64 -enable-kvm -boot c -m 4096 -machine pc-q35-2.11 -usb -device usb-kbd -device usb-tablet -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -kernel enoch_rev2902_boot -smbios type=2 -device ich9-intel-hda -device hda-duplex -device ide-drive,bus=ide.2,drive=MacHDD -drive format=qcow2,id=MacHDD,if=none,file=macOS.img -cpu Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on -smp 4,cores=2 -netdev user,id=eno1 -device e1000-82545em,netdev=eno1,id=vnet0 -monitor stdio

Это удалит установщика macOS из загрузочного BIOS.
С каждым обновлением, машины Apple становятся все более заблокированными и недружелюбными к конечному пользователю. Вероятность установки OS X на другую машину становится всё меньше и меньше.
Рекомендуется: "Прежде чем устанавливать какое-либо обновление, создать резервную копию данных виртуальной машины".

Создание загружаемого установщика для macOS

В качестве загрузочного диска для установки операционной системы на компьютер Mac можно использовать внешний диск или дополнительный том.
Для загрузки установщика macOS High Sierra, набираем в браузере:

https://itunes.apple.com/us/app/macos-high-sierra/id1246284741?ls=1&mt=12&ign-mscache=1

Загружаем установщик, щелчком по GET.



Когда установщик macOS загрузится, закрываем его, не продолжая установку.
Находим файл установщика с именем Install macOS High Sierra, в папке «Программы».
Перезагружаемся.
Открываем терминал.
Создаём чистый образ диска:

hdiutil create -o /tmp/HighSierra.cdr -size 6500m -layout SPUD -fs HFS+J # hdiutil - это консольная утилита, работающая с образами дисков.

Монтируем созданный образ:

hdiutil attach /tmp/HighSierra.cdr.dmg -noverify -mountpoint /Volumes/HighSierra

Предполагается, что установщик все еще находится в папке «Программы», а вместо HighSierra можно использовать New - диск, флеш-накопитель USB или другой подключенный том.
Устанавливаем установщик на вновь смонтированный образ:

sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/HighSierra

Если на компьютере Mac используется ОС macOS Sierra или более ранней версии, добавляем аргумент --applicationpath /Applications/Install\ *.app
Копируем ядро:

cp -rp /System/Library/Kernels /Volumes/Install\ macOS\ High\ Sierra/System/Library/Kernels

Размонтируем образ:

hdiutil detach /Volumes/Install\ macOS\ High\ Sierra

Переносим образ на рабочий стол:

mv /tmp/HighSierra.cdr.dmg ~/Desktop/HighSierra.dmg

Конвертируем формат .dmg в формат .iso:

hdiutil convert ~/Desktop/HighSierra.dmg -format UDTO -o ~/Desktop/HighSierra.iso

Переименовываем файл, убрав .cdr с конца:

mv ~/Desktop/HighSierra.iso.cdr ~/Desktop/HighSierra.iso

Установка Android на виртуальную машину QEMU

Проект с открытым исходным кодом, лицензированный под Apache Public License 2.0. Некоторые компоненты лицензируются в соответствии с GNU General Public License (GPL) 2.0 или более поздней.
Загружаем любой необходимый образ (stable) Android-x86.
Создаём виртуальный, жёсткий диск:

~/QEMU $ qemu-img create -f qcow2 Android.img 8G

Устанавливаем "Android" c загруженого iso образа на созданный виртуальный, жёсткий диск:

~/QEMU $ /usr/bin/qemu-system-x86_64 -enable-kvm -m 2048 -smp 4,cores=2 -usb -device usb-kbd -device usb-tablet -hda ./Android.img -boot d -cdrom ./android-x86_64-8.1-r1.iso -name "Android"

Запускаем установку.



Создаём партицию.



Не используем GPT.



Создаём новый раздел на диске.



Делаем его первичным.



Подтверждаем созданный раздел.



Делаем раздел загрузочным.



Записываем данные на раздел.



Подтверждаем запись данных на раздел напечатав yes.



Для окончания работы с диском, выбираем Quit и выходим из создания раздела.



Выбираем только что созданный раздел для установки Android.



Выбираем тип файловой системы Ext4.



Подтверждаем выбор файловой системы Ext4, стрелкой на клавиатуре переместившись в Yes.



Выбираем загрузчик Grub, стрелкой на клавиатуре переместившись в Yes.



Соглашаемся с созданием /system директории.



Перезагружаемся Reboot. Выключаем виртуальную машину.
Убираем ISO образ из стартового скрипта, это удалит установщика Android из загрузочного BIOS.
Запускаем Android:

~/QEMU $ /usr/bin/qemu-system-x86_64 -enable-kvm -m 4096 -soundhw hda -smp 4,cores=2 -usb -device usb-kbd -device usb-tablet -boot d -hda ./Android.img -name "Android"

Выбираем язык и нажимаем "Начать".



Переходим к настройкам приложений Android.



Подобным образом Android можно установить на жёсткий диск или флешку.
Для этого загружаем iso образ на загрузочную флешку:

root # dd if=./android-x86_64-8.1-r1.iso of=/dev/sdX

При разбивке диска выделяем раздел 8G под установку Android.
Устанавливаем с этой флешки.
Запускаем Installation - Install Android-x86 to harddisk, появится окошко Choose Partition с разделами диска и флешками.
В случае, если разделы диска или флешки не отобразились, выбираем Detect devices и нажимаем OK.
Выбираем раздел диска, или флешку, на которые хотим установить Android, жмём OK.
Далее, что доктор прописал...

Программа qemu-img

qemu-img — программа для манипулирования с образами дисков машин QEMU.
Поддерживает несколько подкоманд: create, commit, convert, info и т.д.
Возможные форматы:
VMwarevmdk, KVM, Xenqcow2, Hyper-Vvpc, Hyper-Vvhdx, RAWraw, VirtualBoxvdi и т.д.
Для конвертации используем опцию convert с ключами указания исходного и конечного формата. Ключи к convert:
-p — отображает процесс конвертации в процентах.
-f — указание исходного формата.
-O — указания формата на выходе.
-o — дополнительные опции.
-o subformat=dynamic — используется для конвертации в vhdx для Hyper-V, указывается для получения на выходе динамического диска.
К примеру конвертировать:

~/QEMU $ qemu-img convert -p -f vmdk -O qcow2 Gentoo.vmdk Gentoo.img

Монтируем .img образ

Командой fdisk определяем начальный сектор раздела:

root # fdisk -l ~/Qemu/Android.img
Диск ~/Qemu/Android.img: 8 GiB, 8589934592 байт, 16777216 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x00000000



Монтируем необходимый раздел:

root # mount -o offset=$((63*512)) ~/Qemu/Android.img /media/ # 63 начало монтируемого раздела

Проверяем:

root # ls /media/
android-8.1-r1 grub lost+found


Продаются
книги

Оставить отзыв

Установи и
БУДЕШЬ СЧАСТЛИВ!

Спасибо, Господи, что взял деньгами...

Scrooge
Dollar
Ruble
Ruble
Gold