Welcome to File Analysis Tools (FAT) by Michael Rywalt. [INTRODUCTION] ext2print will print the contents of the root directory of the filesystem that is passed in as an argument. lnhdir will create a hard link to a directory in the filesystem that is passed in as an argument. [BUILDING] To build the executables, simply issue the 'make' command. This will build ext2print and lnhdir, and will save the build artifacts in the bin/ directory. [USAGE] Using both ext2print and lnhdir are surprisingly easy. If you provide no command-line arguments, both programs will print out basic usage information to get you started right away. -EXT2PRINT- To use ext2print, simply issue the ext2print command followed by the name of the filesystem file you would like to analyze. Ext2print will print out the contents of the root directory, and will let you know the block size of the filesystem. -LNHDIR- To use lnhdir, simply provide the filesystem file where you want to create the hard link, the directory or subdirectory where you want to create the link (this is the same directory that the hardlink will be set to), and a name for the hardlink that will be stored in the directory. [EXAMPLES] Included are three filesystems which were formatted using the available block sizes for EXT2 filesystems; 1024, 2048, and 4096. These files are located in the ./FileSystems/ directory. Here is how to look at the contents of the myLargeFile1024 filesystem: [user@host]$ ./bin/ext2print FileSystems/myLargeFile1024 ************** EXT2 Root Print by MGR ************** FS Type: EXT2 Block Size = 1024 FileType FileName ------------------ Directory . Directory .. Directory lost+found File Rywalt0 File Rywalt1 File Rywalt2 File Rywalt3 File Rywalt4 Directory Rywalt [user@host]$ Now, let's say you wanted to create a hardlink to the Rywalt subdirectory, and call it hello. Here's how to do this: [user@host]$ lnhdir myLargeFile1024 Rywalt hello lnhdir: attempting to hardlink hello to Rywalt... Directory Rywalt now has hard-link hello inside. Here is the new directory listing for Rywalt: FileType FileName ------------------ Directory . Directory .. Directory hello [user@host]$ You can create other links in the same directory, or even in the root directory. To create a hardlink in the root directory called root, issue this command: [user@host]$ lnhdir myLargeFile1024 . root lnhdir: attempting to hardlink root to .... Directory . now has hard-link root inside. Here is the new directory listing for .: FileType FileName ------------------ Directory . Directory .. Directory lost+found File Rywalt0 File Rywalt1 File Rywalt2 File Rywalt3 File Rywalt4 Directory Rywalt Directory root [user@host]$