fd -
フロッピーディスク(floppy
disk)デバイス
フロッピードライブはメジャーナンバー
2
を持つブロックデバイスである。
一般的には、このデバイスのオーナーは
root:floppy (オーナー
root、グループ floppy) で、
モード 0660
(グループの構成員であることによってアクセスチェックが行われる)、
または、モード 0666
(誰でもアクセスできる)
である。
マイナーナンバーはデバイスのタイプ、ドライブの番号、
コントローラーの番号を符号化したものである。それぞれのデバイスタイプ
(これは、密度 (density)
とトラックカウント
(track count) の組合せである)
は、ベースとなるマイナーナンバーを持っている。このベースナンバーにその
コントローラー上のドライブナンバーを加える。もし、そのドライブが
2 番目の
コントローラーに接続されているなら、さらに
128
を加える。次のデバイス
テーブルでは、
n
はドライブ番号を表す。
[訳注]
以下のテーブルに用いられる用語は表の整形の関係から原文のままとなっている。
Name (名前)、Capac. (容量)、Cyl.
(シリンダ数)、Sect.
(セクター数)、 Heads.
(ヘッダー数)、Base minor #
(ベースマイナーナンバー)。
警告:
ドライブがサポートしているよりも多くのトラックを持つように
フォーマットした場合、ドライブに機械的なダメージを与えることになる
かもしれない。
通常の 40/80
よりも多くのトラックがサポートされているかどうかを
一度試すだけではドライブにダメージを与えることはないはずだが、
ダメージを与えないという保証はない。
確信がない場合は、そのような使い方が行われないように、
そうしたフォーマットのドライブエントリーを作成しないこと。
メディアのフォーマットと容量を自動的に検出する
ドライブ非依存のデバイスファイル:
5.25 インチ倍密度 (double-density)
デバイスファイル:
名前 |
容量 |
シリンダー |
セクター |
ヘッド |
ベース |
|
KiB |
|
|
|
マイナー番号 |
|
fdnd360
|
360 |
40 |
9 |
2 |
4 |
5.25 インチ高密度 (high-density)
デバイスファイル:
名前 |
容量 |
シリンダー |
セクター |
ヘッド |
ベース |
|
KiB |
|
|
|
マイナー番号 |
|
fdnh360
|
360 |
40 |
9 |
2 |
20 |
fdnh410
|
410 |
41 |
10 |
2 |
48 |
fdnh420
|
420 |
42 |
10 |
2 |
64 |
fdnh720
|
720 |
80 |
9 |
2 |
24 |
fdnh880
|
880 |
80 |
11 |
2 |
80 |
fdnh1200
|
1200 |
80 |
15 |
2 |
8 |
fdnh1440
|
1440 |
80 |
18 |
2 |
40 |
fdnh1476
|
1476 |
82 |
18 |
2 |
56 |
fdnh1494
|
1494 |
83 |
18 |
2 |
72 |
fdnh1600
|
1600 |
80 |
20 |
2 |
92 |
3.5 インチ倍密度 (double-density)
デバイスファイル:
名前 |
容量 |
シリンダー |
セクター |
ヘッド |
ベース |
|
KiB |
|
|
|
マイナー番号 |
|
fdnu360
|
360 |
80 |
9 |
1 |
12 |
fdnu720
|
720 |
80 |
9 |
2 |
16 |
fdnu800
|
800 |
80 |
10 |
2 |
120 |
fdnu1040
|
1040 |
80 |
13 |
2 |
84 |
fdnu1120
|
1120 |
80 |
14 |
2 |
88 |
3.5 インチ高密度 (high-density)
デバイスファイル:
名前 |
容量 |
シリンダー |
セクター |
ヘッド |
ベース |
|
KiB |
|
|
|
マイナー番号 |
|
fdnu360
|
360 |
40 |
9 |
2 |
12 |
fdnu720
|
720 |
80 |
9 |
2 |
16 |
fdnu820
|
820 |
82 |
10 |
2 |
52 |
fdnu830
|
830 |
83 |
10 |
2 |
68 |
fdnu1440
|
1440 |
80 |
18 |
2 |
28 |
fdnu1600
|
1600 |
80 |
20 |
2 |
124 |
fdnu1680
|
1680 |
80 |
21 |
2 |
44 |
fdnu1722
|
1722 |
82 |
21 |
2 |
60 |
fdnu1743
|
1743 |
83 |
21 |
2 |
76 |
fdnu1760
|
1760 |
80 |
22 |
2 |
96 |
fdnu1840
|
1840 |
80 |
23 |
2 |
116 |
fdnu1920
|
1920 |
80 |
24 |
2 |
100 |
3.5 インチ拡張密度 (extra-density)
デバイスファイル:
名前 |
容量 |
シリンダー |
セクター |
ヘッド |
ベース |
|
KiB |
|
|
|
マイナー番号 |
|
fdnu2880
|
2880 |
80 |
36 |
2 |
32 |
fdnCompaQ
|
2880 |
80 |
36 |
2 |
36 |
fdnu3200
|
3200 |
80 |
40 |
2 |
104 |
fdnu3520
|
3520 |
80 |
44 |
2 |
108 |
fdnu3840
|
3840 |
80 |
48 |
2 |
112 |
fd
スペシャルファイルはフロッピーディスクドライブにローモード
(raw mode)で アクセスする。
fd では、次の
ioctl(2)
コールがサポートされている。
- FDCLRPRM
- ドライブのメディア情報(ドライブ内のディスクのジオメトリ情報)をクリアす
る。
- FDSETPRM
- ドライブのメディア情報をセットする。メディア情報はメディアが交換された
時、失われる。
- FDDEFPRM
- ドライブのメディア情報(ドライブ内のディスクのジオメトリ情報)をセットす
る。メディア情報はメディアが交換された時でも失われない。これは(メディ
ア情報の)自動検出を無効にする。自動検出を再び有効にするために、
FDCLRPRM
を発行しなければならない。
- FDGETDRVTYP
- ドライブのタイプ(名前引数)を返す。それぞれのドライブタイプに適合するよ
うにフォーマットを行うため、
FDGETDRVTYP
はフォーマットをサポート
する最も古いドライブタイプのために適切な名前を返す。
- FDFLUSH
- 与えられたドライブのバッファーキャッシュを無効にする。
- FDSETMAXERRS
- エラーの報告、操作の中止、再試行、リセット、セクター毎の読み込みのため
のエラー閾値をセットする。
- FDSETMAXERRS
- 現在のエラー閾値を得る。
- FDGETDRVTYP
- ドライブの内部名を得る。
- FDWERRORCLR
- 書き込みエラーの統計をクリアーする。
- FDWERRORGET
- 書き込みエラーの統計を読む。統計は、書き込みエラーの合計、最初の書き込
みエラーはどのディスクのどこで起こったか、そして、最後の書き込みエラー
がどのディスクのどこで起こったかという情報を含んでいる。ディスクはディ
スクの交換ごとに増えるジェネレーション番号によって識別される。
- FDTWADDLE
- 数ミリ秒の間ドライブのモーターのスイッチを切る。これはディスクのセクター
同士が接近しすぎているディスクのアクセスのために必要であろう。
- FDSETDRVPRM
- ドライブの様々なパラメーターをセットする。
- FDGETDRVPRM
- (FDSETDRVPRM
を使ってセットした)パラメーターを読みだす。
- FDGETDRVSTAT
- キャッシュされているドライブの状態(ディスクの交換、ライトプロテクトな
ど)を得る。
- FDPOLLDRVSTAT
- ドライブをポーリングして、その状態を返す。
- FDGETFDCSTAT
- フロッピーコントローラーの状態を得る。
- FDRESET
- フロッピーコントローラーを信頼できる状態にリセットする。
- FDRAWCMD
- フロッピーコントローラーに低レベルのコマンド(raw
command)を送る。
より正確な情報のためには、マニュアルページ
floppycontrol(1)
だけでなく、インクルードファイル
<linux/fd.h> と
<linux/fdarg.h>
も参照のこと。
/dev/fd*
様々なディスクのタイプで様々な種類のフォーマットの読み書きが許されている。
しかし、小さすぎるセクター間ギャップでフォーマットされたフロッピーでは、
トラック全体のアクセスに数秒必要になるため、性能が低下することだろう。
これを防ぐためには、インターリーブドフォーマット
(interleaved format)
を用いればよい。
Apple II や Macintosh
コンピュータで使用されている、
GCR (group code recording)
を使ってフォーマットされたフロッピー
(800k ディスク)
を読むことはできない。
ハードセクター型のフロッピーの読み込みはサポートされていない
(ハードセクター型のフロッピーでは、セクター毎にホール
(hole) が一つあり、
少しずれた位置にインデックスホールが存在する)。
これは、昔の 8
インチフロッピーで一般的に使われていた方式である。
chown(1),
floppycontrol(1),
getfdprm(1),
mknod(1),
superformat(1),
mount(8),
setfdprm(8)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。