Tengo un archivo disperso, en el que solo se asignan algunos bloques:
~% du -h --apparent-size example
100K example
~% du -h example
52K example
Me gustaría saber qué bloques del archivo están realmente asignados. ¿Hay una llamada al sistema o una interfaz de kernel que podría usarse para obtener una lista de las asignaciones o los agujeros de archivo?
Simplemente verificar una cadena de ceros lo suficientemente larga (el enfoque utilizado por GNU cp, rsync, etc.) no funciona correctamente:
~% cp example example1
~% du -h example1
32K example1
Detectó otras secuencias de ceros que en realidad se asignaron.
--fibmap
de lahdparm
utilidad. Ver el manual.