Je devais juste faire une chose similaire, alors j'ai pensé que je partagerais ma solution.
Vous pouvez voir à quelle partition appartient un décalage d'octet de lecteur en vérifiant les éléments 'offset' et 'size' de la sortie udisks --show-info; ex.
[email protected]:~$ sudo udisks --show-info /dev/sda1 | grep -i 'offset'
offset: 1048576
alignment offset: 0
Soustrayez ce décalage du décalage du disque pour obtenir le décalage d'octet dans la partition. Ainsi, le décalage de disque (10000000) dans /dev/sda est le décalage de partition (10000000 - 1048576) =8951424 dans /dev/sda1
Vous pouvez connaître la taille des blocs dans une partition à l'aide de la commande suivante :
[email protected]:~$ sudo tune2fs -l /dev/sda1 | grep -i 'block size'
Block size: 4096
Divisez le décalage d'octet de partition par la taille de bloc pour déterminer le décalage de bloc, dans ce cas 8951424 / 4096 =2185
Exécutez la commande suivante pour savoir quel inode occupe ce bloc :
[email protected]:~$ sudo debugfs -R "icheck 2185" /dev/sda1
debugfs 1.41.11 (14-Mar-2010)
Block Inode number
2185 123456
puis la commande suivante pour savoir quel est le nom de fichier pour cet inode :
[email protected]:~$ sudo debugfs -R "ncheck 123456" /dev/sda1
debugfs 1.41.11 (14-Mar-2010)
Inode Pathname
123456 /tmp/some-filename.txt
Il y a une description plus longue de la façon dont cela à http://www.randomnoun.com/wp/2013/09/12/determining-the-file-at-a-specific-vmdk-offset