linux无需root挂载iso镜像文件
引言
起初,我在针对deepin制作一款appimage安装工具,想要其实现的功能就是自动获取图标,只需要输入软件名称和分类即可,当然以后也会寻找方案省去手动输入的麻烦。
后来我发现一个有趣的问题
openshot有些特立独行,我无法使用传统的方案,--appimage-extract参数来为其解包,以至于很长时间内,软件都是靠判断文件名来实现自动获取图标的。
但是随着我发现越来越多“特立独行”的软件包,我开始寻找答案。
首先,我注意到一些细节。

在deepin操作系统上,两者虽然都是AppImage,但是图标显示的不同,说明他们的minetype存在差异。
于是我找到了下面这两个文件

发现确实存在两个不同的appimage格式,而且,其中一个是iso9660。
于是我全盘搜索其中一个,找到了这个图标:

这就表示,那个“特立独行”的人,就是x-iso9660-appimage,于是我寻找将它的文件读取出来的办法,首先,基于我弱鸡的linux基础,我发现mount可以成功挂载这个文件,但是有一个不可忽视的问题,mount需要root。
其实如果这是日常使用,mount就够了,只是输入一下密码而已。
但是有什么方案能不需要root将其中内容取出来?
开始尝试了7z,安装u7zip后,使用7z可以成功将其解包,但是而且这对于普通的vnd.appimage同样有效,但是貌似这个有可能导致文件损坏,比如我解包openshot时,其中的图标就无法查看了,用mount挂载时是可以的。我尚不清楚这个现象的原因,开始怀疑是不是iso9660类型特有的问题,后来发现不是。
于是我又开始寻找,找到了fuseiso
其可以无需root权限将iso挂载到指定目录。
fuseiso的使用
挂载:
fuseiso -p <ISO文件> <目标文件夹>
#-p的作用是当目标文件夹不存在时自动创建
卸载:
fusermount -u <目标文件夹>
至此,就可是实现无需root挂载镜像了,也实现了x-iso9660-appimage文件内容的读取。
一些指引我的重要资料的位置:
https://linux.cn/article-4287-1.html :发现fuseiso
https://www.ubuntukylin.com/news/873-cn.html :发现mimetype文件类型标柱的位置
linux无需root挂载iso镜像文件的更多相关文章
- linux下挂载iso镜像文件
linux挂载iso镜像可以分为两种,直接挂载镜像和上传镜像文件至服务器进行挂载 一.虚拟机镜像挂载 测试时使用虚拟机,此时可以直接在虚拟机的设置中将镜像文件直接选择并进行挂载,无需上传至虚拟机服务器 ...
- 攻城狮在路上(叁)Linux(二十四)--- linux设置开机挂载及镜像文件挂载
虽然可以手动进行文件系统的挂载,但是每次都手动挂载就会很麻烦,开机挂载的目的就是实现文件系统的自动挂载. 一.开机挂载:/etc/fstab及/etc/mtab 主要是通过修改/etc/fstab文件 ...
- [CentOS7] 挂载iso镜像文件到/media目录下
声明:本文主要总结自:鸟哥的Linux私房菜-第七章.Linux 磁碟與檔案系統管理,如有侵权,请通知博主 首先,设置虚拟机让它加载iso镜像文件到CD/DVD设备中,这个设备对应于Linux下的/d ...
- linux下挂载iso镜像文件(转)
挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的. 命令格式: mount [-t vfstype] [-o optio ...
- Linux挂载iso镜像、配置本地yum源
Linux挂载iso镜像.配置本地yum源 1.备份原yum源配置文件 [root@localhost ~]# ll /etc/yum.repos.d/ [root@localhost ~]# mkd ...
- OpenStack挂载ISO镜像解决
OpenStack挂载ISO镜像解决 Summary 本次在OpenStack平台上进行,基于kvm,挂载iso镜像到OpenStack虚拟机中. 1.针对linux: 上传所需要挂载的iso镜像(必 ...
- XenServer安装虚拟机---先扩容存放ISO镜像文件
我们都知道xenserver安装后,不管你的盘有多大,只有4G的空间. 故操作是:新建LV卷,可自定义大小 1.vgdisplay #先查看剩余空间 [root@XenServer /]# vgdis ...
- 磁盘管理,磁盘挂在mount,挂载光盘镜像文件,挂在U盘,umount 卸载命令, dd
1 mount 命令格式: mount[-t vfstype] -o options device dir 其中: *-t vfstype 指定文件系统的类型,通常不必指定.mount会自动选择正确的 ...
- linux yum配置本地iso镜像
1.本地源配置:cdiso.repo 将iso镜像文件中所有内容复制到/public/software/cdrom 中,节点将本地yum指向此处. [root@node19 ~]# vim /etc/ ...
随机推荐
- 快速查询表中的NULL数据
正常情况下,NULL值是不会放入B-TREE索引的,因此根据IS NULL查询的时候走的通常是全表扫描,如果记录比较少还好,记录比较多,查询会非常耗时 可以通过创建一个索引来解决 CREATE IND ...
- js 浮点数陷阱
众所周知,JavaScript 浮点数运算时经常遇到会 0.000000001 和 0.999999999 这样奇怪的结果,如 0.1+0.2=0.30000000000000004.1-0.9=0. ...
- STP 根桥、根端口、指定端口是如何选举的
学习HCIA过程中,对交换机的根桥.跟端口以及指定端口选举有些迷糊,也度娘了一番,总觉得一部分人解释的不够全面精细.通过仔细研究最终有了自己的理解,分享给大家,如果纰漏,欢迎指正. STP收敛过程: ...
- ETL调优的一些分享(下)(转载)
如在上篇文章<ETL调优的一些分享(上)>中已介绍的,ETL是构建数据仓库的必经一环,它的执行性能对于数据仓库构建性能有重要意义,因此对它进行有效的调优将十分重要.ETL业务的调优可以从若 ...
- redis 主从复制 和集群
redis集群最少三个节点 之间相互通信ping-pong 投票选举机制 主从复制 的话 最少六个节点 ,主三从三
- 使用eventfd创建一个用于事件通知的文件描述符
https://www.jianshu.com/p/57cc1d7d354f nat穿透代码c++
- 这些年来,一直不知道Code Fisrt的真实意义。
目录 Code First 是一个糟糕的名字 放弃 EDMX,但继续实行数据库优先 Code First 是一个糟糕的名字 很多人依据它的名字认为,它是在代码定义模型,然后从模型生成数据库. Code ...
- win10自带输入法突然变成了繁体
有可能是在使用Eclipse/MyEclipse的Ctrl + Shift + F进行代码格式化的时候与输入法的热键冲突了
- Prometheus—告警altermanger
Prometheus-告警altermanger 1.告警altermanger装配 2.告警Mysql 3.Prometheus针对nodes告警规则配置 相关内容原文地址链接: 51CTO:wfw ...
- Java——反射机制
反射概念: Java反射是Java被视为动态(或准动态)语言的一个关键性质.这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifier ...