it-swarm-es.tech

Encontrar el tamaño del sector de una partición

Respondí esta pregunta , suponiendo que el *.img el archivo tenía un tamaño de sector de 512.

¿Cómo consulto un dispositivo, o la imagen de un dispositivo, para encontrar el tamaño de sector correcto?

26
Stefan

fdisk -l (que es L inferior en el parámetro) le mostrará, entre otra información, el tamaño del sector también.

$ Sudo fdisk -l

Disk /dev/sda: 150.3 GB, 150323855360 bytes
255 heads, 63 sectors/track, 18275 cylinders, total 293601280 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot      Start         End      Blocks   Id  System
   /dev/sda1   *          63      208844      104391   83  Linux
   /dev/sda2          208845   209712509   104751832+  83  Linux

Esto muestra que el tamaño del sector es de 512 bytes.

EDITAR: versiones más nuevas de fdisk por ejemplo, fdisk (del paquete util-linux 2.20.1), también le mostrará los tamaños de sector lógico y físico. Por ejemplo, salida relevante de una "unidad WDC WD10EFRX 1TB":

Disk /dev/sdn: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
28
Patkos Csaba

De acuerdo con documentación para los archivos de cola sysfs :

# cat /sys/block/sda/queue/hw_sector_size
512
27
Anthony Ananich

Uno puede usar el comando file(1) y hacer los cálculos él mismo. Esto funciona incluso si solo tiene una imagen del sistema FAT.

Por ejemplo:

$ Sudo file -s /dev/sda5 | tr , '\n'
/dev/sda5: DOS/MBR boot sector
 code offset 0x58+2
 OEM-ID "mkfs.fat"
 sectors/cluster 64
 reserved sectors 64
 Media descriptor 0xf8
 sectors/track 63
 heads 255
 hidden sectors 147632128
 sectors 536870912 (volumes > 32 MB)
 FAT (32 bit)
 sectors/FAT 65536
 serial number 0x9f981691
 unlabeled

Esta partición tiene 64 sectores por clúster. El número de bytes en cada sector es 512, ya que es el predeterminado, por lo tanto, el tamaño del clúster es de 32 KB.

Tenga en cuenta que el tamaño del sector puede ser mayor que 512 (la especificación FAT lo limita a 4096 pero puede ir más alto). Cuando eso suceda, verá un campo adicional "Bytes/sector" en la salida.

$ Sudo mkfs.fat -S 4096 -s 16 /dev/sda5
mkfs.fat 4.1 (2017-01-24)

$ Sudo file -s /dev/sda5 | tr , '\n'
/dev/sda5: DOS/MBR boot sector
 code offset 0x58+2
 OEM-ID "mkfs.fat"
 Bytes/sector 4096
 sectors/cluster 16
 Media descriptor 0xf8
 sectors/track 63
 heads 255
 hidden sectors 147632128
 sectors 67108864 (volumes > 32 MB)
 FAT (32 bit)
 sectors/FAT 4096
 serial number 0xb059d826
 label: unlabeled

Haga el partido nuevamente, 4096 bytes × 16 sectores = 64 KiB por cluster.

2
Tankman六四

gracias a las respuestas anteriores, sobre fdisk que muestra el tamaño del sector físico y sobre la ruta/sys ... pero una nota ... de Lucas en el libro Absolute FreeBSD ... casi todos los discos duros mienten sobre el tamaño del sector, por lo que en el caso de Linux

/sys/block/sda/queue/hw_sector_size

siempre, por lo que puedo entender, mostrar 512 para un mejor rendimiento, es bueno tener en cuenta el tamaño del sector físico, real, que realmente se usa en la lógica del hardware. Se mostró por fdisk, y se presenta en

cat /sys/block/sdc/queue/physical_block_size 
4096
0
Hex