Particionar un SSD con sfdisk

0

He estado tratando de particionar este SSD (Samsung 840) muy bien por un tiempo. Quiero asegurarme de que las páginas se alineen con las páginas SSD para limitar la cantidad de escrituras. Encontré este sitio que recomienda usar 224 cabezas y 56 sectores.

Ya tengo un volcado de sfdisk que quiero replicar, pero muevo un poco la partición inicial (creo). Se mide en sectores y me estoy confundiendo bastante moviéndome entre sectores, cabezas, cilindros y todo (mi compañero me dio el 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

Así que he estado lanzando ese diseño al disco usando sudo sfdisk -H224 -S56 /dev/sdb < sfdisk.dump. Pero en el enlace antes mencionado, el tipo dice que se asegura de que su partición comience en el cilindro 2 para asegurarse de que esté en el límite de un cilindro.

Traté de verificar mi cilindro de arranque y está en 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

También quiero cambiar el tamaño de algunas de las particiones, pero la conversión entre cilindros, culatas, sectores y megabytes parece inconsistente y me estoy volviendo loco. He buscado mucho en Google pero todavía no puedo entender cómo construir las particiones o calcular el geometrías

También probé la otra forma de configurar sfdisk:

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

E intenté subir los megabytes para, y verificar, la posición inicial del cilindro, pero solo puedo llegar a 6 megabytes antes de que tenga un shitfit ( Warning: given size (5005) exceeds max allowable size (6)) y todavía estoy en el cilindro cero.

Disco de geometría hombre! ¿¡Como funciona!?

hay una manera mas facil? ¿Alguien tiene alguna fórmula para calcular entre los tipos de geometría? ¿Alguien sabe un buen tutorial para vincularme? ¿Alguien ha hecho esto antes por su SSD?

Saludos cordiales

hamstar
fuente

Respuestas:

2

En un disco MBR, los valores del sector se almacenan de dos maneras:

  • En formato CHS: el formato de cilindro / cabeza / sector (CHS) utiliza una codificación extraña de 24 bits para mantener los valores del sector. Haciendo un poco de matemática, 2 ^ 24 * 512 bytes = 8GiB. (De hecho, el verdadero límite de CHS es un poco más bajo porque no todos los valores de CHS son legales). Tenga en cuenta que eso es 8 GiB , que está muy por debajo de la capacidad total de la mayoría de los discos modernos (incluso SSD), lo que significa que la codificación de CHS es inútil y por lo tanto ignorado para la mayoría de los propósitos hoy. Por lo tanto, centrarse en los valores de CHS y en las geometrías de CHS (que determinan los valores máximos de cilindro, culata y sector para un disco) es una pérdida de tiempo.
  • En formato LBA: el formato de direccionamiento de bloque lineal (o lógico) (LBA) utiliza un único valor de 32 bits para especificar sectores. 2 ^ 32 * 512 bytes = 2TiB, de ahí el límite de 2TiB en MBR. Esto es lo suficientemente grande para todos los SSD modernos e incluso para muchos discos giratorios modernos; pero los discos modernos más grandes requieren el nuevo sistema de partición GPT, que utiliza valores LBA de 64 bits y no valores CHS.

En el pasado, las particiones se alineaban con los valores de los cilindros porque esto podría mejorar el rendimiento en los discos de esa época (en la década de 1980 y quizás a principios de la década de 1990). Desde entonces, la alineación del cilindro ha sido común por costumbre y por compatibilidad con versiones anteriores, pero en realidad no ha servido para nada. Hoy en día, la alineación del cilindro es perjudicial porque las tecnologías más nuevas (SSD, ciertos tipos de matrices RAID y discos de formato avanzado) funcionan mejor con la alineación en algunos múltiples sectores de potencia de 2 (8, 512, 2048, etc.), pero los detalles difieren de un tipo de disco a otro. La mayoría de las herramientas de partición modernas alinean al menos la primera partición en un múltiplo de 2048 sectores de forma predeterminada porque esto funciona bien para la mayoría de los discos modernos; sin embargo, algunos SSD requieren valores aún mayores, como 4096 o incluso 8192. Si puede obtener los detalles técnicos de su SSD, puedes aprender cuáles son sus requisitos. De lo contrario, intente utilizar un valor de alineación predeterminado de 2048, 4096 u 8192.

Mi dominio con sfdiskes limitado (nunca me ha gustado su conjunto de comandos), por lo que no puedo decir con precisión cómo hacerlo con la herramienta, excepto para dar consejos generales: especifique los puntos de inicio y finalización de la partición en sectores, no en cilindros. Si está configurando las cosas manualmente, saque una calculadora de bolsillo (o use una aplicación de escritorio de calculadora) y asegúrese de que las particiones comiencen con valores que sean divisibles por el valor de alineación que usa. Los puntos finales no son importantes, excepto en la medida en que probablemente desee que terminen un sector antes del siguiente punto de inicio, para minimizar el espacio desperdiciado.

Ambos partedy gdiskhacen más para imponer la alineación de la partición que lo que hace fdisk(y sospecho sfdisk). Por lo tanto, es posible que desee considerar el uso de una de estas herramientas, pero gdisksolo funciona en discos GPT, por lo que debe usarlo solo si desea cambiar a GPT desde MBR.

Rod Smith
fuente
¡Qué terrible crisis, muchas gracias! Sin embargo, una pregunta, ¿el valor de alineación que estoy usando para dividir sería el recuento de sectores (por ejemplo, 56 en mi ejemplo anterior)?
hamstar
Cuando se usan los modos CHS obsoletos, generalmente la primera partición comienza en el valor del sector, pero las particiones posteriores comienzan en el valor de las cabezas del sector *. La idea es comenzar la mayoría de las particiones en el primer sector del primer plato, con la excepción de la primera partición, que se inicia antes para minimizar el espacio desperdiciado al comienzo del disco. Sin embargo, todo esto es bastante confuso, y como CHS ahora es casi inútil, es mejor usar herramientas que usen direcciones LBA de forma nativa e ignoren los valores de CHS.
Rod Smith el