Сайт | Скачать | Видео | Wiki

Автор Тема: Qemoo, скрипт для упрощеного запуска Qemu от betcher.  (Прочитано 2159 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 941
  • Репутация: +24/-0
  • Автор темы
Qemoo - универсальный скрипт для запуска виртуальных машин в Qemu,его написал betcher. Этот скрипт объединяет опыт множества других скриптов, предоставляя разнообразные опции для запуска виртуальных машин.
 Вы можете скачать его здесь --  https://abf.io/import/qemoo/blob/rosa2023.1/qemoo

 и получить справку тут-- https://abf.io/import/qemoo/blob/rosa2023.1/%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0.%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B0.qemoo

Почему выбор пал на Qemu вместо Virtualbox или Vmware?
Virtualbox и Vmware работают через специальные компоненты в ядре, что обеспечивает хорошую скорость работы. Но при обновлении ядра, эти компоненты нужно перекомпилировать, что может вызвать неудобства.
Qemu же более гибок, но менее прямо связан с ядром, и по этому при обновлении ядра с использованием Qemu нет необходимости в обновлении дополнительных компонентов.
Итак скрипт скачан , сохранили его с именем qemoo и дали ему права на исполнение, и путь до него например ~/qemoo.sh, а также у нас в ~/ISO находится iso образ с дистрибутивом my_linux.iso , запустить его в Qemu можно с помощью скрипта Qemoo командой:
Код
 ~/qemoo.sh ~/ISO/ my_linux.iso

Также можно запустить дистрибутив с флэшки
Код
 ~/qemoo.sh  /dev/sdb

из ниже сказаного betcher чтоб запустить iso c qemoo подключив к нему флэшку достаточно ввести команду
Код
 ~/qemoo.sh ~/ISO/ my_linux.iso -a /dev/sdb 
подключившись флэшка у меня отобразилась почему то как sda

также используя конфиг файл в /etc/qemoo.cfg можно расшарить папку ~/home
для этого нужно раскоментировать последнюю строку
SHARE=/home
а  потом загрузившись в гостевую систему в терминале гостевой ввести последовательно
эти кооманды
Код
mkdir /mnt/hostdir
потом
Код
mount -t 9p -o trans=virtio,msize=100000000 hostdir /mnt/hostdir
если у вас гостевая система под пользователем, команды следует вводить от имени sudo
после этого вам станет доступным расшареный каталог основной системы /home

для создания виртуалного образа жесткого диска qcow2 необходимо скрипт запустить с опцией -i
Код
 ~/qemoo.sh -i ~/ISO/my_linux.iso
образ в данном случае будет создан в каталоге откуда запущен скрипт потому удобнее как мне кажется скрипт запускать из каталога ~/ISO чтоб iso и qcow2 находились в одном каталоге.

для запуска образа виртуального жесткого дика qcow2 следует ввести команду
Код
 ~/qemoo.sh ~/_qemoo_my_.qcow2
вот основные самые востребованые сценарии использования скрипта qemoo.
Большое и сердечное спасибо betcher за скрипт ,и за разъяснения как с ним работать!
« Последнее редактирование: 26 Октябрь 2023, 14:29:01 от totiks2012 »

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3021
  • Репутация: +35/-0
    • MagOS linux
Re: Qemoo, скрипт для упрощеного запуска Qemu от betcher.
« Ответ #1 : 26 Октябрь 2023, 10:30:09 »
Наиболее полезные ключи:
-e    - EFI вместо биоса, требует дополнительные компоненты для qemu, в росе в пакете зависимость прописана
-a   - добаваить устройство. Например qemoo my.iso -a /dev/sda  и можно в qemu установить с ISO на /sda. Если на sda тоже есть загрузчик, загрузка может пойти с него, все как на железе ). По этому лучше форматнуть перед тем как подключать.
-S   - не запускать qemu а только сгенерировать cmdline
-d   - запустить демоном, в консоль будет написан номер порта для подключения по SPICE (remmina, virt-viewer)
-i    - запустить в режиме установки. Создаст образ и конфиг к нему и подключит.

Кроме скрипта нужен конфиг:

cat /etc/qemoo.cfg
# Setup parameters for qemoo

# additional parameters for qemu
#QEMUADD="-vga qxl -smp 2"

# what to do (run or install, default:  run)
#ACTION='run'

# name for qcow2 image to install (default: auto)
#QCOW2='my_machine.qcow2'

# size (Gb) for qcow2 image to install (default: 20)
#SIZE='10'

# size of ram (Mb) for guest machine (default: RAM / 2, but not greater than 4272)
RAM='6000'

# efi firmware emulator for current architicture
#EFI_FIRMWARE='-bios /usr/share/OVMF/OVMF_CODE.fd'

# host dir to share
#SHARE=/home
-
Это базовый конфиг, приоритет над ним имеет qemoo.cfg в текущей папке или имя_образа.conf  в папке с образом.


P.S.
При эмуляции линухов в qemu пробрасывется папка, по умолчанию - текущаяя. Ее можно смонтировать внутри виртуалки, как это сделать qemoo напишет а консоль.
При наличии сетевого интерфейса libvirt (virbr0) виртуалки подключаются к этому мосту  и будут в одной подсети, при отсутствии - NAT.
« Последнее редактирование: 26 Октябрь 2023, 10:34:22 от betcher »

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 941
  • Репутация: +24/-0
  • Автор темы
Re: Qemoo, скрипт для упрощеного запуска Qemu от betcher.
« Ответ #2 : 26 Октябрь 2023, 11:56:09 »
как это сделать qemoo напишет а консоль
вот тут мне непонятно то ли командой  sudo mkdir /mnt/home должен предварительно создать каталог mnt/home а потом предварительно смонтировать его  командой sudo mount -t 9p -o trans=virtio,msize=100000000 hostdir /mnt/home на это терминал ругнулся mount: /mnt/home: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program. подскажите пожалуйста как правильно всё сделать чтоб расшарить каталог /home


« Последнее редактирование: 26 Октябрь 2023, 11:58:31 от totiks2012 »

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3021
  • Репутация: +35/-0
    • MagOS linux
Re: Qemoo, скрипт для упрощеного запуска Qemu от betcher.
« Ответ #3 : 26 Октябрь 2023, 12:20:14 »
rosa-de8cf BARIUM-PREZ # qemoo OS.qcow2
Using: /etc/qemoo.cfg
Virtual machine image: /home/betcher/BARIUM-PREZ/OS.qcow2
Host share:
   /home/betcher/BARIUM-PREZ
Linux guest mount command example:
   mkdir /mnt/hostdir
   mount -t 9p -o trans=virtio,msize=100000000 hostdir /mnt/hostdir

Здесь
Host share это папка с хоста которая будет проброшена в гостевую машину
А команды надо выполнить под рутом в линукс госте.

Для того, чтобы это работало ядро гостевой машины должно быть собрано с поддержкой 9p.

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 941
  • Репутация: +24/-0
  • Автор темы
Re: Qemoo, скрипт для упрощеного запуска Qemu от betcher.
« Ответ #4 : 26 Октябрь 2023, 12:32:04 »
 :) А вот теперь все смонтирвалось в штатном порядке. Я так-то для расшаривания пользовался средсвами ssh из mc пробрасывал тунель в основную систему, а тут прям расшаривание в полном смысле  , прям круто, мне понравилось, прошу простить за повтор но  добавлю об этом в топике чтоб было доступно.
« Последнее редактирование: 26 Октябрь 2023, 13:04:44 от totiks2012 »

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 941
  • Репутация: +24/-0
  • Автор темы
Re: Qemoo, скрипт для упрощеного запуска Qemu от betcher.
« Ответ #5 : 26 Октябрь 2023, 14:57:50 »
Для всех новоприбывших , все инструкции в топике темы.
« Последнее редактирование: 26 Октябрь 2023, 20:27:30 от totiks2012 »

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3021
  • Репутация: +35/-0
    • MagOS linux
Re: Qemoo, скрипт для упрощеного запуска Qemu от betcher.
« Ответ #6 : 26 Октябрь 2023, 15:02:46 »
образ в данном случае будет создан в каталоге откуда запущен скрипт потому удобнее как мне кажется скрипт запускать из каталога ~/ISO чтоб iso и qcow2 находились в одном каталоге.
Скрипт лучше кинуть в /usr/bin/  и без ".sh"

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5395
  • Репутация: +143/-1
Re: Qemoo, скрипт для упрощеного запуска Qemu от betcher.
« Ответ #7 : 31 Октябрь 2023, 23:56:28 »
Забавно, оказывается в арче нет дефолтно команды arch. Проверял даже на установочном официальном iso. Только если uname -m.
Код
./Qemoo: строка 242: arch: команда не найдена
./Qemoo: строка 244: command: qemu-system-: не найден

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1611
  • Репутация: +27/-1
uname -m наверное более универсален
1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5395
  • Репутация: +143/-1
Еще нюанс. Т.к. у меня не pulseaudio, а pipewire, то командная строка получается без звуковой. И соответственно звука нет в виртуалке. Если отредактировать Qemoo, то ок.
Цитата
$ ./Qemoo /mnt/sda3/iso/prar2210-23.05-x86_64.iso -S
ISO: /mnt/sda3/iso/prar2210-23.05-x86_64.iso
Qemu cmdline:
qemu-system-x86_64 -cpu max -vga qxl -smp 2 -machine q35,accel=kvm:tcg -name "prar2210-23.05-x86_64.iso" -netdev user,id=net0 -device virtio-net-pci,netdev=net0,mac=0a:f0:ee:ae:19:8e -m 2003M -rtc base=localtime -virtfs local,path=/mnt/sda3/Qemu,mount_tag=hostdir,security_model=mapped,id=hostdir -boot d -drive file="/mnt/sda3/iso/prar2210-23.05-x86_64.iso",format=raw,cache=none,media=cdrom


$ ./Qemoo /mnt/sda3/iso/prar2210-23.05-x86_64.iso -S
ISO: /mnt/sda3/iso/prar2210-23.05-x86_64.iso
Qemu cmdline:
qemu-system-x86_64 -device ich9-intel-hda -device hda-duplex,audiodev=audio0 -audiodev pa,id=audio0 -cpu max -vga qxl -smp 2 -machine q35,accel=kvm:tcg -name "prar2210-23.05-x86_64.iso" -netdev user,id=net0 -device virtio-net-pci,netdev=net0,mac=0a:f0:ee:ae:19:8e -m 2003M -rtc base=localtime -virtfs local,path=/mnt/sda3/Qemu,mount_tag=hostdir,security_model=mapped,id=hostdir -boot d -drive file="/mnt/sda3/iso/prar2210-23.05-x86_64.iso",format=raw,cache=none,media=cdrom

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3021
  • Репутация: +35/-0
    • MagOS linux
Забавно, оказывается в арче нет дефолтно команды arch.
Если опакетить под арч можно добавить как зависимость.

Если отредактировать Qemoo, то ок.
Надо будет этот вопрос продумать.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5395
  • Репутация: +143/-1
добавить как зависимость
:)

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2619
  • Репутация: +33/-0
uname -m наверное более универсален
в MTt-i686-amd64-archive_1.0.tar.xz по итогу (после поисков # но сейчас не помню почему именно) заюзал $(uname -m).
Правда выборку-на-'i*86' решил не делалть - #мне пока и так хватает [ i686-vs-x86_64 ].
« Последнее редактирование: 01 Ноябрь 2023, 17:49:06 от knn »
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.