Si je comprends bien, chaque fichier sur un système d'exploitation de type Unix a un numéro d'inode (qui peut être affiché avec "ls -i"), et chaque inode est une liste de blocs de disque qui contiennent les données réelles d'un fichier.
Existe-t-il une commande Linux qui prend un nom de fichier comme argument et affiche la liste des blocs de disque vers lesquels l'inode de ce fichier pointe?
PS Le système de fichiers en question est ext3.
linux
unix
filesystems
ext3
Mike
la source
la source
File not found by ext2_lookup
. Il est donc préférable d'utiliser la notation inode pour l'argument de stat. Utilisezls -i
pour obtenir le numéro d'inode d'un fichier, puis appelez debugfs avec ce numéro dans '<>' au lieu de / path / to / file. Par exemple:# debugfs -R "stat <1234567>" /dev/sda2
path/to/file
ne devrait pas fonctionner dans tous les cas? Ce qui medebugfs ..... /dev/fs_blockdev
déroute, c'est que via il n'y a dans ma compréhension qu'un seul système de fichiers en considération, et tous ces fichiers à l'intérieur de ce système sont accessibles via leur chemin ou via leur inode, qu'avez-vous voulu exprimer?debugfs -R "stat /home/myuser/foo.txt" /dev/sda5
entraîne une erreur. Mais invoquer desdebugfs -R "stat /path/on/rootfs" /dev/sda3
œuvres.sudo
, sinon un message inutile s'affichera.Regardez la syntaxe de "debugfs", et en particulier 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 à partir d'un script.
la source
Un moyen simple d'obtenir la liste des blocs (sans avoir à lire depuis la partition comme dans les
debugfs
réponses) est d'utiliser l'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 qui prend en charge l'bmap
opération, pas seulement ext3.Une alternative plus récente (et plus efficace) est l'
FIEMAP
ioctl, qui peut également renvoyer des informations détaillées sur les extensions (utiles pour ext4).la source
Je ne travaillerai pas sur zfs, mais sur ext4, btrfs, (v) fat, etc.
man 8 hdparm
:la source
Au moins sur certaines machines Linux ... "ls -s" pourrait fournir ce que vous cherchez.
Edit: mon mauvais, je vois que vous cherchez une liste des blocs eux-mêmes, pas un nombre d'entre eux.
la source
e2fsck -b 32768 / dev / hda1 je pense que vous pouvez essayer cela ou si vous cherchez plus de docx sur le même, vous pouvez vérifier ce qui suit
http://www.linux-tutorial.info/modules.php?name=MContent&pageid=97
la source