I found out why d2 is failing to read some files. Any file that contains indirect blocks is failing. Don't why it's failing (probably some byte swap thing).
This means that only small files will be readable. On a 4KB block system (Ext2 default) this would be 48KB and below.