Suporte para usar 2 TB HDD

1
Estou trabalhando em fornecer suporte para HDD mais de 2 TB na placa TI8107. De acordo com o cabeçalho da GPT, no LBA1 com offset de 0x28 obtemos o primeiro setor utilizável e o LBA1 com offset de 0x30 obtemos o último setor utilizável / LBA. No caso de HDD menor que 2TB, iam obtendo o número correto do último setor utilizável / LBA, mas no caso de HDD > 2TB, o valor presente no deslocamento LBA1 0x30 é diferente daquele do número total real de setores. Verificado usando hexdump do HDD.

Ex: Para HDD de 4 TB, O número total de setores é: 7814037168 (que é 3.63TB) Mas o valor lido no deslocamento LBA1 0x30 é: 3519069838 (que é 1.63TB). O tamanho total é 3.63TB, mas quando lido do cabeçalho mostra 1.63TB (que é 3.63TB - 2TB).

Por que está mostrando a memória restante após 2TB? Como posso ler o número real de setores para o HDD > 2TB.

Para 6 TB:

saída de df -h:

root@dm814x-evm:~# df -h
Filesystem                Size      Used    Available Use% Mounted on�
/dev/sda1                 1.5T      207.5M  1.4T      0%   /media/hdd1-vid

saída do gdisk / dev / sda:

root@dm814x-evm:~# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.0
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p

Disk /dev/sda: 11721045168 sectors, 5.5 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 2156215D-E245-46E0-8F4D-1E35C3B227A2
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 11721045134
Partitions will be aligned on 2048-sector boundaries
Total free space is 6108 sectors (3.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      4194304000   2.0 TiB     8300  Linux filesystem
   2      4194306048      8388608000   2.0 TiB     8300  Linux filesystem
   3      8388610048     11721045134   1.6 TiB     8300  Linux filesystem

Command (? for help): 
    
por swapneel mashalkar 31.08.2015 / 08:43

1 resposta

1

O corpo principal da sua pergunta refere-se a um disco de 4 TB, mas sua saída gdisk mostra um disco de 6 TB. Não vejo problema com a saída gdisk , a menos que o disco fosse realmente um modelo de 4 TB. Se você está tendo problemas com seu disco de 4 TB, por favor, mostre a saída gdisk dele. (Além disso, adicione quatro espaços ao início de cada linha de saída para preservar a formatação colunar. Editei sua pergunta para adicioná-la à sua saída gdisk e df ). Volte e edite sua pergunta com a nova saída , se necessário.

É possível que você esteja interpretando mal as estruturas de dados da GPT. Lembre-se de que os ponteiros da GPT têm 64 bits (8 bytes) de tamanho, não os ponteiros de 32 bits (4 bytes) do MBR. Usar gdisk ou algum outro software de particionamento bem testado para interpretar suas estruturas de dados reduzirá muito as chances de erros humanos na interpretação desses indicadores. Usar a opção v em gdisk para verificar as estruturas de dados da GPT em busca de sanidade vale a pena se você suspeitar de problemas. Este comando irá produzir um relatório sobre quaisquer problemas encontrados pelo gdisk .

Outra possibilidade é que você tenha um driver com uma limitação de 32 bits. Isso é comum no Windows e especialmente no Windows de 32 bits. Esses drivers geralmente truncam os ponteiros de 64 bits para 32 bits, o que geralmente resulta em um disco parecendo "perder" 2TiB de espaço (ou 4TiB para discos com mais de 4TiB, ou valores teoricamente altos para discos ainda maiores). Se você tiver esse problema, a solução é substituir o driver com bugs por um driver sem bugs. Em alguns casos, reparos de disco serão necessários, se os dados foram gravados no disco enquanto o driver com bugs estava em uso.

Um comentário final: não confunda terabytes (TB, 1000 ^ 4 bytes) com tebibytes (TiB, 1024 ^ 4 bytes) ou equivalentes para outros prefixos (GB-vs-GiB, etc.). Você parece estar usando "TB" para se referir a ambas as unidades de medida. Essa era uma prática comum há uma década ou mais, mas à medida que o tamanho dos discos aumentava, ficava cada vez mais confuso. Consulte esta página para saber mais sobre este assunto.

    
por 01.09.2015 / 15:46