This is one page that looks best when viewed with a graphical browser, I have looked at it using Netscape and lynx. There are no important images here, but the tables don't look very nice using lynx. You should use Any Browser that formats tables nicely.
This is a very quick walk through lde's major modes. When you start lde, it will first display the startup error/warning log with messages about the filesystem found on the specified device. Hit any key and lde will display some of the information contained in the file system's super block.
lde v2.4.0Alpha2 : minix : /dev/hda3 Inode: 1 (0x00000001) Block: 0 (0x00000000) 012345678 |
Inodes: 13943 (0x00003677) Blocks: 41830 (0x0000A366) Firstdatazone: 446 (N=446) Zonesize: 1024 (0x0400) Maximum size: 268966912 (0x10081C00) * Directory entries are 30 characters. * Inode map occupies 2 blocks. * Zone map occupies 6 blocks. * Inode table occupies 436 blocks. F)lags, I)node, B)locks, R)ecover File |
While displaying the superblock, the keys for the other major modes are listed at the bottom of the screen. We will zip through all of them, starting with inode mode.
lde v2.4.0Alpha2 : minix : /dev/hda3 Inode: 1 (0x00000001) Block: 0 (0x00000000) 012345678 |
drwxr-xr-x 25 root system 1408 Wed Jul 2 01:06:23 1997 TYPE: directory LINKS: 25 DIRECT BLOCKS= 0x000001BE MODE: \0755 FLAGS: \04 0x0000678D UID: 00000(root) GID: 00000(system) SIZE: 1408 SIZE(BLKS): ACCESS TIME: CREATION TIME: MODIFICATION TIME: Wed Jul 2 01:06:23 1997 INDIRECT BLOCK= DELETION TIME: 2x INDIRECT BLOCK= F1/H for help. F2/^O for menu. Q to quit |
Inode mode starts on the file system's root directory inode. Looking at the information above, we can see that it is indeed a directory with 25 entries (links) owned by root.system. Pressing the arrow keys will move the cursor between fields. The first direct block is shown highlighted, if we press 'd' now, we can view this inode formatted as a directory.
lde v2.4.0Alpha2 : minix : /dev/hda3 Inode: 1 (0x00000001) Block: 0 (0x00000000) 012345678 |
0x00000001: drwxr-xr-x 25 1408 . 0x00000001: drwxr-xr-x 25 1408 .. 0x0000047D: drwxr-xr-x 2 64 boot 0x000001AD: drwxr-xr-x 2 2144 bin 0x0000007F: drwxr-xr-x 2 8128 dev 0x00000153: drwxr-xr-x 10 384 dos 0x0000015A: drwxr-xr-x 19 8544 etc 0x000002D0: drwxr-xr-x 2 64 fishmonger 0x000001A9: drwxr-xr-x 3 3712 sbin 0x00000290: drwxr-xr-x 2 64 home 0x00000291: lrwxrwxrwx 1 9 info |
0x00000292: drwxr-xr-x 3 2016 lib |
0x000002E9: drwxrwxrwx 2 864 links 0x000002FF: drwxr-xr-x 2 160 mnt 0x00000300: drwxr-xr-x 2 64 mnt2 0x00000301: drwxrwxr-x 2 64 mnt3 0x00000302: dr-xr-xr-x 2 64 proc 0x00000000: mnbt 0x0000003D: drwxr-xr-x 3 96 man 0x00000305: drwxrwxr-x 2 224 shlib 0x0000030A: lrwxrwxrwx 1 11 stimpy F1/H for help. F2/^O for menu. Q to quit |
You can use the arrows to scroll through all the directory entries associated with inode number 1 which we were viewing earlier. Clicking on a directory will view that directory.
lde v2.4.0Alpha2 : minix : /dev/hda3 Inode: 1 (0x00000001) Block: 0 (0x00000000) 012345678 |
0x00000292: drwxr-xr-x 3 2016 . 0x00000001: drwxr-xr-x 25 1408 .. 0x00000293: lrwxrwxrwx 1 25 libX11.so.3 0x00000294: lrwxrwxrwx 1 24 libXt.so.3 0x00000160: lrwxrwxrwx 1 12 cpp 0x00000004: drwxr-xr-x 10 384 modules 0x00000297: lrwxrwxrwx 1 25 libXaw.so.3 0x0000050C: -r-xr-xr-x 1 43502 libkpathsea.so.2.6 0x00000517: lrwxrwxrwx 1 20 libkpathsea.so.2 |
0x0000029A: -rwxr-xr-x 1 634880 libc.so.4.6.27 |
0x0000029B: -rwxr-xr-x 1 110592 libm.so.4.6.27 0x0000029C: lrwxrwxrwx 1 14 libc.so.4 0x00000518: lrwxrwxrwx 1 18 libkpathsea.so 0x000002B9: -rwxr-xr-x 1 49152 libcurses.so.0.1.2 0x000002BA: lrwxrwxrwx 1 13 libf2c.so.0 0x000002BB: -rwxr-xr-x 1 533508 libf2c.so.0.7 0x000002BC: lrwxrwxrwx 1 12 libgr.so.1 0x000002BD: lrwxrwxrwx 1 14 libm.so.4 0x000002BE: -rwxr-xr-x 1 630784 libc-lite.so.4.6.27 0x000002BF: lrwxrwxrwx 1 19 libc-lite.so.4 0x00000511: -rwxr-xr-x 2 24580 ld.so F1/H for help. F2/^O for menu. Q to quit |
We can use this method to locate the file we are interested in, maybe libc.so.4.6.27. We can then view its inode by pressing 'I'.
lde v2.4.0Alpha2 : minix : /dev/hda3 Inode: 666 (0x0000029A) Block: 0 (0x00000000) 012345678 |
-rwxr-xr-x 1 root system 634880 Tue Dec 13 16:39:05 1994 TYPE: regular file LINKS: 1 DIRECT BLOCKS= 0x00001E2C MODE: \0755 FLAGS: \10 0x00001E2D UID: 00000(root) GID: 00000(system) 0x00001E2E SIZE: 634880 SIZE(BLKS): 0x00001E2F 0x00001E30 ACCESS TIME: 0x00001E31 CREATION TIME: 0x00001E32 MODIFICATION TIME: Tue Dec 13 16:39:05 1994 INDIRECT BLOCK= 0x00001E33 DELETION TIME: 2x INDIRECT BLOCK=0x00002034 F1/H for help. F2/^O for menu. Q to quit |
This information looks correct, now lets have a look at the contents of the file. Hit 'B' to view the highlighted block.
lde v2.4.0Alpha2 : minix : /dev/hda3 Inode: 666 (0x0000029A) Block: 7724 (0x00001E2C) 012345678 |
0078B000 CC 00 64 00 00 00 09 00 : 00 B0 00 00 98 EE 02 00 ..d............. 0078B010 00 00 00 00 20 F0 FF 5F : 00 00 00 00 00 00 00 00 .... .._........ 0078B020 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B030 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B040 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B050 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B060 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B070 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B080 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B090 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B0A0 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B0B0 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B0C0 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B0D0 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B0E0 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B0F0 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B100 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B110 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B120 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B130 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ 0078B140 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 ................ F1/H for help. F2/^O for menu. Q to quit |
We're looking at the first block of libc. It is possible to edit this block in hex or ASCII and then write it back to the disk. Let's not do that, instead, go back to inode mode and hit 'R'. This will copy the contents of libc's inode into the "recovery inode" and switch to recovery mode.
lde v2.4.0Alpha2 : minix : /dev/hda3 Inode: 666 (0x0000029A) Block: 7724 (0x00001E2C) --------- |
DIRECT BLOCKS: 0 : 0x00001E2C 1 : 0x00001E2D 2 : 0x00001E2E 3 : 0x00001E2F 4 : 0x00001E30 5 : 0x00001E31 6 : 0x00001E32 INDIRECT BLOCK: 7 : 0x00001E33 2x INDIRECT BLOCK: 8 : 0x00002034 Change blocks with adjacent characters. Q to quit. R to dump to file |
From recovery mode, we can write out the file indexed by this inode to disk. It may not sound very important, but this is how you would undelete a unix file. This "recovery inode" is not stored on the disk and you can put whatever you want in it. However, the indirect blocks are stored on the disk. Most of the time, the inode information will be preserved after you delete a file, and you can just undelete the entire file at once. If there have been disk writes since you deleted the file, the inode information may have been overwritten, in which case you may have to do a lot of work to recover the file. See the file UNERASE in the lde distribution for help with these harder cases.
This is a very simple document. You could probably figure all this out on your own just playing with lde for a few seconds and it really doesn't accentuate any of lde's really nifty features which can be used to find deleted files. See the man page and the UNERASE document for examples and more detailed explainations.