概要
この文書は何?
Linux でリムーバブルメディアを扱うための一つの方法である supermount patch の紹介です。
これは現時点でおそらく最も簡単にメディアを扱うことが出来ます。今使っている方法が面倒だと感じる人や、学校等余り知識のないユーザを抱える所に適しているかと思います。
supermount を使って何が出来るか
- mount/umountを全く考えなくて良い。ただディレクトリにアクセスするだけで使える
- メディアのイジェクト/変更をコマンドなしで自由に出来る。そして変更は自動的に検知される
技術的概要と用語
- supermountは疑似ファイルシステムである。マウントポイント以下へのアクセスを検知して、自動的にデバイスをマウントする。
- マウントされる実際のファイルシステムはsubfsと呼ばれる
準備: kernel patch
supermount は現時点では patch の形で提供されている。オフィシャルページの Linux removable media support からパッチをダウンロードして適用する。
パッチを適用すると、config の Filesystems 内に Supermount removable media support と言う項目が新たに追加されので、これを組み込みかモジュールに指定してコンパイルすること。
動作テスト
カーネルの入れ替えが問題なく終わったら、実際に使ってテストをしよう。
とりあえず FD から。root になって以下のようなコマンドを実行する。
# mount -t supermount -o dev=/dev/fd0,fs=vfat floppy /mnt
ポイントは以下の通り。
- ファイルシステムタイプとして supermount を指定
- マウントデバイスは何でも良い(適当にわかりやすい名前を)
- 実際のデバイスはdevオプションで渡す
何もエラーが出なければ OK. 後は適当に FD を入れて、一般ユーザに戻り
$ ls /mnt
などを実行してみよう。ちゃんと表示されたら umount せずに別の FD に入れ替えて、また ls してみる。正しく内容が変われば OK.
動いているようなら、df 等も動かしてみよう。ls を動かした直後は df の出力に出てくるが、FD を抜いたり入れ替えたりすると自動的に消えるのが分かるだろう。ちなみに、現在実際に(subfs が)マウントされているかどうかは /proc/fs/supermount/subf を参照すると分かる。
/etc/fstab の変更
さて、テストが終わったらこれを常時使うように変更する。先ほど使ったマウントポイントは umount し、/etc/fstab を書き換えよう。
次のようなエントリを追加する。既に noauto,user オプション付きで同じ様な項目がある場合が多いと思う。その場合はそれを変更すること。
/etc/fstab の追加エントリ
floppy /floppy supermount fs=vfat,dev=/dev/fd0,--,codepage=932,iocharset=euc-jp 0 0 cdrom /cdrom supermount fs=iso9660,dev=/dev/cdrom,--,ro,iocharset=euc-jp 0 0
元々指定されていたファイルシステム固有の(subfsの)オプションは -- の後ろに書くことが出来る。例では日本語ファイル名のコード変換オプションを指定しているが、要らない人は -- 以下はなくても良い。
設定の有効化
root で
# mount -a
として有効にしておこう。この状態で mount のリストを表示したとき、
現在のマウント状態をチェック
$ mount floppy on /floppy type supermount (rw,fs=vfat,dev=/dev/fd0,--,codepage=932,iocharset=euc-jp) cdrom on /cdrom type supermount (ro,fs=iso9660,dev=/dev/cdrom,--,iocharset=euc-jp)
の様なエントリが表示されれば OK. 後は指定したマウントポイントにアクセスすれば使用することが出来る。
問題点と課題
現時点で IDE CD-ROM ドライブと通常の FD ドライブは巧く動く。(テストしていないがSCSI CD-ROMもおそらく動くと思われる。)
しかし USB メモリーリーダでは巧くいかなかった。メディア変更の情報が巧くとれないため(???)、古い情報が残ってしまう。
参考リソース
- supermount プロジェクトページ
- パッチを当てた後のDocumentation/filesystems/supermount.txt
- Con Kolivas のパッチ集にも含まれています