Řešení 1:
Můžete použít nástroj "debugfs" k zobrazení informací o souboru na příkazovém řádku nebo interactivley.buď použijte:
# debugfs /dev/<spartition>
# stat /path/to/file
nebo
# debugfs -R "stat /path/to/file" /dev/<partition>
například:
# debugfs -R "stat /etc/passwd" /dev/sda5
Inode: 435914 Type: regular Mode: 0644 Flags: 0x0
Generation: 979004472 Version: 0x00000000
User: 0 Group: 0 Size: 1577
File ACL: 0 Directory ACL: 0
Links: 1 Blockcount: 8
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x4a2d6f78 -- Mon Jun 8 23:07:20 2009
atime: 0x4a2d6f79 -- Mon Jun 8 23:07:21 2009
mtime: 0x4a2d6f78 -- Mon Jun 8 23:07:20 2009
Size of extra inode fields: 4
BLOCKS:
(0):1767438
TOTAL: 1
Řešení 2:
Podívejte se na syntaxi pro „debugfs“ a konkrétně na příkaz „stat“. To vám ukáže seznam datových bloků používaných souborem. Parametry můžete předat "debugfs" s argumentem "-f" a volat jej ze skriptu.
Řešení 3:
Jednoduchý způsob, jak získat seznam bloků (aniž byste museli číst z oddílu jako v debugfs
odpovědi) je použít FIBMAP
ioctl. Nevím o žádném příkazu, který by to udělal, ale je velmi jednoduché jej napsat; rychlé vyhledávání Google mi dalo příklad použití FIBMAP, který dělá přesně to, co chcete. Jednou z výhod je, že bude fungovat na jakémkoli souborovém systému, který podporuje bmap
operace, nejen ext3.
Novější (a efektivnější) alternativou je FIEMAP
ioctl, který může také vrátit podrobné informace o rozsahu (užitečné pro ext4).
Řešení 4:
hdparm --fibmap /path/to/filename
Nebudu pracovat na zfs, ale budu na ext4, btrfs, (v)fat atd
man 8 hdparm
:
--fibmap
Při použití to musí být jediný daný příznak. Jako parametr vyžaduje cestu k souboru a vytiskne seznam rozsahů zařízení (rozsahů sektorů) obsazených tímto souborem na disku. Čísla sektorů jsou uvedena jako absolutní čísla LBA, odkazovaná na sektor 0 fyzického zařízení (ne oddíl nebo souborový systém). Tyto informace pak mohou být použity pro různé účely, jako je zkoumání stupně fragmentace větších souborů nebo určování vhodných sektorů, které mají být záměrně poškozeny během testovacích postupů vkládání chyb.