ruf is a program that behaves similar to cat. However, it performs this function by directly accessing the disk structures. It can therefore access files on an unmounted file system. This is a handy feature in case of a damaged disk.
The following paper will be presented at LISA 2001 and describes the utility in more detail: Accessing files on unmounted filesystems. You may also want to review the LISA talk slides.
Update 15-March-2002: The latest version is 0.3.2. This version is simply an update to compensate for crazy header file changes in Red Hat Linux 7.
If you DOWNLOAD ruf, please send me email. I will start a mailing list if there is sufficient interest. Bug reports are always welcome. The more information they contain, the more welcome they are :-) Also let me know on which systems you have used ruf. I am particularly interested in ports to Irix, AIX, OSF/1 and Tru64 Unix. The current list of know systems are:
The source code for ruf is available here.
Red Hat Header Files
On RedHat Linux systems, you may have to install the e2fsprogs-devel
rpm in order to get the appropriate header files in /usr/include/ext2fs/
Linux ext3
The on disk version of the ext2 and ext3 file systems are identical.
Therefore ruf works for both these file systems. However, you should take into
consideration that ext3 is a journaling file system, with the journal entries
saved in the file /.journal. Recent updates to the file system may still be in
the journal file. While ruf can be used to read the journal file, it does
not currently have the smarts to apply the entries to the file system.