在 Linux/KDE 中挂载 ISO

在 Linux/KDE 中挂载 ISO

是否有用于安装 ISO 映像的图形实用程序(最好与 Dolphin 集成)?

答案1

解决您的问题的最佳答案是在 Dolphin 中添加用于安装/卸载的上下文菜单,或在 KDE 中称为服务菜单。

为此,您需要:

  1. 创建将安装 ISO 的文件夹。 (对于这个例子,我将使用/mnt/iso)
  2. 导航/usr/share/kde4/services/ServiceMenus
  3. 创建一个带有扩展名的新文件.desktop(我使用的是 iso.desktop)
  4. 添加以下行:

    [Desktop Entry]
    Type=Service
    ServiceTypes=KonqPopupMenu/Plugin
    MimeType=application/octet-stream;
    Actions=mountISO;umountISO;
    
    [Desktop Action mountISO]
    Name=Mount
    Icon=utilities-terminal
    Exec=kdesu 'sudo mount -o loop,ro -t iso9660 "%f" /mnt/iso/'
    
    [Desktop Action umountISO]
    Name=Unmount
    Icon=utilities-terminal
    Exec=kdesu 'sudo umount "%f"'
    
  5. 如果您的系统上可用 kdesudo 而不是 kdesu,则添加以下行:

    [Desktop Entry]
    Type=Service
    ServiceTypes=KonqPopupMenu/Plugin
    MimeType=application/octet-stream;
    Actions=mountISO;umountISO;
    
    [Desktop Action mountISO]
    Name=Mount
    Icon=utilities-terminal
    Exec=kdesudo 'mount -o loop,ro -t iso9660 "%f" /mnt/iso/'
    
    [Desktop Action umountISO]
    Name=Unmount
    Icon=utilities-terminal
    Exec=kdesudo 'umount "%f"'
    

观察结果:

  • 安装到 /media/iso 而不是 /mnt/iso 将导致安装的 iso 在 Dolphin 位置方便地显示为只读驱动器。
  • 在该ServiceMenus目录中,您可以找到有关如何格式化文件的其他示例。
  • 语法很漂亮,所以我不会描述它(如果您有疑问,请评论)。
  • 此方法一次仅适用于一个 ISO,因为它们都安装在同一目录中,而且我还找不到解决此问题的方法。
  • 每次安装/卸载时都会提示您输入密码
  • 最后它应该看起来像这样: 问题解决了!

这里是一个可以完成上述所有操作的应用程序。

答案2

简单的服务菜单基于KDE 服务挂载ISO镜像(更多细节这里):

 kate ~/bin/iso_manager-mount-image.sh 

包含以下内容(将其粘贴到此处以避免安装 KDE 服务或上传脚本的需要):

#!/bin/bash

#################################################################
# For KDE-Services. 2012-2017.                  #
# By Geovani Barzaga Rodriguez <[email protected]>      #
# Improved by Victor Guardiola (vguardiola) Jan 5 2014      #
#   -Fixed the problem of [dir|file]name with whitespaces.  #
#################################################################

PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/$USER/bin
MOUNTEXIT=""

##############################
############ Main ############
##############################

cd "${1%/*}"

if [ "$1" == "${1%.*}.iso" ]; then
   fuseiso -p "$1" "${1%.iso}"
   MOUNTEXIT=$?
else
   rename .ISO .iso *
   kdialog --icon=ks-error --title="Mount ISO-9660 Image" \
                   --passivepopup="[Error] Can't mount ${1##*/}: Renamed extension of ISO image, because contain uppercase characters. Please try again."
   exit 1
fi

if [ "$MOUNTEXIT" = "0" ]; then
   kdialog --icon=ks-media-optical-mount --title="Mount ISO-9660 Image" --passivepopup="[Finished] ${1##*/} mounted."
else
   kdialog --icon=ks-error --title="Mount ISO-9660 Image" \
                   --passivepopup="[Error] Can't mount ${1##*/}: Already mount or check image integrity."
   exit 1
fi

exit 0

然后:

kate ~/.local/share/kservices5/ServiceMenus/mount-iso.desktop

包含以下内容:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/x-cd-image;model/x.stl-binary
Actions=mount;unmount;
X-KDE-Priority=TopLevel
X-KDE-StartupNotify=false
Icon=application-x-cd-image
X-KDE-Submenu=Mount/unmount image


[Desktop Action unmount]
Name=Unmount
Icon=edit-redo
Exec=which fuser fusermount; if [ "$?" != "0" ];then kdialog --icon=ks-error --title="Unmount ISO-9660 Image" --passivepopup="[Error] Please install fuser and fusermount command and try again."; exit 1; else fuser -k %f; fusermount -u "$(ls "%f"|sed 's/.iso$//')"; rm -fr "$(ls "%f"|sed 's/.iso$//')"; kdialog --icon=ks-media-optical-umount --title="Unmount ISO-9660 Image" --passivepopup="[Finished] $(basename %f) unmounted.";fi

[Desktop Action mount]
Name=Mount
Icon=circular-arrow-shape
Exec=which fuseiso; if [ "$?" != "0" ];then kdialog --icon=ks-error --title="Mount ISO-9660 Image" --passivepopup="[Error] Please install fuseiso command and try again."; exit 1; else ~/bin/iso_manager-mount-image.sh %F;fi

在此输入图像描述

它将把图像挂载到与图像相同的目录中新创建的文件夹中,并且当为 iso 选择卸载选项时,该文件夹将被删除。

fuserfusermountfuseisokdialog都是需要的。”


丙酮异Plasma 5 中只有三个补充包:fuseiso另外两个是qt基于 的。

sudo apt install acetoneiso

要在 Dolphin 中查看它,您必须将该程序添加到 iso 文件的文件属性中。

在此输入图像描述

然后,可以在 Dolphin 下找到它打开用选项:

在此输入图像描述

这将安装图像,在 Dolphin 中打开它,并打开 Acetineiso 窗口,您可以在其中找到卸载选项。

在此输入图像描述


还有gnome-disk-utility一个,尽管名称如此,在 Plasma 5.8 中没有非 kde 依赖项(实际上根本没有依赖项),并且它包括(除了 之外gnome-disks,也称为“磁盘”,Ubuntu 中默认)一个名为 的工具gnome-disk-image-mounter

sudo apt-get install gnome-disk-utility

之后,将创建一个 Dolphin 上下文菜单条目,可通过选择“打开方式”-“磁盘映像安装程序”进行访问。

在此输入图像描述


这些程序也可以与服务菜单一起使用(但它们都缺少卸载命令)。

例如,可以将其与 Acetoneiso 一起使用:

kate ~/.local/share/kservices5/ServiceMenus/acetoneiso-mount-iso.desktop 

内容:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/x-cd-image
Actions=mount
X-KDE-Priority=TopLevel
X-KDE-StartupNotify=false
Icon=application-x-cd-image
X-KDE-Menu=Mount with Acetoneiso



[Desktop Action mount]
Name=Mount with Acetoneiso
Icon=Acetino2
Exec=acetoneiso %f

在此输入图像描述


当将此程序与 Dolphin 一起使用时,这里似乎存在某种错误:从 Acetoneiso 按钮或从 Dolphin 设备列表卸载时,列表条目将保留在那里(在 的情况下称为“循环设备” gnome-disks),如果选择,将再次安装图像。该条目将保留在那里,直到系统重新启动(注销是不够的)。 (第一个脚本不受此影响。)

答案3

在许多发行版中都存在一个单独的海豚插件包包括磁盘安装(例如 ISO)。它通常被命名为dolphin-plugins跨发行版。

如果 Dolphin 没有在上下文菜单中显示该选项,请检查插件是否已安装。

答案4

Marius Cotofana 提供了一个很好的答案,但这里有两个附加说明:

  1. 当 kdesu 在您的 KDE 配置中不可用时(如果 kdesu 命令在 bash/konsole 中不起作用),请使用 kdesudo 在 Dolphin 中创建挂载/卸载上下文菜单。

  2. 创建 /media/iso 并将映像安装到该映像将导致映像以只读方式显示在 Dolphin 下的位置,这提供了额外的便利。

[桌面条目]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/octet-stream;操作=挂载ISO;umountISO;

[桌面操作 mountISO]
Name=Mount
Icon=utilities-terminal
Exec=kdesudo 'mount -o Loop,ro -t iso9660 "%f" /media/iso/'

[桌面操作 umountISO]
Name=Unmount
Icon=utilities-terminal
Exec=kdesudo 'umount "%f"'

相关内容