tamanho do bloco físico é 2048 bytes, mas o Linux diz que é 512

0

Eu sei que essa mensagem de erro está assombrando muitas pessoas que tentam formatar uma unidade USB. Mas quando eu procuro, tudo o que eu recebo são "instruções". Mas eu realmente quero entender a formação técnica sobre esse assunto.

Eu li muito sobre setores, cilindros, blocos, etc. Eu entendi tudo isso, então acho que tenho um sólido background agora.

Em todos os tutoriais que li, ninguém mencionou "tamanho de bloco físico". Mas pelo que eu entendi até agora eu iria traduzi-lo em "tamanho de setor no dispositivo". Correto?

Eu acho (não encontrei confirmação em lugar algum para isso) que o "descritor de dispositivo USB" é armazenado em algum lugar pelo "controlador". Não faz parte do chip flash NAND. Eu imagino que funciona assim: meu sistema operacional envia algum tipo de solicitação GET para o chip controlador do USB. O chip controlador retorna o "descritor do dispositivo". Esse "descritor de dispositivo" contém informações como tamanho do setor E do fornecedor (= tamanho do bloco físico).

É assim que meu sistema operacional sabe sobre o tamanho do bloco físico. Mas como na terra seria "o Linux afirma que é 512" ??? Onde essas informações são armazenadas, como o Linux chega a essa afirmação?

    
por user3182532 28.07.2018 / 14:50

2 respostas

0

Acho que você está confundindo as características físicas do chip flash com as configurações do sistema operacional e do sistema de arquivos.

O chip flash terá algum tamanho de bloco ou setor, que é a menor unidade de memória que pode ser apagada e gravada eletricamente. Um tamanho de bloco de 2048 bytes não é incomum. Novamente, esta é uma característica física do circuito flash ... semelhante aos setores de um disco rígido magnético rotativo.

O tamanho do bloco do sistema de arquivos é a menor unidade de memória que o sistema operacional usará para armazenar um arquivo ou parte de um arquivo. Isso geralmente é especificado quando a mídia (por exemplo, unidade flash) é formatada primeiro e só pode ser alterada se você reformatar a mídia de armazenamento. Se você escolher um tamanho de bloco pequeno (e 512 bytes é um tamanho de bloco pequeno), menos memória será desperdiçada ao armazenar arquivos. Por outro lado, escolher um tamanho de bloco grande significa que há menos fragmentação de um arquivo grande quando ele é armazenado. Normalmente, um tamanho de bloco maior (digamos 4096 bytes) é usado quando o volume tem uma capacidade maior.

    
por 28.07.2018 / 15:22
0

Visão geral rápida (se você realmente quiser entender todos os detalhes, terá que ler os padrões, que estão disponíveis on-line):

O protocolo USB para dispositivos de armazenamento é mais ou menos idêntico aos comandos que foram usados para dispositivos SCSI . Então você tem comandos para ler e escrever blocos e um monte de outros comandos. Entre eles está READ CAPACITY(16) (o 16 significa que o comando tem 16 bytes, uma variante anterior tinha apenas 10 bytes), que retorna, entre outras informações, tanto o tamanho dos blocos lógicos quanto quantos blocos lógicos estão lá por físico bloco.

Então é assim que o sistema operacional sabe sobre o tamanho do bloco lógico e físico. As informações de resposta são armazenadas no firmware do controlador, não no meio de armazenamento.

Agora, pode acontecer que, para discos rígidos USB, que consistem em uma unidade SATA e um chip ponte USB-para-SATA, esse chip de ponte apresentar erros e não encaminhar corretamente a resposta do comando READ CAPACITY (Eu tenho uma unidade com um tal chip, e eu confirmei uma resposta diferente via SATA para o mesmo disco). Nesse caso, mesmo que o disco rígido afirme corretamente ter um tamanho de bloco físico igual a 2048, o chip da ponte manipulará essa resposta para que o sistema operacional recupere um tamanho idêntico de bloco físico e lógico. Então essa é a razão usual para a situação quando o tamanho do bloco relatado está errado.

Para pen drives USB, a situação é novamente diferente: não há uma unidade SATA atrás de uma ponte, o controlador e a ROM flash do pen drive formam uma unidade compacta e, se o controlador está mentindo sobre o tamanho do bloco físico, é mentir sobre isso - nada que se possa fazer. Na verdade, você nem estará mentindo agora, porque enquanto a ROM flash possui blocos de apagamento que justificam um "tamanho de bloco físico", você não sabe o tamanho deles.

Não ficou claro se você está falando sobre discos rígidos USB ou flash ROMs USB - para os discos rígidos modernos, pode-se supor que eles têm um tamanho de bloco físico de 2048, para ROMs não se pode supor nada, então a sua afirmação "tamanho do bloco físico é 2048" nesse caso é um pouco questionável, a menos que você possa explicar como você sabe disso.

E finalmente: Um "descritor de dispositivo USB" faz parte do próprio protocolo USB e é completamente diferente.

    
por 28.07.2018 / 23:19

Tags