Según tengo entendido, cada archivo en un sistema operativo tipo Unix tiene un número de inodo (que se puede ver con "ls -i"), y cada inodo es una lista de bloques de disco que contienen los datos reales de un archivo.
¿Hay un comando de Linux que toma un nombre de archivo como argumento e imprime la lista de bloques de disco a los que apunta el inodo de ese archivo?
PD El sistema de archivos en cuestión es ext3.
linux
unix
filesystems
ext3
Miguel
fuente
fuente
File not found by ext2_lookup
. Por lo tanto, es mejor usar la notación de inodo para el argumento de stat. Utilícelols -i
para obtener el número de inodo de un archivo, luego invoque debugfs con ese número en '<>' en lugar de / path / to / file. Por ejemplo:# debugfs -R "stat <1234567>" /dev/sda2
path/to/file
no debería funcionar en todos los casos? Lo que me confunde es que a travésdebugfs ..... /dev/fs_blockdev
de mi comprensión solo hay un sistema de archivos en consideración, y a todos esos archivos dentro de este sistema se puede acceder a través de su ruta o por su inodo, ¿qué querías expresar?debugfs -R "stat /home/myuser/foo.txt" /dev/sda5
produce un error. Pero invocardebugfs -R "stat /path/on/rootfs" /dev/sda3
obras.sudo
, de lo contrario se mostrará un mensaje inútil.Mire la sintaxis para "debugfs", y específicamente el comando "stat". Eso le mostrará una lista de los bloques de datos utilizados por un archivo. Puede pasar parámetros a "debugfs" con el argumento "-f" para llamarlo desde un script.
fuente
Una manera simple de obtener la lista de bloques (sin tener que leer desde la partición como en las
debugfs
respuestas) es usar elFIBMAP
ioctl. No conozco ningún comando para hacerlo, pero es muy simple escribir uno; una búsqueda rápida en Google me dio un ejemplo del uso de FIBMAP , que hace exactamente lo que quieres. Una ventaja es que funcionará en cualquier sistema de archivos que admita labmap
operación, no solo ext3.Una alternativa más nueva (y más eficiente) es el
FIEMAP
ioctl, que también puede devolver información detallada sobre las extensiones (útil para ext4).fuente
No trabajaré en zfs, pero sí en ext4, btrfs, (v) fat, etc.
man 8 hdparm
:fuente
Al menos en algunas máquinas Linux ... "ls -s" puede proporcionar lo que está buscando.
Editar: mi mal, veo que estás buscando una lista de los bloques en sí, no un recuento de ellos.
fuente
e2fsck -b 32768 / dev / hda1 Siento que puedes probar esto o si buscas más docx en el mismo, puedes verificar lo siguiente
http://www.linux-tutorial.info/modules.php?name=MContent&pageid=97
fuente