SD(4)

名前
sd - SCSI ディスクドライブのためのドライバ

書式
#include <linux/hdreg.h>

設定
このブロックデバイス(block device)の名前は、次のような形式をとる: sdlp, このうち、 l は物理ドライブを意味する文字であり、 p はその物理ドライブ上のパーティション(partition)を意味する数字である。 パーティションナンバー p がない場合は、そのデバイスファイルはドライブ全体をさす。 SCSI ディスクはメジャーナンバー 8 を持ち、次のような形式のマイナーナンバー を持つ。(16 * drive_number) + partition_number、 この drive_number は検出された物理ドライブの番号であり、 partition_number は次のようになる:

パーティション 0 はドライブ全体
パーティション 1 〜 4 は DOS の "基本(primary)"パーティション
パーティション 5 〜 8 は DOS の "拡張(extended)"(または、"論理 (logical)")パーティション。

例えば、 /dev/sda はメジャーナンバー 8 マイナーナンバー 0 を持ち、システムの最初の SCSI ドライブ全体を参照する。そして、 /dev/sdb3 はメジャーナンバー 8 マイナーナンバー 19 を持ち、システムの二つ目の SCSI ドライブの三番目の DOS "基本"パーティションを参照する。 現在は、ブロックデバイスだけが提供されている。ロー・デバイス(raw device) はまだ実装されていない。

説明
次の ioctl が提供されている:

HDIO_REQ
    次のような構造体を用いてBIOS のディスクパラメータを返す:
        struct hd_geometry {
              unsigned char heads;
              unsigned char sectors;
              unsigned short cylinders;
              unsigned long start;
        };
    この構造体へのポインタが ioctl(2) への引数として渡される。 この引数に入れられて返される情報は、 DOS によって理解されるような ドライブのジオメトリである。 このジオメトリは、ドライブの物理的なジオメトリ ではない。 この情報はドライブのパーティションテーブルを作成する時に用いられる、ま た、 fdisk(1),efdisk(1), and lilo(1). の適切な操作に必要である。 もし、ジオメトリの情報が得られなければ、それぞれの値全てにゼロが入れ られて返される。

BLKGETSIZE
    セクタの数で表したデバイスのサイズが返される。 ioctl(2) の引数は、 long へのポインタでなければならない。

BLKRRPART
    強制的に、SCSI ディスクのパーティションテーブルの再読み込みを行う。引 数は必要ない。 SCSI(4) の ioctl も同様にサポートされる。もし、 ioctl(2) のパラメタが要求され、それが NULL なら ioctl(2) は -ENINVAL を返す。

ファイル
/dev/sd[a-h]: ドライブ全体
/dev/sd[a-h][0-8]: 個々のブロックパーティション

翻訳者
石川 睦 <ishikawa@linux.or.jp>