512 bytes no es realmente el tamaño de sector predeterminado. Depende de tu hardware.
Puede mostrar qué tamaños de sector físico / lógico informa su disco a través del /sys
pseudo sistema de archivos, por ejemplo:
# cat /sys/block/sda/queue/physical_block_size
4096
# cat /sys/block/sda/queue/logical_block_size
512
¿Cuál es la diferencia entre esos dos valores?
- El
physical_block_size
es el tamaño mínimo de un bloque de la unidad es capaz de escribir en una operación atómica.
- El
logical_block_size
es el tamaño más pequeño de la unidad es capaz de escribir (véase la documentación del núcleo Linux).
Por lo tanto, si tiene una unidad de 4k, tiene sentido que su pila de almacenamiento (sistema de archivos, etc.) use algo igual o mayor que el tamaño del sector físico.
Esos valores también se muestran en versiones recientes de fdisk
, por ejemplo:
# fdisk -l /dev/sda
[..]
Sector size (logical/physical): 512 bytes / 4096 bytes
En las distribuciones actuales de Linux, los programas (que deberían preocuparse por el tamaño óptimo del sector) mkfs.xfs
elegirán el tamaño óptimo del sector de forma predeterminada (por ejemplo, 4096 bytes).
Pero también puede especificarlo explícitamente a través de una opción, por ejemplo:
# mkfs.xfs -f -s size=4096 /dev/sda
O:
# mkfs.ext4 -F -b 4096 /dev/sda
En cualquier caso, la mayoría de las mkfs
variantes también mostrarán el tamaño de bloque utilizado durante la ejecución.
Para un sistema de archivos existente, el tamaño del bloque se puede determinar con un comando como:
# xfs_info /mnt
[..]
meta-data= sectsz=4096
data = bsize=4096
naming =version 2 bsize=4096
log =internal bsize=4096
= sectsz=4096
realtime =none extsz=4096
O:
# tune2fs -l /dev/sda
Block size: 4096
Fragment size: 4096
O:
# btrfs inspect-internal dump-super /dev/sda | grep size
csum_size 4
sys_array_size 97
sectorsize 4096
nodesize 16384
leafsize 16384
stripesize 4096
dev_item.sector_size 4096
Al crear el sistema de archivos en una partición, otra cosa a verificar es si la dirección de inicio de la partición está realmente alineada con el tamaño del bloque físico. Por ejemplo, mire la fdisk -l
salida, convierta las direcciones de inicio en bytes, divídalas por el tamaño del bloque físico; el recordatorio debe ser cero si las particiones están alineadas.
mkfs.*
deberían usar automáticamente el tamaño de sector óptimo. Puede hacer algunasmkfs.*
pruebas e inspeccionar el resultado (ya sea en la salida detallada de mkfs o en un programa de utilidad fs relacionado).