J'ai répondu cette question , en supposant que le *.img
Le fichier avait une taille de secteur de 512
.
Comment interroger un périphérique ou l'image d'un appareil, pour trouver la bonne taille du secteur?
fdisk -l
(c'est inférieur L dans le paramètre) vous montrera, entre autres informations, la taille du secteur également.
$ 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
Cela montre que la taille du secteur est de 512 octets.
Modifier: Les versions plus récentes de fdisk
par ex., fdisk
(du package util-linux 2.20.1
), vous montrera également la taille du secteur logique et physique. Par exemple, la sortie pertinente d'un "lecteur WDC WD10EFRRX 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
Selon la Documentation pour les fichiers SYUE SYSFS :
# cat /sys/block/sda/queue/hw_sector_size
512
On peut simplement utiliser file(1)
commander et faire le calcul lui-même. Cela fonctionne même si vous n'avez qu'une image du système de graisse.
Par exemple:
$ 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
Cette partition comporte 64 secteurs par groupe. Le nombre d'octets de chaque secteur est de 512, car il s'agit de la valeur par défaut de 32 Ko.
Notez que la taille du secteur peut être supérieure à 512 (la spécification de la graisse le limite à 4096, mais vous pouvez aller plus haut). Lorsque cela se produit, vous verrez un champ supplémentaire de "octets/secteurs" dans la sortie.
$ 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
Faites la correspondance à nouveau, 4096 octets × 16 secteurs = 64 kib par groupe.
merci de répondre au-dessus des réponses, à propos de FDISK montrant la taille du secteur physique et de la piste de SYS/SYS ... Mais une note ... Par Lucas dans le livre Absolute Freebsd ... Presque tous les disques durs vont mentir sur la taille du secteur, donc dans le cas de Linux
/sys/block/sda/queue/hw_sector_size
pour autant que je puisse comprendre, montrera 512 pour une meilleure performance, il est bon de prendre en compte la taille du secteur physique, réelle, qui est vraiment utilisée dans la logique matérielle. Il montrait par fdisk, et il présente dans
cat /sys/block/sdc/queue/physical_block_size
4096