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文件類型標柱的位置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM