Ho un file sparse, in cui sono allocati solo alcuni blocchi:
~% du -h --apparent-size example
100K example
~% du -h example
52K example
Vorrei sapere quali blocchi del file sono effettivamente allocati. Esiste una chiamata di sistema o un'interfaccia del kernel che potrebbe essere utilizzata per ottenere un elenco delle allocazioni o dei buchi del file?
Il semplice controllo di una stringa di zeri abbastanza lunga (l'approccio utilizzato da GNU cp, rsync, ecc.) Non funziona correttamente:
~% cp example example1
~% du -h example1
32K example1
Ha rilevato altre sequenze di zeri che sono state effettivamente allocate.
--fibmap
delhdparm
programma di utilità. Vedi il manuale