GNU/Linux >> Znalost Linux >  >> Linux

Jak zobrazím seznam datových bloků souboru v systému Linux?

Ř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.


Linux
  1. Jak zkopírovat oprávnění a vlastnictví souboru do jiného souboru v Linuxu

  2. Jak spravovat možnosti souborů Linux

  3. Jak najít soubor v Linuxu

  1. Jak přesunout soubor v Linuxu

  2. Jak přejmenovat soubor v Linuxu?

  3. Jak mohu sledovat data na sériovém portu v Linuxu?

  1. Jak používat příkaz Linux SS

  2. Jak vypsat seznam uživatelů v Linuxu

  3. Jak vytvořit soubor v Linuxu