Velikost sektoru zařízení není uložena v MBR.
Příkazy uživatelského prostoru jako fdisk použijte BLKBSZGET a BLKSSZGET ioctl s k načtení velikosti sektorů z disků. Těch ioctl s jsou zpracovávány ovladači v jádře, které získávají příslušné informace ze samotných jednotek.
(O příslušném ioctl není mnoho dokumentace s; musíte zkontrolovat zdrojový kód jádra.)
Relevantní informace můžete zobrazit pomocí jiných nástrojů, které se dotazují přímo na jednotky, například hdparm . Na malém SSD, hdparm -I říká mi
[...]
Logical Sector size: 512 bytes
Physical Sector size: 512 bytes
Logical Sector-0 offset: 0 bytes
[...]
cache/buffer size = unknown
Form Factor: 2.5 inch
Nominal Media Rotation Rate: Solid State Device
[...]
Na velkém rotujícím disku se 4K sektory dostanu místo
[...]
Logical Sector size: 512 bytes
Physical Sector size: 4096 bytes
Logical Sector-0 offset: 0 bytes
[...]
cache/buffer size = unknown
Form Factor: 3.5 inch
Nominal Media Rotation Rate: 5400
[...]
Je tam pár otázek, snažil jsem se dohledat odpověď na "Kde fdisk najde velikost sektoru disku?" Nejlepší, co jsem našel, je, že získává informace z ioctl .
ioctl informace na Wikipedii a manuálové stránce Linuxu.
odkaz na zdrojový kód fdisk