ISOマウントスクリプト

Ubuntuは,Linux系OSなので,DaemonToolsなしで仮想ディスクをマウントできます
通常はコマンドで
$ mkdir /media/マウントポイント
$ sudo mount -t iso9660 -o loop 仮想ディスク.iso /media/マウントポイント
(下線は任意の文字)
と入力することで,仮想ディスクをマウントできます(1行目のmkdirは一度やると,以降しなくても良いです).あとは,デスクトップに現れた(マウントポイント名の)アイコンをクリックすると中身を閲覧できます.

仮想ディスクを取り外すときは
$ sudo umount /media/マウントポイント
とコマンドに入力します.

しかし,毎回,端末を立ち上げて,この長々しいコマンドを打つのは一苦労です.
「いっそう,マウスでできたら….」と思うことでしょう.

Ubuntuの標準ファイラは,Nautilusです.
このNautilusは,スクリプトを作成することで,拡張が可能となります.
そこでISOを簡単にマウントするスクリプトを作ってみました.
一応,G-Scriptというサイトにそのようなスクリプトがあるのですが,マニュアルが英語で読むのが辛かったので,あえて自分で作ってみました.スクリプトを作るのに当たり,UbuntuBlogの2005年10月24日の記事を参考にしました.
以下,ISOマウントスクリプトです.
#! /bin/bash
#
for filename
do
    gksudo -u root -k -m "管理パスワードを入力してください" /bin/echo "got r00t?"
    directory="/media/$filename"
    sudo mkdir $directory
    sudo mount -o loop -t iso9660 $filename $directory
done
exit
以下は,アンマウントスクリプトです.
#! /bin/bash
for filename
do
    gksudo -u root -k -m "管理パスワードを入力してください" /bin/echo "got r00t?"
    user=`/usr/bin/whoami`
    temp1="/home/$user/.gnome2/nautilus-scripts/temp1"
    temp2="/home/$user/.gnome2/nautilus-scripts/temp2"
    echo $filename > $temp1
    perl -pe 's/\.volume$//' $temp1 > $temp2
    perl -pe 's/^/\/media\//' $temp2 > $temp1
    filename=`cat $temp1`
    rm $temp1
    rm $temp2
    sudo umount $filename
    if [ -d $filename ]
        then
        sudo rm -r $filename
    fi
done
exit

手順は以下のようになります.
  1. それぞれのスクリプトをコピペし,テキストエディタに貼り付けます
  2. "/home/ユーザー名/.gnome2/nautilus-scripts"名前をつけて保存します(私はマウントスクリプトを"Mount",アンマウントスクリプトを"UMount"としています).
  3. 実行権限を付加します.端末を立ち上げて,以下を入力します.
    $ cd~/.gnome2/nautilus-scripts
    $ chmod a+x マウントスクリプト
    $ chmod a+x アンマウントスクリプト
  4. あとは,スクリプトNautilusが自動認識して,右クリック→スクリプトから実行できるはずです.
2. はテキトーな場所に保存してから,移動させてもOKです.保存先は隠しフォルダになっているので,"/home/ユーザー名"のフォルダで隠しファイルを表示するにすると見えるようになります.
3. はファイラーでファイルのプロパティから変更ができます.
もし,右クリックメニューにスクリプトが現れなかったら,再起動すると良いです.
ヘタレなスクリプトなので,勝手に改変してくれて構わないです.

このスクリプトの特徴は,
  • 複数のファイルを一度にマウントできる
  • マウントしたファイル名のフォルダにマウントされる
ことです.