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