Puede usar FIBMAP ioctl, como se muestra aquí, o usar hdparm:
/ $ sudo /sbin/hdparm --fibmap /etc/X11/xorg.conf
/etc/X11/xorg.conf:
 filesystem blocksize 4096, begins at LBA 0; assuming 512 byte sectors.
 byte_offset  begin_LBA    end_LBA    sectors
           0    1579088    1579095          8
 
 Podrías usar debugfs por esto:
debugfs -R "stat ~/myfile" /dev/hda1
 Cambie el disco duro/partición según corresponda y asegúrese de que el disco esté desmontado. Obtendrá una lista con todos los bloques utilizados:
BLOCKS:
(0):1643532
TOTAL: 1
 Este hilo puede darle una idea del algoritmo de colocación de archivos ext4.
 debugfs tiene un bmap función, que parece dar los datos que desea. Debería poder darle bloques consecutivos de un archivo y obtener los números de bloque físicos.