A unidade GPT formatada em 4 TB no Windows aparece como 2 TB no Linux

3

Eu tenho um drive de 4 TB conectado a um controlador Dell H200. A unidade foi formatada no Windows usando GPT e mostra corretamente 4 TB no Windows.

A mesma unidade no mesmo computador inicializado no Linux (Ubuntu 16.04) não é totalmente reconhecida como tendo 4 TB.

Executando gdisk /dev/sdb -l resultados em

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Warning! Secondary partition table overlaps the last partition by
3519068194 blocks!
You will need to delete this partition or resize it in another utility.
Disk /dev/sdb: 4294967295 sectors, 2.0 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): F8EA0B25-8D84-4BBB-88EB-BA90615C5318
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 4294967261
Partitions will be aligned on 8-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34          262177   128.0 MiB   0C01  Microsoft reserved ...
   2          264192      7814035455   3.6 TiB     0700  Basic data partition

Observe o "2.0 TiB" em negrito acima

Eu também não consigo montar nada disso. A montagem / dev / sdb1 resulta em um erro "mount: wrong fs type ..." e a montagem de / dev / sdb2 resulta em

mount: special device /dev/sdb2 does not exist

No começo eu pensei que era um problema de firmware com o controlador H200, mas isso não explica por que ele funciona no Windows e não no Linux, e porque não pode ser montado. Como posso fazer com que o Linux reconheça a unidade? Preciso reformatar a unidade usando o Linux? Como posso garantir que o sistema operacional possa ver a unidade adequadamente no futuro?

ATUALIZAÇÃO:

Bem, eu me sinto um pouco bobo agora. Acontece que foi um problema com o firmware do controlador H200 o tempo todo.

Primeiramente, tentei atualizar o firmware do controlador H200 e agora gdisk retorna corretamente:

Disk /dev/sdb: 7814037168 sectors, 3.6 TiB

e / dev / sdb2 são montados sem problemas. O que eu estou tentando entender agora é porque o disco estava lendo corretamente no Windows (7) e não no Linux com firmware H200 desatualizado.

    
por SkyNT 04.08.2016 / 23:21

1 resposta

3

A situação parece-me clara, menos clara é por isso que ocorreu. Seus estados de saída:

Warning! Secondary partition table overlaps the last partition by 3519068194 blocks!

O GPT tem duas tabelas de partição, uma primária localizada no início do disco e uma segunda (ou de backup) localizada nos últimos 33 setores (16K) do disco, consulte o sempre útil wiki do Arch Linux sobre isso.

Ocorre freqüentemente que as pessoas não deixam espaço para o PT de backup, quando particionam manualmente um disco, o que leva a reclamações de utilitários de disco sobre a falta de uma tabela de partição secundária e um aviso para redimensionar a última partição encolhendo-a por 33 setores.

Você tem exatamente o mesmo caso, exceto que o seu PT de backup chega a 3.5x10 ^ 9 setores (\ aproximadamente 1.8TB) muito cedo. Em outras palavras, o utilitário gdisk vê um PT de backup mal colocado e acha que esse é o fim do disco. Daí o tamanho de disco menor (2TiB em vez de seu 4TB) e a impossibilidade de montar uma partição que se estenda muito além da borda do disco (presumida).

Como isso aconteceu? Eu só posso especular, mas é bastante peculiar que o backup PT apareça no final de precisamente 2TiB, o limite superior teórico (ver a caixa mais à direita neste artigo da Wikipedia ) para sistemas de arquivos FAT32 (com setores 512B). O código do sistema de arquivos da saída de gdisk , 0x0700 , não é muito informativo: de acordo com o livro de Rod Smith ,

Windows uses a single GUID code for all its data partitions, be they FAT or NTFS

que é essencialmente o código 0x0700. Daí eu não posso saber se é FAT32 ou NTFS, mas se fosse FAT32 poderíamos entender o enigma em que você se encontra. Mais problemático é a presença de uma partição ( sdb2 ) maior do que o disco disponível,

... last usable sector is 4294967261

enquanto o setor final de sdb2 é 7814035455 e a mensagem de erro

 mount: special device /dev/sdb2 does not exist

Provavelmente, estamos vendo o resultado de várias tentativas de particionamento, com alguns erros / bugs / whatchamacallit.

Além disso, gdisk é inflexível quanto às suas escolhas:

    You will need to delete this partition or resize it in another utility.

Qualquer opção implica perda de dados. Não tenho ideia do que está no seu disco, seja ele novo ou cheio de dados pessoais de longa data, então não sei exatamente o que sugerir. É claro, fazer backup de tudo (do Windows), reformatar o disco (no Linux) e testar o disco no Windows antes de armazenar qualquer coisa nele parece um curso de ação razoável. Além disso, sugiro que você escolha um sistema de arquivos como o NTFS, que não tem limitação do tamanho do disco (ou, pelo menos, nenhum que seja relevante para um disco de 4 TB), novamente veja isto na caixa mais à direita deste artigo da Wikipedia .

    
por 05.08.2016 / 09:08