Como formatar um disco rígido de setor de 4k?

10

Comprei um disco rígido Seagate ST3000DM001 de 3 TB. Foi vendido dentro de um recinto. Formatei para o ext4, copiei alguns dados para ele e, em seguida, removi-o do gabinete e conectei-o diretamente à placa-mãe. Meus dados não eram visíveis para o sistema operacional (estava vendo uma partição desconhecida ~ 300GiB e o restante como espaço livre), então comecei a ler sobre os drives Advanced Format e > 2TB.

Conectei o disco com o USB novamente, copiei todos os dados e liguei novamente a sata. Eu usei o gparted para criar uma tabela de partição GPT (o utilitário de disco ubuntu não me deixou com Error synchronizing after initial wipe: Timed out waiting for object (udisks-error-quark, 0 ), criei uma grande partição ExtT de 3Tb, deixei o valor padrão Align to para MiB e formatado.

A unidade é reconhecida corretamente e montada corretamente. Os arquivos podem ser copiados de e para a unidade com sucesso.

No entanto:

O Gparted mostra o disco com 512k setores que eu sei que não são verdade 1

enquantocat/sys/block/sdb/queue/physical_block_sizereporta4096

Euencontreialgunsrelatosdequelibpartedtemumproblemacomsetoresnão-512k 2 e outros 3 que dizem que o alinhamento ao MiB é suficiente.

Relatórios parciais de que a unidade está alinhada quando escolho o mínimo:

(parted) align-check 
alignment type(min/opt)  [optimal]/minimal? min                           
Partition number? 1                                                       
1 aligned
(parted)    

A minha configuração está correta? Eu tenho penalidade de desempenho porque o disco está formatado com 512k setores, gParted está reportando valores falsos ou eu entendi tudo errado?

  1. link
  2. link
  3. link
por qwazix 27.08.2013 / 01:44

4 respostas

6

Ele informa 512 bytes porque esse é o tamanho do setor lógico para compatibilidade com sistemas operacionais mais antigos (Windows). (g) parted alinha partições para 1 MiB, o que é mais que suficiente para funcionar corretamente com drives usando 4k setores físicos, então está bem do jeito que está.

    
por psusi 28.08.2013 / 00:54
9

Primeiro, a maioria das unidades de Formato Avançado apresentam um tamanho de setor lógico de 512 bytes, embora o tamanho do setor físico seja de 4096 bytes (4KiB). Isso é feito por meio do malabarismo de dados no firmware da unidade e pode resultar em problemas de desempenho / a> se as partições não estiverem alinhadas corretamente. No entanto, é provável que essa não seja a fonte do seu problema, e seu foco no alinhamento de partições esteja equivocado. (Para ter certeza, o alinhamento da partição é importante; simplesmente não é a fonte do seu problema.)

Meu palpite (e é apenas um palpite) é que seu problema resulta da troca entre um gabinete USB e conexão direta do disco. Alguns gabinetes traduzem setores lógicos de 512 bytes no disco em setores lógicos de 4096 bytes apresentados ao computador - ou seja, o oposto do que o firmware em um disco de Formato Avançado faz. Não tenho certeza, mas suspeito que alguns gabinetes façam isso apenas em discos com mais de 2 TB. Os esquemas de particionamento MBR e GPT referem-se aos dados por números de setor, portanto, alterar o tamanho do setor invalida os dados de particionamento. Assim, se você preparar o disco em um compartimento USB que se traduza dessa forma e tentar usar o disco diretamente (ou vice-versa), você verá erros porque as partições (e até mesmo os dados de backup da GPT) não serão onde o computador espera que seja. Seria como dizer a uma pessoa com os olhos vendados para "andar 2 em frente", onde você quer dizer 2 pés, mas a pessoa pensa que você quer dizer 2 metros, e assim entra em uma parede.

A solução para este problema é preparar e usar o disco em um caminho - qualquer use o compartimento USB ou use um direto conexão, não ambos. Se ambos forem necessários por algum motivo, você precisará encontrar um gabinete que funcione sem aplicar esse tipo de tradução.

Para testar minha hipótese, você pode usar uma ferramenta (como parted ) que relata tamanhos de setor lógicos . Por exemplo:

sudo parted /dev/sda print
Model: ATA Hitachi HDP72505 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B

Eu omiti um monte de informações desta saída. O detalhe importante está na linha final mostrada aqui: Os tamanhos de setor lógico e físico são ambos 512 bytes. Se você executar este teste, reconecte o disco na outra direção e execute-o novamente, você pode comparar os resultados. Se o tamanho do setor lógico mudar dependendo de como você conecta o disco, então minha hipótese está correta e é a fonte do seu problema. Ou pelo menos, é um problema; pode haver outros também. Em particular, o erro Error synchronizing after initial wipe que você mencionou pode indicar outro problema. OTOH, isso poderia ser um efeito colateral de parted tentando ler dados de backup da GPT além do final do disco. De qualquer maneira, se você vir uma mudança no tamanho do setor lógico, deve resolver esse problema antes de lidar com qualquer outra coisa. Se você quiser reparticionar o disco, mas tiver problemas devido ao erro Error synchronizing , tente usar gdisk ou cgdisk (no pacote gdisk ) em vez de parted ou GParted; a família gdisk é mais robusta contra erros do que a família parted .

    
por Rod Smith 27.08.2013 / 18:54
4

Foram feitas alterações no kernel do Linux e nos utilitários para suportar unidades de Formato Avançado. Essas alterações garantem que todas as partições em unidades de Formato Avançado estejam alinhadas adequadamente nos limites do setor de 4K. O suporte a kernel para unidades Advanced Format está disponível nas versões de kernel 2.6.31 e posteriores. O suporte para o particionamento e formatação de unidades de Formato Avançado está disponível nos seguintes utilitários do Linux:

Fdisk: O GNU Fdisk é um utilitário de linha de comando que particiona discos rígidos. As versões 1.2.3 e posteriores suportam unidades de Formato Avançado.

Parted: o GNU Parted é um utilitário gráfico para particionar discos rígidos. As versões 2.1 e posteriores suportam unidades de Formato Avançado.

Os discos 4K nativos (4Kn) têm um tamanho de setor lógico de 4 KB. Sistemas operacionais modernos podem armazenar dados nesses discos, mas eles geralmente não podem inicializar a partir desses discos. Esses discos são geralmente drives externos com conexão USB.

Para criar uma partição usada como um dispositivo de armazenamento de mídia, pressione Ctrl + Alt + T no teclado para abrir o Terminal. Quando se abre, execute o (s) comando (s) abaixo:

sudo mkfs.ext4 -m 0 /dev/sdb1

A maioria dos discos 4k tem um tamanho de setor físico de 4096 bytes para que 3 TB possam caber nas placas, mas eles ainda têm 512B de tamanho do setor lógico para compatibilidade com OSs que esperam que um setor seja 512B. É por isso que quando você usa o comando print no parted para imprimir os detalhes, diz-se tamanho de setor lógico / físico 512B / 4096B. Isso é normal.

Essa "conversão" é feita pela inteligência no próprio disco e é normal. É assim que deve funcionar.

Se você não consegue ver toda a 3TB, verifique primeiro na BIOS que não está limitando o tamanho do disco. Talvez você precise de atualização do BIOS para suportar o disco.

Também usando o parted para criar partições a partir de 0, o que é um erro. Você precisa iniciar a primeira partição no setor 2048, que é equivalente a 1 MiB para que as partições no disco sejam alinhadas para um ótimo desempenho.

Portanto, altere a unidade para MiB, imprima os detalhes do disco que também imprimirão o tamanho do disco em MiB e crie a partição (se desejar apenas partição única) começando em 1 MiB e terminando no último MiB (ou antes o último).

Por exemplo, um disco de 3 TB deve ter, na realidade, algo como 2.861.022 MiB. Então, criar uma única partição abrangendo todo o disco em um dispositivo de disco chamado / dev / sdX seria como (substituir o X pela letra correta):

sudo parted /dev/sdX
unit MiB
mklabel gpt
print (to see the total size in MiB)
mkpart primary 1 2861022
quit

Se o tamanho do disco for menor que MiB, maior ou menor que 2861022 ajuste o local final.

É isso. Depois disso, crie o sistema de arquivos desejado na partição.

Fontes e leitura extra

unidades do setor 4K e Linux

Erro ao verificar e instalar unidades de 4k no Linux

Fóruns do Ubuntu

    
por Mitch 27.08.2013 / 10:38
0

Contanto que você alinhe suas partições em um múltiplo de 4KB, tudo bem. Você não precisa fazer nada de especial para unidades com setores físicos de 4KB.

O software de particionamento antigo alinhou as partições em vários setores de 63x512B, o que resultará em desempenho ruim se a unidade tiver setores físicos de 4KB, pois isso equivale a 31 e meio KiloBytes, NÃO é um múltiplo de 4KB.

Virtualmente nenhum software de particionamento disponível no Ubuntu fará isso (a menos que você o solicite de alguma forma). A maioria se alinhará a um múltiplo de 1MiB (setores de 2048x512B, que também são setores de 256x4KB) por padrão.

O que aconteceria se você não o alinhasse?

Se você não alinhar as partições a múltiplos de 4KB, o pior que vai acontecer é uma perda de desempenho (bastante significativa para arquivos pequenos). Drives com setores de 4KB tendem a emular setores de 512B para compatibilidade com sistemas existentes. Então eles funcionam perfeitamente bem se você os tratar como um drive de setor 512B. Mas quando você escreve em uma única área 512B, ela reescreve todo um setor de 4KB.

Portanto, por motivos de desempenho, é importante garantir que os clusters de 4KB que você usa em seu sistema de arquivos se alinhem aos setores de 4KB na unidade, de modo que uma única gravação de cluster não resulte na necessidade de gravar dois setores de 4KB na unidade .

    
por thomasrutter 01.02.2018 / 23:59