Estoy particionar un disco duro SSD no con separaron porque quiero una tabla de particiones GPT.
parted /dev/sda mklabel gpt
Ahora, estoy tratando de crear las particiones correctamente alineadas, así que utilizo el siguiente comando para saber dónde comienza el primer sector:
parted /dev/sda unit s p free
Disk /dev/sda: 488397168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
34s 488397134s 488397101s Free Space
Podemos ver que comienza en el sector 34 (ese es el valor predeterminado cuando se usa esta tabla de particiones).
Entonces, para crear la primera partición que probé:
parted /dev/sda mkpart primary 63s 127s
para alinearlo en el sector 64 ya que es un múltiplo de 8 pero muestra:
Advertencia: la partición resultante no está alineada correctamente para un mejor rendimiento.
Los tamaños de sector lógico y físico en mi disco duro son 512 bytes:
cat /sys/block/sda/queue/physical_block_size
512
cat /sys/block/sda/queue/logical_block_size
512
¿Cómo creo particiones correctamente alineadas? ¿Qué estoy haciendo mal?
parted /dev/sda mkpart primary 64s 128s
(en caso de que comience en 1) pero devuelve la misma advertencia.Respuestas:
Para alinear la partición con
parted
usted puede usar la--align
opción. Los tipos de alineación válidos son:Otro consejo útil es que puede establecer el tamaño con porcentajes para alinearlo. Comienza en 0% y termina en 100%. Por ejemplo:
parted -a optimal /dev/sda mkpart primary 0% 4096MB
fuente
0% 100%
? De donde4096MB
viene'0%'
comillas entre comillas para que mi shell ejecutara el comando correctamente.print
usa kB como 1000 bytes ...Mi solución ha sido usar gdisk que puede realizar la alineación de particiones automáticamente en 2048 sectores (1024 KB) de forma predeterminada, aunque se puede cambiar en el menú experto.
fuente
Del Arch Wiki :
Al crear una partición, Parted puede advertir sobre una alineación incorrecta de la partición, pero no sugiere una alineación adecuada. Por ejemplo:
La advertencia significa que la partición
start
no está alineada.Ingrese
Ignore
para continuar de todos modos , imprima la tabla de particiones en sectores para ver dónde comienza y elimine / vuelva a crear la partición con el sector de inicio redondeado a potencias crecientes de 2 hasta que se detenga la advertencia. Como ejemplo, en una unidad flash con 512B sectores, Parted quería que las particiones comenzaran en sectores que eran un múltiplo de 2048, que es una alineación de 1 MB.Además, justo encima de esta sección, afirman que las unidades binarias IEC más precisas de KiB, MiB, GiB, etc., son aceptables para las unidades, así como los KB, MB, GB, etc., menos precisos.
Personalmente, mi comando exacto que resolvió esto fue:
No se quejó, supongo que quería alineaciones de 1 MB.
fuente
Una corrección menor. Según tengo entendido, los discos GPT ya no tienen tipos de partición, todos son "primarios". El comando 'mkpart primary' no crea una partición primaria como lo hace en los discos msdos, solo crea una partición llamada primaria. También puedes usar el comando
Esto puede causar confusión si intenta crear particiones lógicas, sé que lo hizo por mí.
No puede crear una partición llamada "lógica" dentro de una partición llamada "extendida".
fuente
La respuesta aceptada por @lik muestra cómo puede especificar la alineación preferida. Sin embargo, parted siempre usa esa alineación para verificar la partición resultante, pero no siempre crea particiones con esa alineación.
TL; DR: cuando 1MiB es la alineación óptima, especificar 0% funcionará para discos de 200MiB y mayores. Para discos más pequeños o una alineación más grande, especificar 0G podría funcionar donde 0% no funciona. Vea a continuación sobre por qué.
Parted intenta satisfacer las restricciones de alineación al crear una partición, pero tampoco se desviará demasiado de los valores solicitados. Lo que cuenta como "demasiado" depende de cómo haya especificado las posiciones.
Cuando especifica una posición inicial (o final) para el comando mkpart, genera internamente un rango de valores aceptables. Este rango se centra en el valor que especifique, y se extiende por igual en ambos lados por la mitad del tamaño de la unidad que usó (eso es lo que leí del código , los comentarios dicen un tamaño de unidad completo en ambos extremos).
Por ejemplo, cuando especifique "10M", intentará usar cualquier posición entre 9.5M y 10.5M. Lo mismo ocurre con los porcentajes, por lo que si especifica 0% utilizará cualquier valor entre 0% y 0.5% (obviamente, no es negativo).
Una excepción es que cuando se usa la potencia de dos unidades (como KiB para 1024, en lugar de K para 1000) se supone que está tratando de especificar una posición exacta y solo considera el valor exacto que especificó.
Dado que la alineación óptima generalmente parece estar alineada a 1MiB, las unidades K y M a menudo no tendrán suficiente espacio para alcanzar la alineación óptima. Especificar posiciones en G debería tener mucho espacio, pero el% también suele estar bien.
Entonces, esta es la razón por la cual el 0% generalmente funciona, aunque incluso eso tiene límites.
fuente