スポンサーリンク

OD(4) FreeBSD カーネルインタフェースマニュアル OD(4)

名称

od − SCSI 光ディスクドライバ

書式

device od

device od1 at scbus0 target 3 lun 0

偽の ASC/ASCQ を返すドライバを使うには

options OD_BOGUS_NOT_READY

自動回転停止機能を使うには

options OD_AUTO_TURNOFF

解説

od ドライバは SCSI 光ディスク (いわゆる、光磁気や相変化光学ディスク) ドラ イブをサポートします。メディアの交換や、ディスクを分割して パーティション と呼ばれる疑似デバイスに割り当てることが可能になります。パーティションに は raw インタフェースと ブロックモードインタフェースがあります。インタ フェースは全般的に wd(4)sd(4) の記述と同様です。

起動中に SCSI アダプタがプローブされるとき、デバイスを検出するために SCSI バスが調べられます。検出されたもののうち ‘Optical ()’ かつ ‘removable ( 取り外し可能)’ 型と返されるどのデバイスも od ドライバに接続されます。 FreeBSD 2.1.5 以降では、最初に検出されたデバイスは od0 として接続され、次 は od1 と以下同様に続きます。デバイスがどの od ユニットとして稼働すべきか を指定できます。カーネルの構成についての詳細は scsi(4) を参照してくださ い。 FreeBSD 2.2 から od ドライバは ‘Optical ()’ かつ ‘removable (取り 外し可能)’ 型だけでなく、 ‘Direct (直接)’ かつ ‘removable (取り外し可能)’ 型と返されるどんなデバイスユニットも操作できます。

パーティショニング

od ドライバはディスクに対し、2 つの階層のパーティションが可能です。 1 つ 目の層は ‘‘スライス層’’ と呼ばれるもので、 FreeBSD 領域とその他のオペレー ティングシステムで使用されている領域を分離するために用います。 2 つ目は、 disklabel(5) による純然たる 4.4BSD のパーティショニング機構であり、 FreeBSD スライスを独自のファイルシステムに細分するために用います。詳細 は、 fdisk(8) および disklabel(8) をそれぞれ参照してください。

初期化されていないディスクが開かれると、ディスク全体まで及ぶ架空の FreeBSD スライスによって、スライステーブルが初期化されます。同様に、初期 化されていない (あるいは非 FreeBSD) スライスが開かれると、ドライブおよび スライス全体を含む単一 ‘c’ パーティションによって返されるパラメータで、 ディスクラベルが初期化されます。

カーネルの設定

設定ファイルに od デバイスが 1 つだけ必要です。すなわちデータ構造は、ディ スクが SCSI バス上に検出されたとき、動的に割り当てられます。

IOCTL

次の ioctl(2) コールは他のディスクだけでなく、光ディスクにも対応します。 これらはヘッダファイル ⟨sys/disklabel.h⟩ に定義されています。

       DIOCSBAD

通常、ディスク上の不良ブロックマッピングシステムを設定する ために用いられます。 SCSI ドライバは独自の不良ブロックマッ ピングを組み込むので、これは実装されていません。しかし、将 来的には、 SCSI 不良ブロックマッピングへの ’対処的な (kludged)’ インタフェースとして実装されるかもしれません。

DIOCGDINFO
ドライブ用のディスクラベルの内部コピーを、カーネルをから読 み込みます。ドライブが初期化されていない時は、架空のディス クラベルであるかもしれません。この場合は、SCSI 調査 (inquiry) コマンドで読み込んだ情報を含みます。そして起動時 に表示される情報と同じになります。

DIOCSDINFO
ドライバに新しいディスクラベルを与えます。ドライバは、新し いディスクラベルをディスクに書き込みません。

DIOCWLABEL
ディスク上のディスクラベルに対するドライバのソフトウェアラ イトプロテクトを、有効または無効にします。

DIOCWDINFO
ドライバに新しいディスクラベルを与えます。ドライバは、新し いディスクラベルをディスクに書き込もうとします。

次の ioctl(2) コールは他のディスクだけでなく、光ディスクにも対応します。 これらはヘッダファイル ⟨sys/cdio.h⟩ に定義されています。

CDIOCEJECT
光ディスクを排出します。

CDIOCALLOW
ドライブに対し、光ディスクの手動排出を許可します。

CDIOCPREVENT
ドライブに対し、光ディスクの手動排出を禁止します。

加えて、 scsi(4) の一般的な ioctl は od ドライバで使っても構いません。し かし 4 番目のパーティション (ディスク全体) だけは避けてください。

現在のところ、 od ドライバは 512, 1024, 2048 バイト/セクタのメディアに対 応しています。 raw およびブロックモードのデバイスにおける、非 512 バイト/ セクタのメディアへのアクセスは、各セクタサイズ境界線の開始位置と I/O サイ ズに関してのみ可能です。

関連ファイル

       /dev/rodu

raw モードの SCSI 光ディスクユニット u です。パーティショ ニングされていないデバイスとしてアクセスされます。
/dev/odusn
ブロックモードの SCSI 光ディスクユニット u スライス n で す。パーティショニングされていないデバイスとしてアクセスさ れます。
/dev/rodusn
raw モードの SCSI 光ディスクユニット u スライス n です。 パーティショニングされていないデバイスとしてアクセスされま す。
/dev/odup
ブロックモードの SCSI 光ディスクユニット u の最初の FreeBSD スライスのパーティション p です。
/dev/rodup
raw モードの SCSI 光ディスクユニット u の最初の FreeBSD ス ライスのパーティション p です。
/dev/odusnp
ブロックモードの SCSI 光ディスクユニット un 番目のスラ イスに存在するパーティション p です。
/dev/rodusnp
raw モードの SCSI光ディスクユニット un番目のスライスに 存在するパーティション pです。
/dev/rodu.ctl
scsi(8)で使われる制御デバイスユニット uです。

診断

ありません。

関連項目

fdisk(1),cd(4),scsi(4),sd(4),disklabel(5),disklabel(8)

作者

Shunsuke Akiyama <akiyama@jp.FreeBSD.org>

歴史

odドライバは FreeBSD 2.1.5で登場しました。

FreeBSD March 16, 1997 FreeBSD

スポンサーリンク