Добавил.
Вписал qxl
QEMOOCFG=$HOME/.config/qemoo/config qemoo /dev/sda
Проверял мало, надеюсь не отвалится ничего.
Добавил.
Вписал qxl
QEMOOCFG=$HOME/.config/qemoo/config qemoo /dev/sda
Ок. Потом попробую что-нибудь сварганить. Спасибо.
Да, мы выбрали размер в 10 гигов по умолчанию, исходя из того, что большинству Линуксов этого будет достаточно. Для прочих вариантов добавили возможность задать размер через опцию. Только ради Винды увеличивать этот размер вдвое не очень хочется, если честно. Однако, не хорошо получается, что установка Винды через гуй может стать проблемой. Давайте думатьalex_q_2000 писал(а): ↑24 дек 2022, 19:54Однако, если вздумают натягивать винду на глобус, то 10 ГБ это прямо-таки в обрез
qcow2 у вас - динамический.
Мда... дилемма...
Это сегодня... А вообще все - кто где тусят.
Точно И сколько тогда сделаем? 30?
Думаю - 20ГБ пока хватит (минимальные требования для Win-10). На первых парах - это необходимый минимум на сегодня. Для линукса они тоже лишними не будут. Мнение субъективное конечно же.
qcow2 с картинки выше раздулся на 9ГБ.
Загрузка и подключение ничем не отличаются, подключаются одним способом.
Ну вот, опять получил (.alex_q_2000 писал(а): ↑24 дек 2022, 21:40А я кстати спрашивал об этом выше, но betcher скромно умолчал об этом.
...добавлены
Мы все Вас очень любим и уважаем. А бэкенд - ну что бэкенд... Бэкенд в случае чего у Вас новый отрастёт.
...добавлено
ЧекБокс EFI - добавлен, выбор режимов соответственно урезан
Важно: Чем больше накрутим, тем больше будет проблем с конечным пользователем. Пусть поюзают. Этот вопрос, так же как и вопрос с шаблонами предлагаю оставить открытым. Напомню, что увеличение qcow2 в 2 раза фактически перекроет все потребности в ресурсах при элементарном тестировании и установке любых образов.
Было 12, теперь 20.alex_q_2000 писал(а): ↑25 дек 2022, 12:43Напомню, что увеличение qcow2 в 2 раза фактически перекроет все потребности в ресурсах при элементарном тестировании и установке любых образов.
На гитхабе нет версии 0.7, мне удобнее проверить с гитхаба и сразу в контриб.
GitHub: GQemoo-v0.7
Продукт должен быть простым. Пожалейте того, на кого по факту он должен быть рассчитан.
Тут кроме cmdline для кему наверное понадобится еще менять настройки сети машины, не думаю что правильно туда лезть.alex_q_2000 писал(а): ↑26 дек 2022, 12:52p.s. неплохо бы иметь доступ по сети, чтобы файлы закидывать по SFTP, т.е. соединение-мост по умолчанию. Или это гемор?
Мда ))alex_q_2000 писал(а): ↑26 дек 2022, 17:26Вот как тут понять, что случится, если пользователь нажмёт "Cтарт"?
Вот. Можно опробовать живьём; просто распакуйте на РС и запустите gqemoo. Вроде бы учел третий источник загрузки (только загрузка). Можете пощёлкать, чтобы представить, что от чего зависит. Опрос после старта начинается с флешки, дальше загрузочный образ справа если опять нет - ищет указанное в списке установленных образов (qcow2, также можно запустить прямо из списка двойным кликом). Если этот вариант сочтете уместным, значит завтра допилю 0.8.
Код: Выделить всё
[marsik@localhost ~]$ rpm -qi qemoo
Name : qemoo
Version : 0.9
Release : 9
DistTag : rosa2021.1
Architecture: noarch
...
Фишка тут в том что инсталлятор прописывает пункт загрузки в ефи машины. Соответственно если ты установил и перегружаешь виртуалку этот пункт в ефи есть, а если выключить машину и запускать с qcow2, то пункта нет. Для себя обхожу костылем, копируя загрузчики по стандартному для ефи пути /EFI/BOOT/BOOTx64.efi сразу после установки. То есть загрузчик как в лайве нужно сделать. Как сие обходит виртманагер не знаю, видимо сохраняет для каждой машины что-то.
Тоже об этом думал.
Ура! Для подобных случаев в инсталляторе Mageia на последнем шаге есть соответствующая галка:
Конечно так удобнее установленные ОС запускать, но как вы сказали, не сразу понятно что произойдет по кнопке Старт.
Это лишнее, мне кажется. Если интересно вот тут делал год назад запуск с разными приоритетами с zenity.alex_q_2000 писал(а): ↑27 дек 2022, 12:22может быть ещё какой-нибудь nice снаружи присобачить или не в коня корм?
Сделал, но как выяснилось, qemoo не умеет имена с пробелами для своих образов qcow2.
Спасибо, ознакомился.
Летит в контриб.alex_q_2000 писал(а): ↑27 дек 2022, 19:41GQemoo-v1.0
+ DblClick - separate Start of already installed VMs
+ RPM Packages for Mageia-8 (ROSA-2021.1) and Mageia-9
Сейчас проверил через virt-viewer - работаетalex_q_2000 писал(а): ↑29 дек 2022, 17:15Наставил я себе тут виртуалок разных, весь в виртуалках теперь сижу. Пытаюсь настроить Drag&Drop + Clipboard. Пробовал ставить spice-vdagent (в LUbuntu, кстати, он уже стоит), а в Win-7 ставил spice-guest-tools; пока не в коня корм. Может быть какой-нибудь волшебный параметр нужен или пакет?
Похоже, что так.
Код: Выделить всё
qemu-kvm \
-m 2048 -vga qxl \
-device virtio-serial -chardev spicevmc,id=vdagent,debug=1,name=vdagent \
-device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \
-cdrom ./Mageia-8-Live-Xfce-x86_64.iso \
-spice port=3001,disable-ticketing=on \
& remote-viewer spice://localhost:3001
Код: Выделить всё
> systemctl status spice-vdagentd
● spice-vdagentd.service - Agent daemon for Spice guests
Loaded: loaded (/usr/lib/systemd/system/spice-vdagentd.service; indirect; vendor preset: enabled)
Active: active (running) since Fri 2022-12-30 23:43:56 EST; 1min 17s ago
TriggeredBy: ● spice-vdagentd.socket
Process: 2261 ExecStart=/usr/sbin/spice-vdagentd $SPICE_VDAGENTD_EXTRA_ARGS (code=exited, status=0/SUCCESS)
Main PID: 2262 (spice-vdagentd)
Tasks: 2 (limit: 2328)
Memory: 852.0K
CPU: 152ms
CGroup: /system.slice/spice-vdagentd.service
└─2262 /usr/sbin/spice-vdagentd
Dec 30 23:43:56 localhost systemd[1]: Starting Agent daemon for Spice guests...
Dec 30 23:43:56 localhost systemd[1]: spice-vdagentd.service: Can't open PID file /run/spice-vdagentd/spice-vdagentd.pid (yet>
Dec 30 23:43:56 localhost systemd[1]: Started Agent daemon for Spice guests.
Dec 30 23:43:56 localhost spice-vdagentd[2262]: opening vdagent virtio channel
Dec 30 23:43:56 localhost spice-vdagentd[2262]: Set max clipboard: 104857600
Dec 30 23:43:56 localhost spice-vdagentd[2262]: Set max clipboard: 104857600
В Mageia-8/9 воркает:
Работает. Пакета одного не хватало в системе. Правильно понял, что это теперь единственный способ запуска? Только spice имею ввиду.
А почему нет, дорогой betcher? Это же естественно: VM открывается с единственным дисплеем QXL, который работает в SPICE и обеспечивает плюшки. GQemoo - GUI, хост - GUI, окно VM - тоже GUI. Между Хозяином и Гостем работает Clipboard и Drag&Drop. По моему всё логично + как и было заявлено - "без кипячения мозга".
Код: Выделить всё
test -d /home/$(logname)/hostdir || mkdir /home/$(logname)/hostdir && mount -t 9p -o trans=virtio,msize=100000000 hostdir /home/$(logname)/hostdir && chown $(logname) -R /home/$(logname)/hostdir
Код: Выделить всё
mount: /home/live/hostdir: unknown filesystem type '9p'.
Код: Выделить всё
> cat /boot/config-$(uname -r) | grep -i 9p
CONFIG_NET_9P=m
CONFIG_NET_9P_VIRTIO=m
CONFIG_NET_9P_XEN=m
CONFIG_NET_9P_RDMA=m
# CONFIG_NET_9P_DEBUG is not set
# CONFIG_VIDEO_MT9P031 is not set
CONFIG_9P_FS=m
CONFIG_9P_FSCACHE=y
CONFIG_9P_FS_POSIX_ACL=y
# CONFIG_9P_FS_SECURITY is not set
> lsmod | grep 9p
9pnet_virtio 20480 0
9pnet 90112 1 9pnet_virtio
virtio_ring 36864 3 virtio_console,9pnet_virtio,virtio_pci
virtio 16384 3 virtio_console,9pnet_virtio,virtio_pci
Код: Выделить всё
> cat /boot/config-$(uname -r) | grep -i 9p
# CONFIG_NET_9P is not set
CONFIG_VIDEO_MT9P031=m
> modprobe 9pnet
modprobe: FATAL: Module 9pnet not found in directory /lib/modules/5.15.75-generic-1rosa2021.1-x86_64
> modprobe 9pnet_virtio
modprobe: FATAL: Module 9pnet_virtio not found in directory /lib/modules/5.15.75-generic-1rosa2021.1-x86_64
> lsmod | grep 9p
alex_q_2000 писал(а): ↑06 янв 2023, 11:59В ROSA ядро собирается без поддержки файловой системы '9p'.
Если mkdir с ключом -p наличие папки можно не проверять. Chown точно нужен? Права на хосте не меняются при этом?alex_q_2000 писал(а): ↑05 янв 2023, 23:05test -d /home/$(logname)/hostdir || mkdir /home/$(logname)/hostdir && mount -t 9p -o trans=virtio,msize=100000000 hostdir /home/$(logname)/hostdir && chown $(logname) -R /home/$(logname)/hostdir
В момент копипаста пользователь может быть в терминале под su -. Лучше проверять и работать именно с каталогом ~/hostdir, не затрагивая родителя (а родитель - хомяк). Считаю, что mkdir -p небезопасен.
Chown нужен. Опять же, чтобы не смотреть, с какими правами пользователь, предлагаю вот такой, работающий вариант, который просто вставляется в терминал под юзером или под рутом не важно. Скрипт монтирует пользовательский ~/hostdir и пишет автомонтирование в /etc/fstab. Повторный запуск скрипта - демонтирует hostdir и удаляет строку из /etc/fstab. Таким образом ~/hostdir не пропадёт и после перезагрузки:
Код: Выделить всё
pkexec bash -c 'clear; if [[ $(grep hostdir /etc/fstab) ]]; then umount -l hostdir; sed -i '/^hostdir/d' /etc/fstab; echo "/home/$(logname)/hostdir unmounted"; else test -d /home/$(logname)/hostdir || mkdir /home/$(logname)/hostdir && mount -t 9p -o trans=virtio,msize=100000000 hostdir /home/$(logname)/hostdir && chown $(logname) -R /home/$(logname)/hostdir && echo "hostdir /home/$(logname)/hostdir 9p trans=virtio,version=9p2000.L 0 0" >> /etc/fstab && echo "/home/$(logname)/hostdir mounted as hostdir"; fi'
Код: Выделить всё
pkexec bash -c 'clear; if [[ -f /etc/systemd/system/hostdir.service ]]; then umount -l hostdir; systemctl disable hostdir; rm -f /etc/systemd/system/hostdir.service; else test -d /home/$(logname)/hostdir || mkdir /home/$(logname)/hostdir && echo -e "[Unit]\nDescription=GQemoo shared directory ~/hostdir\n\n[Service]\nType=oneshot\nExecStart=mount -t 9p -o trans=virtio,msize=100000000 hostdir /home/$(logname)/hostdir\n\n[Install]\nWantedBy=multi-user.target" > /etc/systemd/system/hostdir.service; systemctl daemon-reload && systemctl start hostdir && systemctl enable hostdir; chown $(logname) -R /home/$(logname)/hostdir; fi'
Код: Выделить всё
[Unit]
Description=GQemoo shared directory ~/hostdir
[Service]
Type=oneshot
ExecStart=mount -t 9p -o trans=virtio,msize=100000000 hostdir /home/marsik/hostdir
[Install]
WantedBy=multi-user.target
Это потрясающе!
На скриншоте /dev/sda не имеет флага removable (третий столбец RM = 0), т.е. физической флешкой не является. Поэтому /dev/sda отсутствует в списке флешек, которые можно подержать в руках.
/dev/sdb имеет размер "0B" и является removable (RM = 1). У меня так же отображается картридер (см. любой скриншот выше). Если "0B" устройства в списке не нужны - можно исключить, хотя криминала тут вроде бы нет. А вдруг кто-то захочет подключить виртуальную usb-дырку к своей виртуальной машине. Ну а при засовывании флешки в эту дырку, флешка автоматом прокидывается внутрь гостевой системы (в теории). Другое дело, что с картридером (0B) VM не грузится, но это к gui вроде бы не относится. Исключить?
alex_q_2000 писал(а): ↑09 янв 2023, 13:58На скриншоте /dev/sda не имеет флага removable (третий столбец RM = 0), т.е. физической флешкой не является. Поэтому /dev/sda отсутствует в списке флешек, которые можно подержать в руках.
Если так же отображается картовод, то пусть будет тогда.
Например:
Код: Выделить всё
> lsblk -ldnp -I 8,11,65,66,259 -o NAME,MAJ:MIN,RM,SIZE,TYPE,MODEL
Код: Выделить всё
lsblk -ldnp -I 8 | awk '$3 == "1" && $4 != "0B" {print $1, $4}'
А почему один removable а другой - нет? Вероятно - это признак/свойство, прописанное на уровне железа, а значит - не является определяющим для токенов. Ну или один из токенов - кривой. Мне бы столбец заполучить или готовое условие для фильтрации.
Видимо так. Забей ).
А я вот заметил приятную плюшку. В новых Mageia-9 (Гость) дисплей масштабируется автоматически. Целых 5 минут не мог оторваться от растягивания попугая, он как резиновый: Просмотреть/Скачать анимированный GIF (11MB)...
Прикольно, интересно как сделано?
Следуя этому: No Auto Resize with SPICE and virt-manager выяснилось, что масштабирование при изменении размеров окна VM устанавливается всего одной стройкой в терминале от юзера:
Код: Выделить всё
xrandr --output $(xrandr | awk '/ connected/{print $1; exit; }') --auto
Код: Выделить всё
ACTION=="change", KERNEL=="card0", SUBSYSTEM=="drm", RUN+="/bin/x-resize"
Код: Выделить всё
export DISPLAY=:0 #Может отличаться
xauth merge /home/$(logname)/.Xauthority
xrandr --output $(xrandr | awk '/ connected/{print $1; exit; }') --auto
Код: Выделить всё
echo 'ACTION=="change", KERNEL=="card0", SUBSYSTEM=="drm", RUN+="/bin/x-resize"' > /etc/udev/rules.d/50-x-resize.rules; echo -e "#! /bin/bash\n\nexport DISPLAY=$DISPLAY\nxauth merge /home/\$(logname)/.Xauthority\nxrandr --output \$(xrandr | awk '/ connected/{print \$1; exit; }') --auto" > /bin/x-resize && chmod +x /bin/x-resize; udevadm control --reload-rules; udevadm trigger
Код: Выделить всё
xrandr --output $(xrandr | awk '/ connected/{print $1; exit; }') --auto
Код: Выделить всё
pkexec bash -c 'if [ -f /bin/xresize ]; then killall xresize; rm -f /bin/xresize /etc/xdg/autostart/xresize.desktop; exit; fi; echo -e "#! /bin/bash\n\nwhile true\ndo\nxrandr --output \$(xrandr | grep \" connected\" | cut -f1 -d\" \") --auto\nsleep 2\ndone" > /bin/xresize; chmod +x /bin/xresize; echo -e "[Desktop Entry]\nName=XResize\nExec=xresize &\nType=Application\nTerminal=false" > /etc/xdg/autostart/xresize.desktop' && [ -f /bin/xresize ] && nohup xresize &
Может уже пора завести отдельную папочку со скриптами и пробрасывать аналогично hostdir? Мало ли чего еще насочиняешь )alex_q_2000 писал(а): ↑11 янв 2023, 11:53...после тестов будет добавлен в GQemoo-v1.5 для вставки через Clipboard, как и предыдущий скрипт для монтирования ~/hostdir.
Ок. Как выяснилось, для Росы всё не так радужно, как хотелось бы...
Сегодня тоже подобным образом извращалсяalex_q_2000 писал(а): ↑04 янв 2023, 11:13Внутри виртуалки ROSA-XFCE_2021.3 на VirtualBox запущен GQemoo и установка Mageia-i568
Проблема известная, багу даже заводили, не знаю только чем закончилось, пофиксили или нет.alex_q_2000 писал(а): ↑12 янв 2023, 12:42ROSA-12.3-Plasma/XFCE - С растягиванием экрана VM неправильно устанавливаются координаты курсора относительно объектов.
Мне кажется ориентироваться только на флаг Removable не стоит. У меня есть внешний SSD и HDD, у обоих нет этого флага.alex_q_2000 писал(а): ↑09 янв 2023, 17:09А почему один removable а другой - нет? Вероятно - это признак/свойство, прописанное на уровне железа, а значит - не является определяющим для токенов. Ну или один из токенов - кривой. Мне бы столбец заполучить или готовое условие для фильтрации
GQemoo-v1.6
Видимо нет. Интересно было бы почитать, только вот что искать не знаю.
Это Александр хотел вместо флешки - токен в usb запихать. Ведь все говорили: "Не суй. Не надо". А он всё равно взял и воткнул.
Не успеваю за вами ). Ни один пакет в репах Росы так часто не обновляется наверное.
Была мысль рядом с .qcow2 образом создавать одноименный .cfg и при наличии такого файла использовать в качестве конфига qemoo его, а не конфиг из /etc. Может сделаю еще. Сейчас пока думаю как добить идею с системд юнитами. Надо параметры как-то передавать.
Стесняюсь спросить, а куда их пихать? Ржевский молчать!!! А вообще загрузка ОС с токена это мои будни. И Ильфата, кстати,тоже )).alex_q_2000 писал(а): ↑14 янв 2023, 18:08Это Александр хотел вместо флешки - токен в usb запихать. Ведь все говорили: "Не суй. Не надо"
Да, думаю пора завязывать. Шаролупие до добра не доводит.
Кажется мне, что тут как повезет. Остановленную клонировать надежнее.alex_q_2000 писал(а): ↑15 янв 2023, 14:02Пробовал клонировать запущенный образ с внесёнными изменениями и он их успешно сохранил.
Код: Выделить всё
ACTION=run
RAM="auto"
ADD=""
EFI="-bios /usr/share/OVMF/OVMF_CODE.fd"
PORT=""
REDIRUSB=""
LOSETUP=""
SPICE=""
SHARE="/home/betcher/Programming/ISO"
QEMOOADD=""
GQemoo-v1.9
Тут всё очевидно:
Этот не надо использовать. Он чисто для внутренних нужд, когда идет перезапуск с root, чтобы не сменился конфиг.
Порта нет если нет ключа -d. Сейчас проверил консольно с тем же qcow2 - норм.
Ок. Пока закоммитил v2.0. Опция похоже не критичная, ибо c --config тоже работает. Просто у Ильфата прошлый раз sdl не перекрывался, а --qemoocfg вроде как всё это добро перекрыло. У меня всего то три параметра перекрываются при запуске/установке(+имя_образа) в ~/.gqemoo/qemoo.cfg
Код: Выделить всё
QEMUADD="-vga qxl -smp 2"
SIZE='20'
QCOW2='имя_образа_для_установки.qcow2'
Рассчитан, загружает и с EFI и без.alex_q_2000 писал(а): ↑19 янв 2023, 10:23Но я не знаю, раcсчитан ли qemoo в принципе на загрузку образов из VB
Mageia и ROSA vdi+efi прекрасно устанавливаются/работают в VirtualBox. Но по причине, которую мы обсуждали 27 декабря (про костыли и загрузчики), не работает в qemu. Fedora может и работает, не проверял. Или всё-таки есть какая-нибудь волшебная опция для qemu+efi?
Не должно быть такого. Что вы писали в конфиг? Надоalex_q_2000 писал(а): ↑20 янв 2023, 09:37--config не перекрывает EFI_FIRMWARE, --qemoocfg перекрывает. Откатываюсь к --qemoocfg.
Вот дефолтный /etc/qemoo.cfg: https://abf.io/import/qemoo/blob/rosa2023.1/qemoo.cfg
Код: Выделить всё
# efi firmware emulator for current architicture
#EFI_FIRMWARE='-bios /usr/share/OVMF/OVMF_CODE.fd'
Ок. В общем я не нашёл способа заставить qemu работать с EFI так же хорошо, как VB. Может быть убрать "Режим EFI", чтобы не вводить пользователя в заблуждение? А то он просидит минут 40 в процессе efi-установки, а загрузить VM не сможет и будет ругаться матом.
Федора работает, потому что при установке в виртуалку она прописывает загрузчик как в директорию /EFI/fedora так и в /EFI/BOOT.
В VirtualBox, VM с названием rosa-efi представлена каталогом, в котором есть файлы:
Код: Выделить всё
rosa-efi.nvram rosa-efi.vbox rosa-efi.vbox-prev rosa-efi.vdi
Костыль?
Да, оно и есть. В cmdline Вирт-Менеджера такое же примерно.
Значит для EFI необязательно делать костыль в самОм дистрибутиве, о котором выше написал Александр (про следующий релиз)?
Нет. ~/qemoo_tmp задаётся один раз и постоянна всегда для всех VM. Рабочая директория qemoo задаётся по факту запуска GUI без переназначения и без возможности изменить - SetCurrentDir(GetUserDir + 'qemoo_tmp'). Изменение рабочей директории из гуя повлечет за собой изменение скрипта авто-монтирования шАры ~/qemoo_tmp <> ~/hostdir в гостевой системе.
Можно добавить модель, но это растянет список флешек на половину формы.
Этот костыль в основном для сменных устройств, плюс помогает с кривыми EFI как у MSI.
Установка и запуск VM с EFI+NVRAM в qemoo без костылей
Код: Выделить всё
cp -f /usr/share/OVMF/OVMF_VARS.fd ~/qemoo_tmp/имя_машины.nvram
Код: Выделить всё
EFI_FIRMWARE='-bios /usr/share/OVMF/OVMF_CODE.fd'
Код: Выделить всё
EFI_FIRMWARE='\
-drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=~/qemoo_tmp/имя_машины.nvram'