我将为闪存可移动设备编写一个磁盘分区创建程序,主要由基于 SCSI 的 I/O 控制并使用 LBA 地址访问。
作为参考,我正在研究由 Ubuntu 的磁盘实用程序分区和格式化的 SD 卡上的分区表。
我在Linux中使用'parted'软件的'unit'命令来观察卡的CHS单位和字节单位的参数。
以下是针对具有 15122432 个 LBA 扇区的 8GB 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
以下是具有 7585792 个 LBA 扇区的 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
根据我的观察,不同容量的 SD 卡上的磁盘几何值 (C/H/S) 是不同的,并且几何值似乎与分区结束的结束 CHS 地址相关联。好像..
带有以 CHS 元组结尾的分区的卡是 (c, h, s),其磁盘几何结构将是 (c + 1 / h + 1 / s + 1)。他们有关系吗?
但是这些值是如何确定的呢?这些是否取决于操作系统或文件系统?