ST(4) — UNIX Programmer’s Manual
名称
st − SCSI テープデバイスドライバ
形式
/dev/{r|nr|anr}st∗
解説
st は、 SCSI テープデバイスのドライバです。 3.2 以前のリリースの OS では、 デバイスのタイプによって tu(4) と mt(4) に分かれていましたが、 リリース 3.3 からは st で全て扱えるようになりました。 SCSI テープには、 可変長レコードが扱えるもの(mt 型)と、 そうでないもの(tu 型)がありますが、 st はこの両方をサポートします。
st が標準でサポートしているデバイスは、 5099EN24 及び、 5125、 2150S の 3 タイプですが、 これ以外の SCSI テープデバイスを接続することも可能です。 この場合、 カーネルのコンフィギュレーション時、 コンフィギュレーションファイルの中で、 以下の例のように drive に対して flags 1 を指定すると 512 バイト固定長デバイスとしてプローブされます。
controllerstc0at iop0priority 5
tapest0at stc0 drive 0flags 1
また、 以下のように flags 2 とすれば、 可変長デバイスとしてプローブされます。
controllerstc0at iop0priority 5
tapest0at stc0 drive 0flags 2
さらに、 flags 0 を指定すると、 st はどちらのタイプのデバイスかを自動的に調べます。 デバイスがどちらのタイプとしてプローブされたかは、 OS のブート時に表示される、 コンフィギュレーションメッセージで知ることができます。
stc0 at iop addr 5 intr 5
st0 at stc0 slave 0
st0: [CARTRIDGE] (512 BYTES REC)/∗ 512 バイト固定長 ∗/
stc1 at iop addr 6 intr 6
st1 at stc1 slave 0
st1: [OPEN-REEL] (FLEX REC, 64K MAX)/∗ 可変長レコード ∗/
st は4台までのテープを同時に扱うことができます。 デバイスマイナー番号の下位 2 ビットは装置番号を、 ビット 3 と 4 は記録形式(フォーマット)を指定するために使われます。 ただし、 st が標準でサポートしている 3 つのタイプのデバイスの場合は、 この記録形式(デバイスマイナー番号)は後に述べるように、 それぞれのデバイスによって指定の意味が異なります。
/dev/{r|nr|anr}st[00−03]デバイスのデフォルトの記録形式
/dev/{r|nr|anr}st[08−11]QIC−11/9 track または 1600 bpi
/dev/{r|nr|anr}st[16−19]QIC−11/4 track または 6250 bpi
/dev/{r|nr|anr}st[24−27]QIC−24/9 track または 3200 bpi
また、 デバイス名の頭に付くプレフィックスによって、 ドライバの動作が異なります。
/dev/rst∗close 時、リワインドを行なう。
/dev/nrst∗close 時、リワインドを行なわない。
/dev/anrst∗close 時、リワインドを行なわない。オートスペースモード。
オートスペースモードでは、 デバイスの close 時に自動的にファイルマークを 1 つ読み飛ばし、 次のファイルの先頭位置にヘッドを進めます。 これは、 tar(1) などの、 ファイルマークに出会う前に終了してしまうようなタイプのコマンドを用い、 テープ上のファイルを連続して読み出す場合などに有効です。 但し、 この動作が行われるのは open から close までの間に、 1バイト以上のデータが実際にテープから読み出された場合に限ります。 従って、 mt(1) コマンドでデバイスにアクセスした場合には、 この機能は動作しません。
5099EN24
5099EN24 タイプのデバイスには、QIC−24 形式と QIC−11 形式があります。 マイナーデバイス番号 00−03 は QIC−24 形式をサポートし、 マイナーデバイス番号 08−11 は QIC−11 形式をサポートします。
5125
5125 は、 QIC−120 形式と QIC−24 形式を自動判別で読み出せます。 但し、 書き込みは QIC−120 形式でしかできません。 マイナーデバイス番号は 00−03 のみを使用してください。
2150S
2150S タイプのデバイスは、 QIC−24、 QIC−120 及び QIC−150 形式をサポートします。 QIC−120 形式にはマイナーデバイス番号 00−03 を、 QIC−150 形式にはマイナーデバイス番号 08−11 を、 QIC−24 形式にはマイナーデバイス番号 16−19 を使用してください。 ただし、 QIC−24 形式では、 書き込みはできません。
より細かいコンフィギュレーション
新しいタイプのデバイスを接続する際、 デバイスコンフィギュレーションファイルを変更することにより、 SCSI の LOAD コマンドや SPACE コマンドの有無など、 より細かい設定をすることが可能です。 この場合、 デバイスコンフィギュレーションファイル /sys/newsiodev/stdefs.c の中のコンフィギュレーションテーブル、 stdevinfo に新しいデバイスに関するエントリを追加し、 カーネルを作り直す必要があります。 テーブルのフォーマットについては、 すでにあるエントリ及び /sys/newsiodev/streg.h を参考にしてください。
IOCTL
st ドライバは、 mtio(4) で述べるられている標準のドライブインタフェース (ioctl) に加え、 ヘッダファイル /sys/newsiodev/streg.h で示される、 いくつかの SCSI コマンドを実行するための専用の ioctl を備えています。
関連ファイル
/dev/{r|nr|anr}st∗デバイススペシャルファイル
/dev/MAKEDEVデバイスファイル作成コマンド
/sys/newsiodev/streg.hioctl コマンドの定義
/sys/newsiodev/stdefs.cデバイスコンフィギュレーションファイル
関連事項
mt(1), tar(1), mtio(4), dump(8), restore(8)
診断
st∗: Error 1. ライトプロテクトがかかっているメディアに書き込みを行なおうとした。
st∗: Error 2. 指定した記録形式が無効である。 または、 メディアの途中で記録形式を変更しようとした。
st∗: Error 3. ioctl のコマンドまたは引数が無効である。
st∗: Error 4. リード/ライト、 またはレコード単位のスペーシング中に EOM にであった。
st∗: Error 5. 読み出しに際し、 指定したレコードサイズと実際のレコードサイズがあっていない。
st∗: Error 6. デバイスがビジー状態のため、 コマンドを実行できない。
その他、 デバイスドライバはコントローラによって返されたエラーステータスを、 以下の例のように表示します。
st∗: SCSI error 2 on block #0.
バグ
リリース 3.2 以前のリリース OS と互換性を保つため、 tu のデバイス名でもアクセスできるようになっています。
ブロック型のデバイスとしてはサポートしていません。
tu 型デバイスではテープは逆方向へは動きませんので、 BSR と BSF の ioctl はサポートしていません。 したがって、 この機能を使用する tar(1) の r オプションなどは動作しません。
BSF n は、 前方 n 番目のファイルマークの前縁にヘッドを移動します。 この位置からリードを開始すると、 ファイルマークを読むことになってしまいますので、 n 個前のファイルの先頭までテープを戻す場合は、
BSF n + 1
FSF 1
をおこなう必要があります。
基本的に SCSI テープデバイスであれば、 どのようなものであっても動くように設計されてはいますが、 保証はできません。
NEWS-OS Release 3.3