Como a geometria do disco (C / H / S) foi determinada na tabela de partição do armazenamento de memória flash?

0

Vou escrever um programa criador de partições de disco para dispositivos removíveis de memória flash, principalmente controlado por E / S baseada em SCSI e acessado com o endereço LBA.

Para referência, estou pesquisando a tabela de partições nos cartões SD que foram particionados e formatados pelo utilitário de disco do Ubuntu.

Eu usei o comando 'unit' do software 'parted' no Linux para observar os parâmetros dos cartões com a unidade CHS e a unidade de byte.

O seguinte é para um cartão SD de 8GB com 15122432 setores do LBA:

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

O seguinte é para um cartão SD de 4GB com 7585792 setores do 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

A partir da minha observação, os valores da geometria do disco (C / H / S) são diferentes no cartão SD de capacidade diferente, e os valores da geometria parecem estar associados ao endereço CHS final do final da partição. É como parece ..

A carta com a partição que termina com a tupla CHS é (c, h, s), cuja geometria de disco será (c + 1 / h + 1 / s + 1). Eles estão relacionados?

Mas como os valores são determinados? Isso depende do sistema operacional ou do sistema de arquivos?

    
por jl81 10.08.2017 / 07:06

2 respostas

3

Nos anos 80, o BIOS em um PC precisava conhecer a geometria de um disco rígido para operá-lo corretamente. Os usuários precisavam digitar o número correto de cilindros, cabeças e setores.

Em algum momento (com a introdução da interface IDE ? Minha memória é um pouco confusa tópico), os discos tornaram-se capazes de reportar sua geometria ao computador.

No início e meados dos anos 90, o firmware do disco gerenciava a geometria do disco por conta própria. O BIOS ainda precisava ter um valor para C / H / S, porque usava isso para calcular o tamanho do disco. Mas a divisão em valor C / H / S pode ser arbitrária. Portanto, os discos informavam valores de C / H / S que não tinham nada a ver com a geometria real do disco, mas ajustavam o intervalo permitido e davam o tamanho total correto.

Um meio de armazenamento ao qual o conceito de cilindros e cabeçotes não se aplica também resultaria em algum valor que resultasse no tamanho total correto.

    
por 11.08.2017 / 03:10
0

Eu poderia ter resolvido o meu problema. O que confuso é como o programa de partição decide a geometria de um dispositivo ao criar tabelas de partição. Mas depois de alguns experimentos, descobri que não há um geométrico fixo para um dispositivo de memória flash (na verdade, ele não tem um disco físico), um programa de partição pode decidir o número do cabeçalho e os setores por trilha, para calcular o CHS de início da partição e terminar o CHS na tabela de partições. Não importa como a geometria seja, o sistema operacional pode encontrar o limite da partição pelas informações fornecidas pelo CHS.

    
por 16.08.2017 / 11:00