Unix Technical Forum

fsck does not fix the drive

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 ...


Go Back   Unix Technical Forum > Unix Operating Systems > AIX Operating System

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 01-05-2008, 04:05 AM
Torvic
 
Posts: n/a
Default fsck does not fix the drive

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.

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 01-05-2008, 04:05 AM
Ken Bell
 
Posts: n/a
Default Re: fsck does not fix the drive

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)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 01-05-2008, 04:06 AM
levw
 
Posts: n/a
Default Re: fsck does not fix the drive

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.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 01-05-2008, 04:06 AM
Dan Foster
 
Posts: n/a
Default Re: fsck does not fix the drive

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
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 01-05-2008, 04:06 AM
vicebay
 
Posts: n/a
Default Re: fsck does not fix the drive

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.

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #6 (permalink)  
Old 01-05-2008, 04:06 AM
Dan Foster
 
Posts: n/a
Default Re: fsck does not fix the drive

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
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #7 (permalink)  
Old 01-05-2008, 04:06 AM
Ken Bell
 
Posts: n/a
Default Re: fsck does not fix the drive

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)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 04:49 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
www.UnixAdminTalk.com