No es posible hacerlo de la manera que usted describe. El tamaño del sector es una propiedad del dispositivo de bloque que los archivos no tienen inherentemente. Un archivo es solo una secuencia de una cierta cantidad de bytes, la forma en que se almacenan es un detalle de implementación...
Entonces, si desea un tamaño de sector específico, necesita un dispositivo de bloque. Y Linux ofrece dispositivos de bucle solo para este propósito, así que use losetup
para crear un dispositivo de bloque virtual respaldado por archivos con un tamaño de sector determinado.
Archivo de prueba:
# dd if=/dev/zero of=empty4k.img bs=4096 count=8192
Dispositivo de bucle normal:
# losetup --find --show empty4k.img
/dev/loop0
# fdisk -l /dev/loop0
Disk /dev/loop0: 32 MiB, 33554432 bytes, 65536 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Dispositivo de bucle de sectores de 4096 bytes:
# losetup --find --show --sector-size=4096 empty4k.img
/dev/loop1
# fdisk -l /dev/loop1
Disk /dev/loop1: 32 MiB, 33554432 bytes, 8192 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
En ambos casos, el archivo es completamente idéntico, la propiedad de tamaño de sector la proporciona la capa de dispositivo de bucle de bloque.
El bs
dado a dd
solo indica qué tan grande debe ser el búfer durante la creación del archivo. Al final, el archivo consiste en nada más que cero bytes, no hay información sobre la alineación.
Tienes que usar el parámetro específico para fdisk
, que es -b
, según el man
-página de fdisk(8)
:
-b, --sector-size sectorsize
Specify the sector size of the disk. Valid values are 512, 1024, 2048, and 4096. (Recent kernels know the sector size. Use this option only on old kernels or to override the kernel's
ideas.) Since util-linux-2.17, fdisk differentiates between logical and physical sector size. This option changes both sector sizes to sectorsize.