This is a discussion on fsck does not fix the drive within the AIX Operating System forums, part of the Unix Operating Systems category; --> Hi all, Need help please. I've been doing fsck in one of my volume drives so I can mount ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hi all, Need help please. I've been doing fsck in one of my volume drives so I can mount it, but always gets the same error for several times now. I badly needed to mount it so I can recover the files. Has anybody gone through this? I've pasted the fsck output below. TIA, - vicebay bash-2.03# fsck -y /dev/nfs2lv1 ** Checking /dev/rnfs2lv1 (/nfs2f) ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames Cannot read: block 575592 (CLEARED) Cannot read: block 575593 (CLEARED) Cannot read: block 575594 (CLEARED) Cannot read: block 575595 (CLEARED) Cannot read: block 575596 (CLEARED) Cannot read: block 575597 (CLEARED) Cannot read: block 575598 (CLEARED) Cannot read: block 575599 (CLEARED) DIRECTORY CORRUPTED (FIXED) Directory /foreveryoung.ph/4/manayski/Maildir/.Trash, '.' entry is missing. (FIXED) Directory /foreveryoung.ph/4/manayski/Maildir/.Trash, '..' entry is missing. (FIXED) Cannot read: block 575600 (CLEARED) Cannot read: block 575601 (CLEARED) Cannot read: block 575602 (CLEARED) Cannot read: block 575603 (CLEARED) Cannot read: block 575604 (CLEARED) Cannot read: block 575605 (CLEARED) Cannot read: block 575606 (CLEARED) Cannot read: block 575607 (CLEARED) DIRECTORY CORRUPTED (FIXED) Directory /lost+found/38165, '.' entry is missing. (FIXED) Directory /lost+found/38165, '..' entry is missing. (FIXED) Cannot read: block 575608 (CLEARED) Cannot read: block 575609 (CLEARED) Cannot read: block 575610 (CLEARED) Cannot read: block 575611 (CLEARED) Cannot read: block 575612 (CLEARED) Cannot read: block 575613 (CLEARED) Cannot read: block 575614 (CLEARED) Cannot read: block 575615 (CLEARED) DIRECTORY CORRUPTED (FIXED) Directory /lost+found/38166, '.' entry is missing. (FIXED) Directory /lost+found/38166, '..' entry is missing. (FIXED) ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Inode Map ** Phase 6 - Check Block Map Filesystem integrity is not guaranteed 603022 files 98172112 blocks 6685488 free ***** Filesystem was modified ***** Cannot write: block 575592 (CONTINUED) Cannot write: block 575600 (CONTINUED) Cannot write: block 575608 (CONTINUED) bash-2.03# mount /dev/nfs2lv1 Replaying log for /dev/nfs2lv1. Devices already mounted that are using /dev/vg2log Failure replaying log: 0 mount: 0506-324 Cannot mount /dev/nfs2lv1 on /nfs2fs1: The media is not formatted or the format is not correct. 0506-342 The superblock on /dev/nfs2lv1 is dirty. Run a full fsck to fix. |
| |||
| In article <cg5hpc$71v@odbk17.prod.google.com>, Torvic <vsebay@edsamail.com> wrote: >bash-2.03# mount /dev/nfs2lv1 >Replaying log for /dev/nfs2lv1. >Devices already mounted that are using /dev/vg2log >Failure replaying log: 0 >mount: 0506-324 Cannot mount /dev/nfs2lv1 on /nfs2fs1: The media is not >formatted or the format is not correct. >0506-342 The superblock on /dev/nfs2lv1 is dirty. Run a full fsck to >fix. Can you mount the filesystem readonly? What AIX release is this? I recall a bug in 4.1 or 4.2 where fsck didn't fix superblocks that were marked dirty; they had to be fixed manually. -- Ken Bell :: kenbell@panix.com :: (212) 475-4976 (voice) |
| |||
| If you have a dirty superblock error message during mount or fsck -you might try to do "fsck". If this does not work try the following (This procedure does not promise 100% success). USE this procedure ONLY as a last resort if fsck fails !!!!! (The following example relates to a bad filesystem in slv2.0) Copy the secondary superblock to the primary superblock. An example command and output follows: dd count=1 bs=4k skip=31 seek=1 if=/dev/slv2.0 of=/dev/slv2.0 dd: 1+0 records in. dd: 1+0 records out. Then we'll run fsck on this filesystem to ensure it's back. |
| |||
| In article <ed3bf47c.0408222127.359f340c@posting.google.com >, levw <lev.weissman@creo.com> wrote: > If you have a dirty superblock error message during mount or fsck > -you might try to do "fsck". If this does not work try the following > (This procedure does not promise 100% success). > USE this procedure ONLY as a last resort if fsck fails !!!!! > (The following example relates to a bad filesystem in slv2.0) > Copy the secondary superblock to the primary superblock. An example > command and output follows: > dd count=1 bs=4k skip=31 seek=1 if=/dev/slv2.0 of=/dev/slv2.0 > dd: 1+0 records in. > dd: 1+0 records out. > > Then we'll run fsck on this filesystem to ensure it's back. The original poster seems to have a dying hard drive with multiple unrecoverable bad blocks. He would be better advised to replace that drive immediately using normal procedures then do a restore from backup or to re-mirror upon the replacement drive. If he has no usable backups, and if he has at least AIX 4.1, an easier (and equivalent) way of copying the secondary superblock is to use: # fsck -p /dev/nfs2lv1 -p will copy and then use the secondary superblock if the primary is corrupt. -Dan |
| |||
| It's running in AIX 4.3.3. How do I manually fix it? Thanks, - Vic kenbell@panix.com (Ken Bell) wrote in message news:<cg6ad3$1h9$2@reader1.panix.com>... > In article <cg5hpc$71v@odbk17.prod.google.com>, > Torvic <vsebay@edsamail.com> wrote: > >bash-2.03# mount /dev/nfs2lv1 > >Replaying log for /dev/nfs2lv1. > >Devices already mounted that are using /dev/vg2log > >Failure replaying log: 0 > >mount: 0506-324 Cannot mount /dev/nfs2lv1 on /nfs2fs1: The media is not > >formatted or the format is not correct. > >0506-342 The superblock on /dev/nfs2lv1 is dirty. Run a full fsck to > >fix. > > Can you mount the filesystem readonly? > > What AIX release is this? I recall a bug in 4.1 or 4.2 where fsck > didn't fix superblocks that were marked dirty; they had to be fixed > manually. |
| |||
| In article <d25006a5.0408230225.44a83545@posting.google.com >, vicebay <vsebay@edsamail.com> wrote: > It's running in AIX 4.3.3. How do I manually fix it? Try: # fsck -p /dev/nfs2lv1 (Yes, the -p flag is important.) If that doesn't fix it, then you're basically out of luck. You also need to replace the drive immediately, because it seems to be failing. -Dan |
| ||||
| In article <d25006a5.0408230225.44a83545@posting.google.com >, vicebay <vsebay@edsamail.com> wrote: >It's running in AIX 4.3.3. How do I manually fix it? Included below is what I used back in the days of 4.1 .. it dumps out the contents of superblocks #1 and #2, and if you're satisfied with what you see, allows you to rewrite #1 by specifying the "--copysb2tosb1" option. As always, this carries no warranty - you use it at your own risk. Please read and verify the code for yourself before you run it. /* * super.c * * Compare and optionally rewrite superblock 2 to superblock 1 * * Ken Bell / kenbell@panix.com * */ #include <unistd.h> #include <stdio.h> #include <string.h> #include <fcntl.h> #include <time.h> #include <sys/filsys.h> #include <sys/fstypes.h> int main(int argc, char *argv[]) { struct superblock sb0, sb1; int fd; off_t block[2] = {4096, 31*4096}; /* primary and secondary superblocks */ int magic0, magic1; char time0[80], time1[80]; char *valid[2] = {"Not Valid", "Valid"}; char *copysb2tosb1 = "--copysb2tosb1", rewritesuperblock, *devicename; if (argc < 2) { printf("Usage: %s [ %s ] /dev/filesystemname\n",argv[0],copysb2tosb1); exit(1); } if (strncmp(argv[1],copysb2tosb1,strlen(copysb2tosb1)) == 0) { rewritesuperblock = 1; devicename = argv[2]; } else { rewritesuperblock = 0; devicename = argv[1]; } printf(" Filesystem \"%s\":\n",devicename); if ((fd=open(devicename,O_RDWR)) == -1) { perror("open"); exit(1); } if (lseek(fd,block[0],SEEK_SET) == -1) { perror("lseek.1"); exit(1); } if (read(fd,&sb0,(sizeof sb0)) != (sizeof sb0)) { perror("read.1"); exit(1); } if (lseek(fd,block[1],SEEK_SET) == -1) { perror("lseek.2"); exit(1); } if (read(fd,&sb1,(sizeof sb1)) != (sizeof sb1)) { perror("read.2"); exit(1); } if (rewritesuperblock == 1) { sb0.s_logserial = 0; sb0.s_logdev = 0xffffffff; if (lseek(fd,block[0],SEEK_SET) == -1) { perror("lseek.1B"); exit(1); } if (write(fd,&sb0,(sizeof sb0)) != (sizeof sb0)) { perror("write.1"); exit(1); } printf("Rewrote superblock #1\n"); } magic0 = (strncmp(sb0.s_magic,fsv3magic,4)==0); #ifdef AIX4 if (!magic0) magic0 = (strncmp(sb0.s_magic,fsv3pmagic,4)==0); #endif magic1 = (strncmp(sb0.s_magic,fsv3magic,4)==0); #ifdef AIX4 if (!magic1) magic1 = (strncmp(sb0.s_magic,fsv3pmagic,4)==0); #endif printf("\n Superblock #1\t\t\tSuperblock #2\n"); printf( " -------------\t\t\t-------------\n"); printf(" magic = %x%x%x%x (%s)\t\t\t%x%x%x%x (%s)\n", sb0.s_magic[0],sb0.s_magic[1],sb0.s_magic[2],sb0.s_magic[3],valid[magic0], sb1.s_magic[0],sb1.s_magic[1],sb1.s_magic[2],sb1.s_magic[3],valid[magic1]); printf(" flag = %2.2x%2.2x%2.2x%2.2x\t\t\t\t%2.2x%2.2x%2.2x%2.2x\n ", sb0.s_flag[0],sb0.s_flag[1],sb0.s_flag[2],sb0.s_flag[3], sb1.s_flag[0],sb1.s_flag[1],sb1.s_flag[2],sb1.s_flag[3]); printf(" agsize = %d\t\t\t\t%d\n",sb0.s_agsize,sb1.s_agsize); printf(" logserial = %d\t\t\t\t\t%d\n",sb0.s_logserial,sb1.s_logserial) ; printf(" fsize = %ld\t\t\t\t%ld\n",sb0.s_fsize,sb1.s_fsize); printf(" bsize = %d\t\t\t\t%d\n",sb0.s_bsize,sb1.s_bsize); printf(" spare = %d (unused)\t\t\t%d (unused)\n",sb0.s_spare,sb1.s_spare); if (magic0) printf(" fname = %6.6s\t\t\t\t",sb0.s_fname); else printf(" fname = (?)\t\t\t\t"); if (magic1) printf("%6.6s\n",sb1.s_fname); else printf("(?)\n"); if (magic0) printf(" fpack = %6.6s\t\t\t\t",sb0.s_fpack); else printf(" fname = (?)\t\t\t\t"); if (magic1) printf("%6.6s\n",sb1.s_fpack); else printf("(?)\n"); printf(" logdev = %4.4x\t\t\t\t%4.4x\n",sb0.s_logdev,sb1.s_logdev); printf(" fmod = %x\t\t\t\t\t%x\n",sb0.s_fmod,sb1.s_fmod); printf(" ronly = %x\t\t\t\t\t%x\n",sb0.s_ronly,sb1.s_ronly); strncpy(time0,ctime(&sb0.s_time),sizeof time0); strncpy(time1,ctime(&sb1.s_time),sizeof time1); time0[strlen(time0) - 1] = 0; time1[strlen(time1) - 1] = 0; printf(" time = %4.4x\t\t\t\t%4.4x\n",sb0.s_time,sb1.s_time); printf(" (%s)\t(%s)\n",time0,time1); printf("%s%s\n"," --------------------------------------", "---------------------------------------"); exit(0); } -- Ken Bell :: kenbell@panix.com :: (212) 475-4976 (voice) |
| Thread Tools | |
| Display Modes | |
|
|