フラッシュストレージのパーティションテーブルに基づいてディスク構造(C / H / S)を決定するには?

フラッシュストレージのパーティションテーブルに基づいてディスク構造(C / H / S)を決定するには?

私は主にSCSIベースのI / Oによって制御され、LBAアドレスを介してアクセスされるフラッシュリムーバブルデバイス用のディスクパーティションジェネレータを作成します。

参考までに、Ubuntuディスクユーティリティを使用してSDカードにパーティションテーブルを分割してフォーマットする方法を見ています。

私は、Linuxで「parted」ソフトウェアの「unit」コマンドを使用して、CHS単位とバイト単位でカードのパラメータを表示しました。

以下は、LBA 15122432セクタを持つ8 GB SDカードです。

pi@raspberrypi:~ $ sudo parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit chs print
Model: Generic CRM01 SD Reader (scsi)
Disk /dev/sda: 1020,130,11
Sector size (logical/physical): 512B/512B
BIOS cylinder,head,sector geometry: 1020,239,62.  Each cylinder is 7587kB.
Partition Table: msdos
Disk Flags:

Number  Start  End          Type     File system  Flags
 1      0,1,0  1019,238,61  primary  ext3

(parted) unit b print
Model: Generic CRM01 SD Reader (scsi)
Disk /dev/sda: 7742685184B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End          Size         Type     File system  Flags
 1      31744B  7738552319B  7738520576B  primary  ext3

以下は、LBAセクター7585792を備えた4GB SDカードです。

(parted) unit chs print
Model: Generic CRM01 SD Reader (scsi)
Disk /dev/sda: 1019,71,29
Sector size (logical/physical): 512B/512B
BIOS cylinder,head,sector geometry: 1019,120,62.  Each cylinder is 3809kB.
Partition Table: msdos
Disk Flags:

Number  Start  End          Type     File system  Flags
 1      0,1,0  1018,119,61  primary  ext3

(parted) unit b print
Model: Generic CRM01 SD Reader (scsi)
Disk /dev/sda: 3883925504B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End          Size         Type     File system  Flags
 1      31744B  3881656319B  3881624576B  primary  ext3

私の観察によると、ディスク構造(C / H / S)は容量の異なるSDカードとは異なり、構造はパーティションの終わりにあるシャットダウンCHSアドレスに関連しているようです。そうだ…

パーティション・カードの終わり CHS タプルは (c, h, s) であり、ディスク構造は (c+1/h+1/s+1) です。関係ありますか?

しかし、これらの値はどのように決定されますか?これらのオペレーティングシステムまたはファイルシステムは依存関係ですか?

ベストアンサー1

1980年代には、パーソナルコンピュータのBIOSが正しく機能するためにハードドライブの構造を知る必要がありました。ユーザーは正確なシリンダー、ヘッド、セクターの数を入力する必要があります。

ある時点で(とIDEインターフェース?このトピックの記憶は偽物です。)ディスクが自分の幾何学的構造をコンピュータに報告できるようになりました。

1990年代初頭から半ばまで、ディスクファームウェアは独自のディスク構造を管理しました。 BIOSはC / H / S値を使用してディスクサイズを計算するため、まだC / H / S値が必要です。ただし、C/H/S 値のセグメンテーションは任意の場合があります。したがって、ディスクから報告されたC / H / S値はディスクの実際のジオメトリとは無関係ですが、許容範囲内に収まり、正しいフルサイズを提供します。

シリンダとヘッドの概念を適用しない記憶媒体も、いくつかの値を補償して正しいフルサイズを得る。

おすすめ記事