我打算为闪存可移动设备编写一个磁盘分区创建程序,主要由基于SCSI的I/O控制并通过LBA地址访问。在闪存存储分区表上如何确定磁盘几何形状(C/H/S)?
作为参考,我正在研究由Ubuntu的磁盘实用程序进行分区和格式化的SD卡上的分区表。
我在Linux中使用'parted'软件的'unit'命令来观察CHS单元和字节单元的卡参数。
下面是一个8GB的SD卡15122432个部门LBA的:
[email protected]:~ $ 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
下面是一个4GB的SD卡7585792个部门LBA的:
(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)。他们有关系吗?
但是如何确定这些值?这些依赖于操作系统或文件系统吗?
我投票结束这个问题作为题外话,因为这更适合Unix和Linux堆栈交换! –