GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo enumero los bloques de datos de un archivo en Linux?

Solución 1:

Puede usar la herramienta "debugfs" para ver la información del archivo en la línea de comando o interactivley. O bien use:

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

o

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

por ejemplo:

# 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

Solución 2:

Mire la sintaxis de "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.

Solución 3:

Una forma sencilla de obtener la lista de bloques (sin tener que leer desde la partición como en el debugfs respuestas) es usar el FIBMAP ioctl. No conozco ningún comando para hacerlo, pero es muy sencillo 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 soporte el bmap 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 extensiones (útil para ext4).

Solución 4:

hdparm --fibmap /path/to/filename

No trabajaré en zfs, pero lo haré en ext4, btrfs, (v)fat, etc

man 8 hdparm :

--fibmap Cuando se usa, esta debe ser la única bandera dada. Requiere una ruta de archivo como parámetro e imprimirá una lista de las extensiones de dispositivo (rango de sector) ocupadas por ese archivo en el disco. Los números de sector se dan como números LBA absolutos, referenciados desde el sector 0 del dispositivo físico (no la partición o el sistema de archivos). Esta información se puede usar para una variedad de propósitos, como examinar el grado de fragmentación de archivos más grandes o determinar los sectores apropiados para corromper deliberadamente durante los procedimientos de prueba de inyección de fallas.


Linux
  1. Cómo copiar permisos y propiedad de archivos a otro archivo en Linux

  2. Cómo administrar las capacidades de archivos de Linux

  3. Cómo encontrar un archivo en Linux

  4. ¿Cómo cambiar el nombre de un archivo en Linux?

  5. ¿Cómo puedo monitorear datos en un puerto serie en Linux?

Cómo verificar la suma de comprobación en Linux

Cómo cambiar el nombre de un archivo (s) en Linux

Cómo enumerar los paquetes instalados en Linux

Cómo mostrar datos de un archivo de texto en Linux

Cómo escribir datos en un archivo en Linux

Cómo vincular un archivo en Linux