ハードディスクアクセス方式「CHS」と「LBA」の違い
昨日購入。「1.2ディスクとファイルにまつわるあれこれ」から、以下まとめ。
コンピュータがハードディスク上の読み書きしたいデータへアクセスする方式にCHS方式とLBA方式がある。
現在のハードディスクへのアクセス方式はLBA(Logical Block Addressing:論理ブロックアドレス)方式が一般的。
- CHS方式
- CHS方式のCHSはシリンダ(Cylinder)、ヘッド(Head)、セクタ(Sector)の頭文字が語源。
- データを読み書きする1つのセクタ(物理的なディスクアクセスの最小単位)はCHS値(何番目のシリンダ、何番目のヘッド、何番目のセクタにアクセスするか:「ジオメトリ情報」とも呼ぶ)を指定して決定する。
- CHS方式では、物理的なハードディスクの構造を意識して指定する必要がある。実際にはLinuxのデバイス・ドライバがCHS値を計算して、ディスク装置とデータのやりとりをするので、ユーザがこの値を意識することはない。ただしディスクパーティションの作成時にはユーザが意識する必要がある。
- 昔のMS-DOSの仕様では、ディスクパーティションをシリンダ単位で分ける必要があった。シリンダはディスクの外側から番号付けされており、ディスクの外側から順に第1パーティション、第2、第3...とパーティションが作られる。
- fdisk -lコマンドで何番目のシリンダから何番目のシリンダまでが第何パーティションかというパーティションの区切り情報(パーティションテーブルのリスト)が得られる。
- LBA方式
Ubuntu 2.6.32-41-generic でのfdiskコマンドhelp
>uname -a Linux MyUbuntu 2.6.32-41-generic #90-Ubuntu SMP Tue May 22 11:31:25 UTC 2012 i686 GNU/Linux >fdisk --help Usage: fdisk [options]change partition table fdisk [options] -l list partition table(s) fdisk -s give partition size(s) in blocks Options: -b sector size (512, 1024, 2048 or 4096) -c switch off DOS-compatible mode -h print help -u give sizes in sectors instead of cylinders -v print version -C specify the number of cylinders -H specify the number of heads -S specify the number of sectors per track