sd - SCSI
ディスクドライブのためのドライバ
#include <linux/hdreg.h> /* for HDIO_GETGEO */
#include <linux/fs.h> /* for BLKGETSIZE and BLKRRPART */
このブロックデバイス
(block device)
の名前は、次のような形式をとる:
sdlp, このうち、
l
は物理ドライブを意味する文字であり、
p
はその物理ドライブ上のパーティション
(partition)
を意味する数字である。
パーティションナンバー
p
がない場合は、そのデバイスファイルはドライブ全体をさす。
SCSI
ディスクはメジャーナンバー
8
を持ち、次のような形式のマイナーナンバー
を持つ。(16 *
drive_number) +
partition_number、 この
drive_number
は検出された物理ドライブの番号であり、
partition_number
は次のようになる:
- +3
- パーティション 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_GETGEO
- 次のような構造体を用いて
BIOS
のディスクパラメーターを返す:
struct hd_geometry {
unsigned char heads;
unsigned char sectors;
unsigned short cylinders;
unsigned long start;
};
- この構造体へのポインターが
ioctl(2)
へのパラメーターとして渡される。
- このパラメーターに入れられて返される情報は、
DOS
によって理解されるような
ドライブのジオメトリである。
このジオメトリは、ドライブの物理的なジオメトリ
ではない。
この情報はドライブのパーティションテーブルを作成する時に用いられる、
また、 fdisk(1), efdisk(1), lilo(1)
の適切な操作に必要である。
もし、ジオメトリの情報が得られなければ、それぞれの値全てにゼロが入れ
られて返される。
- BLKGETSIZE
- セクタの数で表したデバイスのサイズが返される。
ioctl(2)
のパラメーターは、
long
へのポインターでなければならない。
- BLKRRPART
- 強制的に、SCSI
ディスクのパーティションテーブルの再読み込みを行う。
パラメーターは必要ない。
- SCSI の ioctl(2)
操作も同様にサポートされる。
ioctl(2) の
パラメーターが必要で、そのパラメーターが
NULL の場合は、 ioctl(2)
はエラー EINVAL
で失敗する。
-
/dev/sd[a-h]
- デバイス全体
-
/dev/sd[a-h][0-8]
- 個々のブロックパーティション
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。