Particionando um SSD com sfdisk

0

Eu tenho tentado particionar este SSD (Samsung 840) bem por um tempo agora. Eu quero ter certeza de que as páginas se alinham com as páginas SSD para limitar a quantidade de gravações. Eu encontrei este site que recomenda o uso de 224 cabeças e 56 setores.

Eu já tenho um dump sfdisk que eu quero replicar, mas movo a partição inicial um pouco (eu acho). É medido em setores e estou ficando bastante confuso, movendo-se entre setores, cabeças, cilindros e tudo (meu companheiro me deu o número inicial de 2048):

# partition table of /dev/sdb
unit: sectors

/dev/sdb1 : start=     2048, size=   995329, Id=83, bootable
/dev/sdb2 : start=   997377, size= 10242047, Id=83
/dev/sdb3 : start= 11239424, size= 24611328, Id=83
/dev/sdb4 : start= 35850752, size= 67223296, Id= 5
/dev/sdb5 : start= 35850808, size= 10235848, Id=83
/dev/sdb6 : start= 46086712, size= 56987336, Id=83

Então eu tenho jogado esse layout no disco usando sudo sfdisk -H224 -S56 /dev/sdb < sfdisk.dump . Mas no link acima mencionado o cara diz que ele garante que sua partição começa no cilindro 2 para garantir que ele esteja em um limite de cilindro.

Eu tentei checar meu cilindro inicial e ele está no 0: (

$ sudo sfdisk -l -uC /dev/sdb        

Disk /dev/sdb: 18689 cylinders, 224 heads, 56 sectors/track
Units = cylinders of 6422528 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdb1   *      0+     79-     80-    497664+  83  Linux
/dev/sdb2         79+    895     817-   5121023+  83  Linux
/dev/sdb3        896    2857    1962   12305664   83  Linux
/dev/sdb4       2858    8216    5359   33611648    5  Extended
/dev/sdb5       2858+   3673     816-   5117924   83  Linux
/dev/sdb6       3674+   8216    4543-  28493668   83  Linux

Eu também quero redimensionar algumas das partições, mas a conversão entre cilindros, cabeças, setores e megabytes parece inconsistente e está fazendo a minha cabeça. Eu fiz um monte de googling, mas ainda não consigo entender como construir as partições ou calcular as geometrias.

Eu também tentei a outra maneira de configurar o sfdisk:

echo "2,512,83,*
,5000,83
,10000,83
,,5
,6000,83
,6000,83
"|sudo sfdisk -uM -H224 -S56 /dev/sdb

E tentei aumentar os megabytes para - e verificar a posição do cilindro inicial - mas só posso chegar a 6 megabytes antes que ele tenha um shitfit ( Warning: given size (5005) exceeds max allowable size (6) ) e eu ainda estou no cilindro zero.

Homem de geometria de disco! Como isso funciona?

Existe um caminho mais fácil? Alguém tem alguma fórmula para calcular entre os tipos de geometria? Alguém sabe um bom tutorial para me ligar? Alguém já fez isso antes para o seu SSD?

Atenciosamente

    
por hamstar 27.08.2013 / 08:03

1 resposta

2

Em um disco MBR, os valores do setor são armazenados de duas maneiras:

  • No formato CHS - O formato cilindro / cabeça / setor (CHS) usa uma codificação estranha de 24 bits para manter os valores do setor. Fazendo um pouco de matemática, 2 ^ 24 * 512 bytes = 8GiB. (Na verdade, o verdadeiro limite de CHS é um pouco menor do que isso, porque nem todos os valores de CHS são legais.) Observe que 8 GiB , que está bem abaixo da capacidade total dos discos mais modernos (mesmo SSDs) , o que significa que a codificação CHS é inútil e, portanto, ignorada para a maioria dos propósitos hoje. Focar nos valores CHS e nas geometrias CHS (que determinam os valores máximos de cilindro, cabeçote e setor para um disco) é, portanto, uma perda de tempo.
  • No formato LBA - O formato Linear (ou Lógico) Endereçamento de Blocos (LBA) usa um único valor de 32 bits para especificar setores. 2 ^ 32 * 512 bytes = 2TiB, daí o limite de 2TiB no MBR. Isso é grande o suficiente para todos os SSDs modernos e até mesmo muitos discos giratórios modernos; mas os discos modernos maiores exigem o novo sistema de particionamento GPT, que usa valores de LBA de 64 bits e nenhum valor de CHS.
No passado, as partições eram alinhadas em valores de cilindros, porque isso poderia melhorar o desempenho em discos daquela época (na década de 1980 e talvez no início dos anos 90). Desde então, o alinhamento de cilindros tem sido comum apenas por hábito e por retrocompatibilidade, mas não serviu realmente a nenhum propósito. Atualmente, o alinhamento do cilindro é prejudicial porque as tecnologias mais recentes (SSDs, certos tipos de matrizes RAID e discos Advanced Format) funcionam melhor com o alinhamento em alguns múltiplos de potência de 2 de setores (8, 512, 2048 etc.), mas o detalhes diferem de um tipo de disco para outro. A maioria das ferramentas modernas de particionamento alinha, pelo menos, a primeira partição em um múltiplo de 2048 setores por padrão, porque isso funciona bem para a maioria dos discos modernos; no entanto, alguns SSDs exigem valores ainda maiores, como 4096 ou até 8192. Se você puder obter os detalhes técnicos do seu SSD, poderá saber quais são seus requisitos. Caso contrário, tente usar um valor de alinhamento padrão de 2048, 4096 ou 8192.

Minha proficiência com sfdisk é limitada (nunca gostei do conjunto de comandos), por isso não posso dizer com precisão como fazer isso com a ferramenta, exceto para dar conselhos gerais: Especifique os pontos inicial e final da partição em setores, não em cilindros. Se você estiver configurando as coisas manualmente, puxe uma calculadora de bolso (ou use um aplicativo de desktop da calculadora) e assegure-se de que as partições iniciem em valores que sejam divisíveis pelo valor de alinhamento que você usa. Os pontos finais não são importantes, exceto na medida em que você provavelmente quer que eles terminem um setor antes do próximo ponto inicial, a fim de minimizar o desperdício de espaço.

Tanto o parted quanto o gdisk fazem mais para impor o alinhamento da partição do que o fdisk (e eu suspeito que o sfdisk ). Assim, convém considerar o uso de uma dessas ferramentas, mas o gdisk funciona apenas nos discos GPT, portanto, você deve usá-lo somente se quiser mudar para o GPT do MBR.

    
por 27.08.2013 / 19:20