"Microsoft потратили много миллионов долларов на разработки и развитие собственных продуктов, но все они отчего-то выглядят как копии продуктов Apple.
Когда я хочу поднять себе настроение, то сразу вспоминаю этот факт" Стив Джобс
"Microsoft потратили много миллионов долларов на разработки и развитие собственных продуктов, но все они отчего-то выглядят как копии продуктов Apple.
Когда я хочу поднять себе настроение, то сразу вспоминаю этот факт" Стив Джобс
Проверяем, поддерживается ли компьютером виртуализация:
~ $ 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
"Но вернёмся к 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 spice-guest-tools.
Добавляем виртуальную память:
В проводнике правой кнопкой мыши щёлкаем "Этот компьютер".
Выбираем: "Свойства" > "Дополнительные параметры системы" > пункт "Быстродействие" > нажимаем "Параметры..." > "Дополнительно" > пункт "Виртуальная память" > нажимаем "Изменить..." > ставим галочку "Указать размер:" > устанавливаем "Исходный размер (МБ):" и "Максимальный размер (МБ):" > щёлкаем "Задать" и "OK"; "OK"; "OK"
Перезагружаемся.
Выход из полноэкранного режмиа осуществляется нажатием клавиш Shift_l + F12 или Shift_Ctrl + F12.
Выходим из спящего режима щелчком правой кнопкой мышки по экрану 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, внимательно ознакомьтесь с:
"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
нажимаем Enter.
Выбираем язык.
Перед установкой "macOS" заходим в терминал.
Форматируем образ диска «macOS.img», чтобы он соответствовал типу Apple.
Определяем наш виртуальный, жёсткий диск и разбиваем его, на разделы:
diskutil list
diskutil partitionDisk /dev/disk2 GPT HFS+J New 0b
Закрываем терминал и выбираем опцию «Установка 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 на другую машину становится всё меньше и меньше.
Рекомендуется: "Прежде чем устанавливать какое-либо обновление, создать резервную копию данных виртуальной машины".
В качестве загрузочного диска для установки операционной системы на компьютер 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
Проект с открытым исходным кодом, лицензированный под 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.
Поддерживает несколько подкоманд: create, commit, convert, info и т.д.
Возможные форматы:
VMware - vmdk, KVM, Xen - qcow2, Hyper-V - vpc, Hyper-V - vhdx, RAW - raw, VirtualBox - vdi и т.д.
Для конвертации используем опцию 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
Командой 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
Устр-во
~/Qemu/Android.img1
Загрузочный
начало
63
Конец
16771859
Секторы
16771797
Размер
8G
Идентификатор
83
Тип
Linux
Монтируем необходимый раздел:
root # mount -o offset=$((63*512)) ~/Qemu/Android.img /media/ # 63 начало монтируемого раздела
Проверяем:
root # ls /media/
android-8.1-r1 grub lost+found
Огромное спасибо за SPICE - попробую на досуге. Твой сайт помогает быть в курсе новинок. Спасибо!
Николай: И Вам спасибо.
Николай: Люди тратили уйму своего времени и труда, чтобы создать этот софт и дарят его Вам. Найдите, пожалуйста, немного времени, чтобы прочитать документацию и научиться это использовать!
Николай: Не понравился сайт, хотите научить меня администрировать? Пожалуйста, с удовольствием буду учиться. Отзывы в Вашем распоряжении!