On Tue, 2004-12-07 at 23:59 -0800, Sang Nguyen Van wrote: > processing terminated: 12/8/2004 8:49:47 with return > code: 10052 exit code: 8. [xchkdsk.c:472]
Here is a patch that should get you by this specific error, but I'm not sure how much further you'll get. This is a failure to read an inode that isn't used. fsck shouldn't give up here. But with both the journal superblock corrupt, and fsck unable to read this inode, I have a suspicion that fsck won't get a whole lot farther. If you can't get fsck to finish, you may try to mount the partition read-only (mount -oro). If that succeeds, you may be able to recover some data. > About the syslog, before we installed the new SuSe > 9.2, my administrator checked the system and said > there was an error message like the system is trying > to write to the area out of the hardisk space (?!). > I have a question: the problem comes from my old SuSe > 7.3 (old kernel), and so the jfs handler or something > else? Eventhough there may not be much hope for > recovering the partition, I just don't want it to > occur again! I'm not sure what happened, but jfs is much more stable in SuSe 9.2 than in 7.3. > Thanks, > Sang Nguyen. Shaggy -- David Kleikamp IBM Linux Technology Center
Index: jfsutils/fsck/fsckmeta.c =================================================================== RCS file: /usr/cvs/jfs/jfsutils/fsck/fsckmeta.c,v retrieving revision 1.19 diff -u -p -r1.19 fsckmeta.c --- jfsutils/fsck/fsckmeta.c 24 Sep 2004 14:43:53 -0000 1.19 +++ jfsutils/fsck/fsckmeta.c 8 Dec 2004 14:12:25 -0000 @@ -1370,8 +1370,9 @@ int validate_fs_metadata() intermed_rc = inode_get(aggregate_inode, which_fsit, ino_idx, &ino_ptr); if (intermed_rc != FSCK_OK) { /* can't get the inode */ - vfm_rc = FSCK_CANTREADFSEXT; - goto vfm_exit; + //vfm_rc = FSCK_CANTREADFSEXT; + //goto vfm_exit; + goto read_root; /* Who really cares? */ } /* got superinode extension inode */ @@ -1379,14 +1380,16 @@ int validate_fs_metadata() intermed_rc = verify_fs_super_ext(ino_ptr, msg_info_ptr,&inode_updated); if (intermed_rc < 0) { /* something really really bad happened */ - vfm_rc = intermed_rc; - goto vfm_exit; + //vfm_rc = intermed_rc; + //goto vfm_exit; + goto read_root; } if (intermed_rc != FSCK_OK) { /* inode is bad */ - vfm_rc = FSCK_FSETEXTBAD; - goto vfm_exit; + //vfm_rc = FSCK_FSETEXTBAD; + //goto vfm_exit; + goto read_root; } /* superinode extension inode is ok */ @@ -1394,8 +1397,8 @@ int validate_fs_metadata() /* need to write the superinode extension */ vfm_rc = inode_put(ino_ptr); } - if (vfm_rc != FSCK_OK) - goto vfm_exit; + //if (vfm_rc != FSCK_OK) + // goto vfm_exit; /* read the root directory inode */ ino_idx = ROOT_I;