nautilus でフロッピーなどをマウントするための補助となるツール(シェルスクリプト)です。
一般ユーザ向けのツールなので、mount コマンドや umount コマンドでマウント/アンマウントできるものが対象となります。
/etc/fstab に記述されたデバイスのうち、user/users/owner/group のオプションが指定されたデバイスです。
記述の例 (4番目のフィールドに user )
/dev/hda1 /mnt/windisk vfat noauto,user,ro 0 0
なお、/etc/fstab に記述されていないデバイスについても、gnome-mount/gnome-umount , pmount/pumount 等を用いてマウント/アンマウントを試みます。
次の三つのシェルスクリプトがおもな構成物です。
GNOME Panel の -> -> で起動します。
GNOME端末などから次のようにコマンドを実行しても起動します。
$ fstab-user-mount
FSTAB_MOUNT_DIRで指定された作業用ディレクトリを作成し、fstab-mount や fstab-umount によってマウント/アンマウントできるデバイスのシンボリックリンクと、マウントポイントへのシンボリックリンクを作成します。さらに、nautilus で、作業用ディレクトリを開きます。
作業用ディレクトリを削除するかリネームしたあとで fstab-user-mount を実行すると、再度、作業用ディレクトリの作成、シンボリックリンクの作成が行われます。/etc/fstab が更新された場合などは、作業用ディレクトリを作り直してください。
また、-a オプションを利用すると、作業用ディレクトリにデバイスへのシンボリックリンクを追加できます。
/etc/fstab に書かれていないデバイスなどを登録する場合には -a オプションを利用してください。
コマンドの書式は次のようになります。
$ fstab-user-mount -a デバイス名 作成されるシンボリックリンクファイル名
デバイス名 と 作成されるシンボリックリンクファイル名 は省略可能です。
$ fstab-user-mount -a
$ fstab-user-mount -a /dev/cdrom
$ fstab-user-mount -a /dev/cdrom cdrom-drive
-a だけ指定した場合には、zenity のウィンドウが開き、ファイルを選択するとそのシンボリックリンクを作成します。
fstab-mount と fstab-umount が /usr/share/applications にある fstab-mount.desktop と fstab-umount.desktop によって、デバイス(x-special/device-block) と フォルダ(x-directory/normal) に関連付けされているので、デバイスやフォルダを右クリックして表示されるコンテキストメニューからマウント/アンマウントができます。
デバイスファイルを通常のファイルを開くときのようにクリックすると「マウント」か「アンマウント」になります。
クリックした時の標準の動作を「マウント」にするか「アンマウント」にするかは、デバイスファイルを右クリックしてコンテキストメニューを表示し、一番下にあるプロパティ(R)を開き、さらに「開き方」のタブを開くと選択できます。
フォルダを右クリックしてコンテキストメニューを表示し、「別のアプリで開く(H)」から、「"ボリュームをマウントする。(/etc/fstabに従う)" で開く」や「"ボリュームをアンマウントする。(/etc/fstabに従う)" で開く」を選択することでマウント/アンマウントできます。
現状では作成したシンボリックリンクファイルがゴミ箱へ移動できなくなる場合があるので、ゴミ箱の代わりとなる ~/.Trash というディレクトリも開きます。
~/.Trash にファイルを入れる(ドラッグする)ことでゴミ箱に入れるのと同じ効果が得られます。
~/.Trash は、ファイルメニューに「ゴミ箱を空にする」というものがありますが、~/.Trash の中に表示されているのは、~/.Trash と同じパーティションにあるファイルに限られ、実際のゴミ箱の中にはそれ以外のファイルもあります。~/.Trash の中にあるファイルだけでなく、それ以外のファイルも削除されてしまうので、「ゴミ箱を空にする」は利用せずに、デスクトップ上にある「ゴミ箱」を開いて中味を確認したうえで、不要であれば空にしてください。
~/.Trash を開かないようにするには、FSTAB_DO_NOT_OPEN_TRASHを設定してください。
作業用ディレクトリも開かないようにするには、FSTAB_DO_NOT_OPEN_NAUTILUSを設定してください。
作業用ディレクトリに作成されるファイルは次の表「表1. 作業用ディレクトリに作成されるファイル」のようなものになります。
| 名前 | 内容 |
| _dev_* | デバイスへのシンボリックリンクファイル |
| LABEL=* | デバイスへのシンボリックリンクファイル |
| UUID=* | デバイスへのシンボリックリンクファイル |
| _mnt_* | マウントポイント(ディレクトリ)へのシンボリックリンクファイル |
| mount.log umount.log | fstab-mount,fstab-umount 実行時に作成されたログファイル |
| mount.log.PID | fstab-mount 実行中、もしくはエラーが出た時のログファイル |
| umount.log.PID | fstab-umount 実行中、もしくはエラーが出た時のログファイル |
| mount.log.old umount.log.old | 古いログファイル |
| fstab-mount.lock.PID | fsta-mount の順番待ちの時に作成されるロックファイル。このファイルを削除すると順番待ちから抜け、直ちに実行します。 |
| fstab-umount.lock.PID | fsta-umount の順番待ちの時に作成されるロックファイル。このファイルを削除すると順番待ちから抜け、直ちに実行します。 |
コマンドの引数を、/etc/fstab の記述と照合して mount を実行します。
mount コマンドと同じように使えます。
なお、/etc/fstab に該当するものが見付からなかった場合には、gnome-mount や pmount でのマウントを試みます。
$ fstab-mount /dev/hda1
$ fstab-mount /mnt/windisk
$ fstab-mount LABEL=C-FAT32
$ fstab-mount UUID=1234-5678
動作中は、作業用ディレクトリに、ログファイルとして mount.log.PID 、ロックファイルとして fstab-mount.lock.PID を出力します。動作終了時に、ログファイルは mount.log として保存され、ロックファイルは削除されます。
ログファイルの保存については、設定項目の FSTAB_MOUNT_SAVE_LOG を参照してください。
動作が終了しない時など、異常時には、これらのファイルの PID の部分の数字を killコマンド等で処理してください。
作業用ディレクトリが存在しなかった場合、FSTAB_DO_NOT_OPEN_NAUTILUS=1 として fstab-user-mount が実行され、作業用ディレクトリおよびシンボリックリンクが作成され、その後マウント操作が行われます。
引数としては、デバイス名、マウントポイント、LABEL、UUID、デバイスやマウントポイントへのシンボリックリンクファイルが利用できます。
引数で与えられたデバイスの情報を findfs や blkid や readlink といったコマンドから取得して、/etc/fstab の記述と照合します。
| /etc/fstab の記述 | UUID=1234-5678 /mnt/windisk vfat noauto,users,ro 0 0 |
| /dev/hda5 /mnt/windisk2 vfat noauto,users,ro 0 0 | |
| /sbin/blkid で得られる情報 | /dev/hda1: UUID="1234-5678" TYPE="vfat" LABEL="C-FAT32" |
| /dev/hda5: UUID="8765-4321" TYPE="vfat" LABEL="D-FAT32" |
コマンドの引数を、/etc/fstab の記述と照合して umount を実行します。
/etc/fstab に該当するものが見付からなかった場合には、gnome-umount や pumount でのマウントを試みます。
基本的な動作は fstab-mount コマンドと同じです。
動作中は、作業用ディレクトリに、ログファイルとして umount.log.PID 、ロックファイルとして fstab-umount.lock.PID を出力します。動作終了時に、ログファイルは umount.log として保存され、ロックファイルは削除されます。また、dfコマンドの結果を mount.log に追記します。
ログファイルの保存については、設定項目の FSTAB_MOUNT_SAVE_LOG を参照してください。
動作が終了しない時など、異常時には、これらのファイルの PID の部分の数字を killコマンド等で処理してください。
umount コマンドと同じように使えます。
$ fstab-umount /dev/hda1
$ fstab-umount /mnt/windisk
$ fstab-umount LABEL=C-FAT32
$ fstab-umount UUID=1234-5678
動作中は、作業用ディレクトリに、ログファイルとして umount.log.PID 、ロックファイルとして fstab-umount.lock.PID を出力します。動作終了時に、ログファイルは umount.log として保存され、ロックファイルは削除されます。設定項目の FSTAB_MOUNT_SAVE_LOG を参照してください。動作が終了しない時など、異常時には、この PID を killコマンド等で処理してください。
umount の実行後に、引数として渡されたデバイスやマウントポイントが利用されているかどうかチェックします。
次のような場合を想定してチェックを行っています。
# /bin/mount /dev/sdb1 /mnt/floppy ; /bin/mount /dev/fd0 /mnt/floppy
fstab-user-mount , fstab-mount , fstab-umount での設定です。
設定ファイルは以下の二つです。
ユーザごとに設定する場合は、/etc/fstab-mountrc をコピーし、編集するとよいでしょう。
$ /bin/cp -i /etc/fstab-mountrc ~/.fstab-mountrc
設定ファイルは上から順に読み込まれ、同じ設定項目があれば、後から読み込まれたファイルでの設定が利用されます。
なお、~/.bash_profile や ~/.bashrc に記述することもできます。
その場合は次のような順番で読み込まれます。
=文字 となっているものは FSTAB_MOUNT_BEEP="" や
FSTAB_MOUNT_BEEP=1 のように、
"" または 1 としてください。
"" で無効 (空) = 標準の設定を利用する。1 で有効となります。
利用するディレクトリを指定します。
標準 (空) では "$HOME/.fstab-mount" になります。
設定例: FSTAB_MOUNT_DIR="$HOME/device"
標準は 空(無効)です。
有効にすると、マウントした時やアンマウントした時に、エラーメッセージや警告のメッセージが出力された場合に、ログファイルを保存します。
fstab-mount を実行した時のログファイルは mount.log で fstab-umount を実行した時のログファイルは umount.log ですが、有効にすると、mount.log.PID や umount.log.PID のように .PID がついて保存されます。
なお、この値が無効でも、mount.log umount.log の他に、それぞれ一つ前のものが mount.log.old umount.log.old として残されます。
標準は 空(無効)です。
有効にすると、fstab-mount と fstab-umount で引数をそのまま mount コマンド、umount コマンドに渡してすぐさま終了します。
アイコンの作成、削除や、エラーチェックなどは行われません。
この設定は、nautilus 上で右クリックした時の動作を fstab-mount/fstab-umount を用いるものから mount/umount を用いるものへ切り替えるためのものです。
* FSTAB_MOUNT_WITHOUT_GNOME_MOUNT=1
* FSTAB_MOUNT_WITHOUT_PMOUNT=1
標準は、FSTAB_MOUNT_WITHOUT_GNOME_MOUNT は 空(無効)、FSTAB_MOUNT_WITHOUT_PMOUNT は 1(有効) です。
空 (無効)だと、fstab-mount と fstab-umount で、該当するデバイスが /etc/fstab に見付からなかった場合に、gnome-mount/gnome-umount コマンドや pmount/pumount コマンドを実行してマウント/アンマウントを試みます。
それぞれ、1 に設定すると、gnome-mount/gnome-umount, pmount/pumount コマンドを実行しません。
標準では、gnome-mount/gnome-umount は実行し、pmount/pumount コマンドは実行しません。
* FSTAB_MOUNT_DESKTOP_NO_ICON=1
マウントしたデバイスへのシンボリックリンクをデスクトップに*作成しない*。
標準は 空(無効)です。デスクトップにリンクを*作成します*。
空 (無効)だと、fstab-mount でマウントするとデスクトップにマウントポイントへのリンクを作成し、fstab-umount でアンマウントするとリンクを削除します。
他のコマンドなどでアンマウントしてもデスクトップからシンボリックリンクが削除されません。その場合は、fstat-user-mountを起動して、~/.Trash にアイコンを入れるなどして削除してください。
削除されなかったシンボリックリンクを利用して、マウント、アンマウントすることでも消すことができます。
fstab-mount が同時に複数実行されている時に、他のマウント処理が完了するのを待たずに直ちに実行します。
fstab-umount が同時に複数実行されている時に、他のアンマウント処理が完了するのを待たずに直ちに実行します。
どちらも標準は 1(有効)で、直ちに実行します。
空にすると、PID の小さなものから順に処理します。
なお、順番を待つように、空に設定した場合で、複数同時に起動した時に、PID が最大値付近だった場合に、後から起動されたものの PID のほうが、より小さな数字になり、最初に起動したものの開始までに時間がかかるようになることがあります。その場合には、次のどれかの方法で対処してください。
なお、GNOME端末などでコマンドを入力して実行していた場合、Ctrl+C を入力すると終了します。
参照: FSTAB_MOUNT_WAIT_NO_ZENITY
参照: FSTAB_MOUNT_DIR
pkillコマンドは次のように利用します。
$ /usr/bin/pkill fstab-mount
$ /usr/bin/pkill fstab-umount
なお、pkillコマンドによって終了させた場合には、ロックファイルが残ってしまいます。ロックファイルを削除してください。
fstab-mount や fstab-umount の PID は次のようにすると確認できます。
$ /usr/bin/pgrep fstab-mount
$ /usr/bin/pgrep fstab-umount
PID の最大値は、次のように /proc/sys/kernel/pid_max を見ることで確認することができます。
$ /bin/cat /proc/sys/kernel/pid_max
x86 32ビットのプラットフォームでは、32768 となっているようです。
1 (有効)にすると、順番待ちの表示、マウント処理、アンマウント処理などの zenity を用いた全ての表示を行いません。
FSTAB_MOUNT_NO_ZENITY=1とすると、自動的にFSTAB_MOUNT_WAIT_NO_ZENITY=1 となり、zenityを用いた全ての表示を行わなくなります。
FSTAB_MOUNT_BEEPや FSTAB_UMOUNT_BEEP などを設定して、音などによる通知を行えるようにするとよいでしょう。
標準は空です。zenity を利用してメッセージ等を表示します。
1 (有効)にすると、fstab-mount でのマウント処理が完了した時に、エラーなどが何もなくても zenity を用いて表示します。
標準は空です。zenity を利用してのメッセージ表示を行いません。
* FSTAB_MOUNT_WAIT_NO_ZENITY=1
FSTAB_MOUNT_NO_WAIT="" のようにして他の処理を待つように設定した場合に、処理を待っているということを zenity を使って画面に表示しますが、1 に設定すると zenity を用いた表示を行いません。
標準は 1(有効)です。処理待ちのメッセージを表示しません。
* FSTAB_MOUNT_BEEP= 空(無効) or 1(有効)
* FSTAB_UMOUNT_BEEP= 空(無効) or 1(有効)
fstab-mount 実行時、fstab-umount 実行時にビープ音で通知します。
標準は 空(無効)です。
有効にすると、fstab-mount でのマウント処理、fstab-umount でのアンマウント処理の際に、
成功した場合は 1回、
失敗した場合と警告などメッセージが出力された場合は 2回
ビープ音をならします。
成功したけれど警告も出たという場合には合わせて ピピッ ピ といった感じで合わせて 3回ビープ音をならします。
マウスでの操作ではなく、コマンドとして実行した場合に利用できます。
マウント処理の時に、デバイスとマウントポイントが /etc/fstab の記述と一致しない状態になっている場合でも、ピッ と成功として音が鳴ってしまう場合があります。音での通知は補助的なものとして利用し、mount コマンドや df コマンド等で確認して下さい。
なお、ビープ音を利用するには、あらかじめ gnome-terminal 等をビープ音がなるように設定する必要があります。オンラインマニュアルのユーザー補助技術とGNOMEの設定 等を参照してください。kterm であれば、~/.Xresources 等に KTerm*visualBell: false といった記述をする必要があります。
* FSTAB_BEEP_NG_COMMAND="コマンド"
FSTAB_MOUNT_BEEP=1 などのようにしてビープ音が鳴るように設定しておいた時に、
ビープ音の代わりに実行されるコマンドとなります。
例: FSTAB_BEEP_COMMAND="/usr/bin/play /usr/share/sounds/info.wav"
例: FSTAB_BEEP_NG_COMMAND="/usr/bin/play /usr/share/sounds/error.wav"
* FSTAB_DO_NOT_OPEN_NAUTILUS= 空(無効) or 1(有効)
標準は 空(無効)です。
fstab-user-mount を実行した時に、nautilus で FSTAB_MOUNT_DIR で指定したディレクトリを開きますが、有効にすると ディレクトリ等を準備するだけで、nautilus では開きません。
* FSTAB_DO_NOT_OPEN_TRASH= 空(無効) or 1(有効)
標準は 空(無効)です。
fstab-user-mount を実行した時に、nautilus で ~/.Trash というディレクトリを開きますが、有効にすると、開きません。
異なるデバイスへのシンボリックリンクファイルはゴミ箱へ移動できない場合があります。ゴミ箱のかわりに ~/.Trash に入れることで、ゴミ箱に入ります。そのために ~/.Trashを開くというものです。
FSTAB_DO_NOT_OPEN_NAUTILUS=1 のように設定されている場合は、自動的に FSTAB_DO_NOT_OPEN_TRASH=1 になります。