CDEmu и все-все-все

Материал из ALT Linux Wiki
Версия от 14:32, 15 сентября 2019; Arbars Zagadkin (обсуждение | вклад) (Добавление возможных методов монтирования образов)

Озадачившись решить проблему с разнообразием способов монтирования образов дисков в Альт Линуксе (советовать простому смертному "mount -o loop" - не самый лучший вариант), первым делом решил глянуть на CDEmu и его оболочки, благо, для раб. столов на базе GTK она есть в репозиториях (для QT имеется тоже, правда, НЕ в репозиториях).

Установив нужные пакеты (cdemu-client, cdemu-daemon, gcdemu), я перезагружаюсь, и после входа, выбрав образ, жму по нему правой кнопкой мыши и выбираю пункт "Открыть с помощью => Клиент CDEmu". И... Ничего. То есть совсем ничего. Попробовав ещё пару раз, я полез в консоль, и попробовал примонтировать образ через cdemu оттуда. Ответ был получен незамедлительно:

ОШИБКА: Не удалось подключиться к демону CDEmu: g-dbus-error-quark: Error calling StartServiceByName for net.sf.cdemu.CDEmuDaemon: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process net.sf.cdemu.CDEmuDaemon exited with status 255 (25)

Сам демон выдал следующее:

> Запуск демона CDEmu со следующими параметрами:
> - количество накопителей: 4
> - управление накопителем: /dev/vhba_ctl
> - аудиодрайвер: null
> - тип шины: session
>
> cdemu0: Kernel I/O: failed to open control device /dev/vhba_ctl: Нет такого файла или каталога!
> cdemu: Daemon: failed to start device #0!
> cdemu: Daemon: failed to create device!
> Не удалось инициализировать и запустить демон!

Интересное кино - демон не может найти нужное устройство - виртуальный привод, то есть программе чего-то не хватает, а именно виртуального блочного устройства /dev/vhba_ctl. Причём во время установки система молчала, программа молчала, а недовольство высказала лишь после того, как установилась...

Ладно, мы народ не гордый, лезем в Интернет... Решение нашлось довольно быстро - не установлен модуль ядра vhba. Итак, начинаем решать задачу.

Алгоритм действий

0. Обновляем систему до актуального состояния, включая ядро (это очень важно, почему - поймёте позже).

apt-get update && apt-get dist-upgrade && update-kernel -yy

1. Устанавливаем пакет с модулем (ВНИМАНИЕ! Если модуль собран для самой последней версии ядра, он потянет и его - не пугаемся и соглашаемся на установку новой версии ядра).

apt-get install kernel-modules-vhba-std-def

2. Устанавливаем модули ядра видеокарты для новой версии ядра - если установилось последнее ядро, ставим для него, смотря на версию пакета.

NVIDIA

apt-get install kernel-modules-nvidia-std-def#<версия_драйвера>-<версия пакета>

AMD

kernel-modules-drm-radeon-std-def#<версия_драйвера>-<версия пакета>

3. Перезагружаемся.

Если не обновить ядро заранее, может так статься, что рабочий стол вы не увидите - ядро будет новое, а модули для видеокарты - старые.

4. Запускаем модуль ядра от рута:

modprobe vhba

5. Прописываем модуль в автозапуск (от рута)

sh -c "echo 'vhba' >> /etc/modules"

Проверяем работоспособность.

"А можно без всего этого?"

Да, можно. Для основных сред рабочего стола имеются скрипты и рецепты упрощения работы с образами, правда, придётся поколдовать в терминале :)

XFCE

Пользователь Коля Щетинин предложил следующий метод

KDE

cd Загрузки

git clone https://github.com/Arbars/-FuseISOMenu-.git fuseisomount

cd fuseisomount

cp fuseisomenu.* ~/.local/share/kservices5/ServiceMenus/

MATE

W.I.P.

Доп. материалы

Добавление модуля vhba в список доп. пакетов