2008年3月5日水曜日

Solarisでのリムーバブルメディアの管理方法

バージョン2.2以降のSolarisでは、フロッピーディスクやCD-ROMなどの着脱可 能な、いわゆるリムーバブルメディアの管理方法が大きく変わりました。vold と呼ばれる特別なデーモンが存在して、これらのメディアをドライブにセット すると必要に応じてシステムで決められたディレクトリにマウントしてくれる というものです。この機能により、スーパーユーザ特権を持たない一般のユー ザでも自由にファイルシステムのマウント、アンマウントが行なえるのです。 この部分はSolarisにおいてもっとも頻繁な変更の行なわれている部分であり、 デバイス名などの扱いもSolaris 2.2と2.3の間でも変わっているのですが、と りあえずここでは、Solaris 2.2におけるvoldの概略について述べることにし ます。


フロッピーディスクの使用

Solarisでは、フロッピーディスクを何通りかの方法で使用することが可能になっ ています。

ファイルシステムの一部として使用 ufs、pcfs
バックアップメディアとして使用 tar、cpio
ufsやpcfsのようにフロッピーディスクをUNIXファイルシステムの一部として扱 う場合は、当然マウント、アンマウントの必要があります。しかし、フロッピー ディスクは本来頻繁に抜き差しするものです。これを毎回マウント、アンマウン トしていては大変面倒です。しかも、マウント、アンマウントの操作はスーパー ユーザ以外は行なうことができません。

そこで、Solarisではボリュームマネージャvoldがこのようなリムーバブルメディ アの管理を引き受けるようになっています。すでにフォーマット済みでファイル システムが構築されたメディアについては、ドライブに挿入すれば所定のマウン トポイントに自動的にマウントされ、エジェクトすれば自動的にマウントが解除 されるようになっています。

ここで、フロッピーディスクドライブの使用法について注意をしておきます。ま ず、ディスケットを挿入する方向ですが、基本的にはPCと同じく、ディスケット のラベルを上にして、スリットに差し込みます。ただし本体が縦置きになってい る場合は、よく本体の向きを確かめて下さい。また、PCのドライブと違って、 挿入口にエジェクト用ボタンがついていません。ディスケットの取り出しには、 ejectコマンドを使います。


eject
とすれば、ドライブからディスケットが出てきます。


メディアのチェック

常にフロッピーディスクドライブが動作している状態では、ディスケットはす ぐに摩耗してしまいます。そのため、ただドライブにディスケットを入れただけ ではまだドライブは回転しないようになっています。

ディスケットを挿入したら、 volcheckというコマンドを実行して下さい。 ディスケットのシャッタが開いて、ドライブが動作し始めます。これで、ボリュー ムマネージャがディスケットを認識したことになります。

もし、このディスケットがこの後述べるフォーマットとファイルシステム作成の 済んだものであれば、 volcheckを実行するだけで一気にマウントまででき てしまいます。そして、取り出したいときは ejectコマンドを実行するだ けでボリュームマネージャがアンマウントまで行なってくれます。

しかし、いまはまだフォーマットされていないディスケットを使いますから、利 用者が自分でフォーマット、ファイルシステムの作成を行なわなければなりませ ん。


ufs形式でのフォーマット

Solarisでは、 fdformatというコマンドで、フロッピーディスクのufsフォー マットを行います。


fdformat
このとき、 fdformat: can't read verify data, I/O error とか No such volume (or no media in specified device): floppy といった エラーメッセージが表示される場合がありますが、その場合は volcheck fdformatを2、3回繰り返せばうまくいきます。

ipca6:[209]fdformat
Press return to start formatting floppy in /vol/dev/rfd0/unformatted.
................................................................................
このとき表示されるデバイス名 /vol/dev/rfd0/unformattedに注意して下 さい。これは、ボリュームマネージャがドライブに挿入されたディスケットをチェッ クして自動的に作成したデバイスファイルです。なお、Solaris 2.3以降では /vol/dev/rfd0が /vol/dev/rdiskette0になります。
フォーマットが完了したら、 newfsコマンドでフロッピーディスク上にファ イルシステムを構成します。 ls -l /vol/dev/rfd0を実行し、newfsの対象と なるデバイスファイル名を確認しておきましょう。


ipca6:[210]:newfs /vol/dev/rfd0/unnamed_floppy
newfs: construct a new file system /vol/dev/rfd0/unnamed_floppy: (y/n)? y
/vol/dev/rfd0/unnamed_floppy: 2880 sectors in 80 cylinders of 2 tracks, 18 sectors
1.5MB in 5 cyl groups (16 c/g, 0.29MB/g, 128 i/g)
(fsck -F ufs -o b=# のための) スーパーブロックバックアップ:
32, 640, 1184, 1792, 2336,

ufsマウント

ボリュームマネージャが動作していれば、実は今フォーマットしたディスクをマ ウントするのにスーパーユーザになる必要はありません。一度 ejectして から、もう一度ドライブに挿入し、 volcheckを行なうだけです。これだけ でディレクトリ /floppyの下にフロッピーディスクがマウントされます。


DOSフォーマットでの利用

Solarisでは、PCとのデータの互換性を考慮して、DOSフォーマット、すなわち pcfsでフロッピーディスクを利用することができます。

DOSフォーマットは、さらにIBM-PC互換機で使われている1.44Mbフォーマット、 720Kbフォーマット、NECのPCで使われている1.2Mbフォーマットに分かれます。 Solarisのファイルシステムはこの3種類とも使用可能なのですが、残念ながら 皆さんの実習で使用するマシンのドライブでは1.2Mbフォーマットに対応してい ません。NECのパソコンでデータを読みたければ、2DDのディスクで720Kbフォー マットにしておけば読むことは可能になるはずです。

いずれのフォーマットでも、 volcheckをかけるところまではufsの場合と 変わりません。その後は、


高密度:1.44Mb
fdformat -d
中密度:1.2Mb
fdformat -m -t nec
低密度:720Kb
fdformat -l

とします。pcfsの場合、newfsコマンドを実行する必要はありません。 そして eject挿入 volcheckとすれば、 自動的に /floppyディレクトリの下にマウントされます。
あとは通常のコマンドを用いてファイルを操作できますが、ファイル名などに DOSフォーマット特有の制限があるのを忘れないで下さい。


tar、cpio

これらの伝統的なUNIXコマンドは、デバイスファイルを指定して使用します。 voldが動作している場合、これらのコマンドで使用するデバイス名は /vol/dev/fd0/ media-name(ブロックデバイス)、 /vol/dev/ rfd0/ media-name(キャラクタデバイス)となります。 media-nameは volcheckをかけたときのディスケットの状態により unformatted、 unnamedなどになります。volcheckの後に ls -l /vol/dev/fd0を実行し て調べてみると良いでしょう。また、Solaris 2.3以降では、''fd0''、''rfd0'' がそれぞれ ''diskette''、''rdiskette''に

0 件のコメント: