[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RE: How to recreate a dmraid RAID array with mdadm



> On Thu, 18 Nov 2010 12:28:47 +1100 <neilb@suse.de> wrote:
> >
> > I am running the same version, from a Debian Squeeze package which I presume is the same.
> >
> > mdadm -V
> >
> > mdadm - v3.1.4 - 31st August 2010
>
> Yes, should be identical to what I am running.
> >
> > >
> > > and see how that works.
> > > Just
> > > make
> > > ./mdadm -Asvv
> >
> > Regardless, I did recompile (attached is the make output -- no errors) and got similar mdadm output:
> >
> > ./mdadm -Asvv
> > mdadm: looking for devices for further assembly
> > mdadm: no RAID superblock on /dev/md126p1
> > mdadm: /dev/md126p1 has wrong uuid.
> > mdadm: no RAID superblock on /dev/md/OneTB-RAID1-PV
> > mdadm: /dev/md/OneTB-RAID1-PV has wrong uuid
> ....
> > mdadm: cannot open device /dev/sdb: Device or resource busy
> > mdadm: /dev/sdb has wrong uuid.
> > mdadm: cannot open device /dev/sda: Device or resource busy
> > mdadm: /dev/sda has wrong uuid.
>
> The arrays are clearly currently assembled. Trying to assemble them again is
> not likely to produce a good result :-) I should have said to "./mdadm -Ss"
> first.
>
> Could you apply this patch and then test again with:
>
> ./mdadm -Ss
> ./mdadm -Asvvv
>

Applied the patch:

if (ident->uuid_set && (!update || strcmp(update, "uuid")!= 0) &&
                    (!tst || !tst->sb ||
                     same_uuid(content->uuid, ident->uuid, tst->ss->swapuuid)==0)) {
                         if (report_missmatch) {
                              char buf[200];
                                fprintf(stderr, Name ": %s has wrong uuid.\n",
                                        devname);
                           fprintf(stderr, " want %s\n", __fname_from_uuid(ident->uuid, 0, buf, ':'));
                           fprintf(stderr, " have %s\n", __fname_from_uuid(content->uuid, 0, buf, ':'));
                           fprintf(stderr, " metadata=%s\n", tst->ss->name);
                    }
                        goto loop;
                }


And got:

./mdadm -Ss

mdadm: stopped /dev/md127


./mdadm -Asvvv

mdadm: looking for devices for further assembly
mdadm: no RAID superblock on /dev/dm-3
mdadm: /dev/dm-3 has wrong uuid.
 want UUID-084b969a:0808f5b8:6c784fb7:62659383
Segmentation fault


I took the liberty of extending the char buffer to 2000 bytes/chars and 64K (1<<16) but got the same segfaults.


-M
 		 	   		  

Reply to: