I ran 'e2fsck /dev/hda3' after booting 'base norestore', and seemed to get a much more thorough file system check/fix then I got using 'checkfs', which hardly did anything. Here is the e2fsck:
1.39-WIP (29-Mar-2006)
/dev/hda3 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Deleted inode 538611 has zero dtime. Fix<y>? yes
Deleted inode 538653 has zero dtime. Fix<y>? yes
Deleted inode 571239 has zero dtime. Fix<y>? yes
Deleted inode 571256 has zero dtime. Fix<y>? yes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: -(1108831--1108833) -1109443 -(1181136--1184345) -(1184842--1184907)
Fix<y>?
y
x<y>? yes
Free blocks count wrong for group #33 (4456, counted=4460).
Fix<y>? yes
Free blocks count wrong for group #36 (872, counted=4148).
Fix<y>? yes
Free blocks count wrong (1232661, counted=1235941).
Fix<y>? yes
Inode bitmap differences: -538611 -538653 -571239
Free blocks count wrong for group #36 (872, counted=4148).
Fix<y>? yes
Free blocks count wrong (1232661, counted=1235941).
Fix<y>? yes
Inode bitmap differences: -538611 -538653 -571239 -571256
Fix<y>? yes
Free inodes count wrong for group #33 (16225, counted=16227).
Fix<y>? yes
Free inodes count wrong for group #35 (16203, counted=16205).
Fix<y>? yes
Free inodes count wrong (1415239, counted=1415243).
Fix<y>? yes
/dev/hda3: ***** FILE SYSTEM WAS MODIFIED *****
/dev/hda3: 151477/1566720 files (0.9% non-contiguous), 1892717/3128658 blocks