GNU/Linux >> Tutoriels Linux >  >> Linux

Comment lister les blocs de données d'un fichier sous Linux ?

Solution 1 :

Vous pouvez utiliser l'outil "debugfs" pour afficher les informations sur les fichiers sur la ligne de commande ou de manière interactive. Soit :

# debugfs /dev/<spartition>
# stat /path/to/file

ou

# debugfs -R "stat /path/to/file" /dev/<partition>

par exemple :

# 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

Solution 2 :

Regardez la syntaxe de "debugfs", et plus particulièrement la commande "stat". Cela vous montrera une liste des blocs de données utilisés par un fichier. Vous pouvez passer des paramètres à "debugfs" avec l'argument "-f" pour l'appeler depuis un script.

Solution 3 :

Un moyen simple d'obtenir la liste des blocs (sans avoir à lire depuis la partition comme dans le debugfs réponses) est d'utiliser le FIBMAP ioctl. Je ne connais aucune commande pour le faire, mais il est très simple d'en écrire une; une recherche rapide sur Google m'a donné un exemple d'utilisation de FIBMAP, qui fait exactement ce que vous voulez. Un avantage est qu'il fonctionnera sur n'importe quel système de fichiers prenant en charge le bmap opération, pas seulement ext3.

Une alternative plus récente (et plus efficace) est le FIEMAP ioctl, qui peut également renvoyer des informations détaillées sur les étendues (utile pour ext4).

Solution 4 :

hdparm --fibmap /path/to/filename

Je ne travaillerai pas sur zfs, mais sur ext4, btrfs, (v)fat, etc

man 8 hdparm :

--fibmap Lorsqu'il est utilisé, ce doit être le seul indicateur donné. Il nécessite un chemin de fichier en tant que paramètre et imprime une liste des extensions de périphérique (plages de secteurs) occupées par ce fichier sur le disque. Les numéros de secteur sont donnés sous forme de numéros LBA absolus, référencés à partir du secteur 0 de l'appareil physique (non la partition ou le système de fichiers). Ces informations peuvent ensuite être utilisées à diverses fins, telles que l'examen du degré de fragmentation de fichiers plus volumineux ou la détermination des secteurs appropriés à corrompre délibérément lors des procédures de test d'injection de fautes.


Linux
  1. Comment copier les autorisations et la propriété des fichiers dans un autre fichier sous Linux

  2. Comment gérer les capacités des fichiers Linux

  3. Comment trouver un fichier sous Linux

  4. Comment renommer un fichier sous Linux ?

  5. Comment puis-je surveiller les données sur un port série sous Linux ?

Comment vérifier la somme de contrôle sur Linux

Comment renommer un ou plusieurs fichiers sous Linux

Comment répertorier les packages installés sous Linux

Comment afficher les données d'un fichier texte sous Linux

Comment écrire des données dans un fichier sous Linux

Comment créer un lien symbolique vers un fichier sous Linux