Linux下自動掛載和卸載iso鏡像文件的小程序

有太多的iso文件,每次要打開它時,都需要進入命令行,然後執行mount xxx.iso /misc -oloop命令。
等不要了,又要進入命令行使用umount /misc命令。
對於只要iso文件可以當作文件系統掛載並知道掛載命令的人來說,那也無非是多了兩條命令而已。
但是對於並不熟悉linux的人,這個問題就比較困難了。
昨天女友問我,iso文件怎麼打開?要不要下載虛擬光驅?
我說不要,使用一條命令就可以了。但是我知道命令對她來說還是比較困難的,畢竟沒有使用過linux,於是我想能不能當訪問它是自動掛載呢?
於是寫了一個小程序,經過測試,目前可以實現這個功能,只是還有一些不完美的地方。
程序如下
$cat mountiso.sh

#!/bin/bash
#---------------------------------------------------------------
#mountiso.sh iso鏡像文件自動掛載,卸載程序
#作者:趙衛國 [email protected] [email protected]
#使用方法:在kde環境下,右鍵點擊某個iso文件,選擇打開文件方式
#選擇你的程序的路徑(我的是/home/mlsx/bin/mountiso.sh)。
#然後選中在終端打開和記住該文件類型的打開方式
#----------------------------------------------------------------
myself=$$
echo "mountiso parent pid is $myself"
function umountiso
{
sudo umount /misc
kill -9 $1
exit 0
}
trap "umountiso $myself" 1 2 3 9 15
sudo mount $1 /misc -oloop
konqueror /misc &
child=`ps -ef &line;grep 'konqueror /misc' &line;grep -v grep &line;awk '{ print $2 }'`
echo "mount pid is $child"
while [ "1" -lt "2" ]
do
is_exist=`ps -ef &line;grep $child &line;grep -v grep`
if [ -z "$is_exist" ]
then
sudo umount /misc
exit 0
fi
sleep 3
done


使用方法見程序註釋。
當你打開一個iso文件時,iso文件自動掛載在/misc下面(你可以修改),一個對應的終端也會打開,不要關閉這個終端。當你關閉打開的konqueror窗口後,這個終端也會自動關閉。
gnome還沒有測試,誰測試了告訴我一聲。
歡迎大家改進這個程序。

注意:由於mount命令需要root權限使用,如果你是使用root來登陸的,那麼刪除程序中的sudo。
如果你是普通用戶,需要把把這個用戶加入到sudo裏面,同時配置爲不需要密碼訪問(當然你也可以配置需要密碼,不過每次掛載都需要你輸入密碼)。爲了做到這點,你需要使用root帳號登陸,並執行下面的命令
#visudo
打開一個文件,在最後加入這樣一行
mlsx    ALL=(ALL)   NOPASSWD:ALL
保存後,你就可以使用上面的程序了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章