CDEmu и все-все-все: различия между версиями

Материал из ALT Linux Wiki
(Добавление возможных методов монтирования образов)
(Обновления статуса пакета mate-file-manager-actions для 9-й платформы)
 
(не показаны 4 промежуточные версии этого же участника)
Строка 59: Строка 59:
Проверяем работоспособность.
Проверяем работоспособность.


== "А можно без всего этого?" ==
== Обходные пути ==


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


=== XFCE ===
=== XFCE ===
Строка 69: Строка 69:


<code>
<code>
apt-get install fuseiso
cd Загрузки
cd Загрузки


Строка 80: Строка 82:


=== MATE ===
=== MATE ===
====Для 8-й и 9-й платформы====
0. Устанавливаем пакет mate-file-manager-actions
<source lang=shell>apt-get install mate-file-manager-actions
</source>
1. Создаём каталог для наших команд:
<source lang=shell>mkdir -p ~/.local/share/caja/actions
</source>
2. Создаём desktop-файл нашего пункта меню:
<source lang=shell>nano ~/.local/share/caja/actions/Mount_Image.desktop
</source>
3. Вставляем содержимое
 
<source lang=shell>[Desktop Entry]
Type=Action
Tooltip=Mount Image
Name=Mount Disk Image
Name[ru]=Примонтировать образ диска
Profiles=profile-zero;
Icon=application-x-cd-image
[X-Action-Profile profile-zero]
MimeTypes=all/all;
Exec=gksu "mount -o loop %f" /media/iso # каталог "iso" должен быть предварительно создан
Name=Mount Image
Name[ru]=Примонтировать образ диска
</source>
4. Выходим из файлового менеджера и снова входим. В контекстном меню должна появиться строка "Caja-Actions actions", а в ней - наш пункт меню.
==== Альтернативный вариант ====
В случае отсутствия <ref>https://bugzilla.altlinux.org/show_bug.cgi?id=37221  Сборка пакета для 9-й платформы. Статус: Исправлено. </ref> вышеуказанного пакета можно обойтись [https://drive.google.com/open?id=0B0ztncE54F5Edi0tTFIyT0NaRDQ bash-скриптом], который нужно положить по пути ~/.config/caja/scripts
0. Создаём файл по указанному адресу
1. Открываем любым текстовым блокнотом


'''''W.I.P.'''''
2. Вставляем следующее содержимое:
<source lang=shell>
#!/bin/bash
#script via TheeMahn
gksu umount /media/ISO
for I in `echo $*`
do
  foo=`gkgksu -u root -k -m "enter your password for root terminal
access" /bin/echo "got r00t?"`
gksu mkdir /media/ISO
gksu "mount -o loop -t iso9660 $I" /media/ISO
done
</source>
3. Даём права на исполнение через свойства файла или командой в терминале:
 
<source lang=shell>
chmod +x ~/.config/caja/scripts/MountISO
</source>


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


[https://bugzilla.altlinux.org/show_bug.cgi?id=37207 Добавление модуля vhba в список доп. пакетов]
[https://bugzilla.altlinux.org/show_bug.cgi?id=37207 Добавление модуля vhba в список доп. пакетов]
 
== Примечания ==
[[Категория: HOWTO]]
[[Категория: HOWTO]]

Текущая версия от 16:20, 19 сентября 2019

Озадачившись решить проблему с разнообразием способов монтирования образов дисков в Альт Линуксе (советовать простому смертному "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"

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

Обходные пути

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

XFCE

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

KDE

apt-get install fuseiso

cd Загрузки

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

cd fuseisomount

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

MATE

Для 8-й и 9-й платформы

0. Устанавливаем пакет mate-file-manager-actions

apt-get install mate-file-manager-actions

1. Создаём каталог для наших команд:

mkdir -p ~/.local/share/caja/actions

2. Создаём desktop-файл нашего пункта меню:

nano ~/.local/share/caja/actions/Mount_Image.desktop

3. Вставляем содержимое

[Desktop Entry]
Type=Action
Tooltip=Mount Image
Name=Mount Disk Image
Name[ru]=Примонтировать образ диска
Profiles=profile-zero;
Icon=application-x-cd-image

[X-Action-Profile profile-zero]
MimeTypes=all/all;
Exec=gksu "mount -o loop %f" /media/iso # каталог "iso" должен быть предварительно создан
Name=Mount Image
Name[ru]=Примонтировать образ диска

4. Выходим из файлового менеджера и снова входим. В контекстном меню должна появиться строка "Caja-Actions actions", а в ней - наш пункт меню.

Альтернативный вариант

В случае отсутствия [1] вышеуказанного пакета можно обойтись bash-скриптом, который нужно положить по пути ~/.config/caja/scripts

0. Создаём файл по указанному адресу

1. Открываем любым текстовым блокнотом

2. Вставляем следующее содержимое:

#!/bin/bash
#script via TheeMahn
gksu umount /media/ISO
for I in `echo $*`
do
  foo=`gkgksu -u root -k -m "enter your password for root terminal
access" /bin/echo "got r00t?"`
gksu mkdir /media/ISO
gksu "mount -o loop -t iso9660 $I" /media/ISO
done

3. Даём права на исполнение через свойства файла или командой в терминале:

chmod +x ~/.config/caja/scripts/MountISO

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

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

Примечания

  1. https://bugzilla.altlinux.org/show_bug.cgi?id=37221 Сборка пакета для 9-й платформы. Статус: Исправлено.