Please help! How to reconstitute array (drive order problem)?
My 1.5TB SW RAID5 array is hosed because my motherboard stopped recognizing drives on two of its controllers. I have moved drives around so that they are all recognized now, but the drive names have all changed, and even though I've tried all combinations nothing seems to work. I have run out of troubleshooting tools. Please help!
Here's what I had before the crash:
Motherboard IDE Controller bus 0: One 250GB drive Motherboard IDE Controller bus 1: One 250GB drive SIS IDE Controller 1 bus 0: One 250GB drive SIS IDE Controller 1 bus 1: One 250GB drive SIS IDE Controller 2 bus 0: One 250GB drive SIS IDE Controller 2 bus 1: One 250GB drive SIS IDE Controller 3 bus 0: One 250GB drive SIS IDE Controller 3 bus 1: nothing
These drives came up something like hda, hdi, hdh, hdk, hdm, hdn, hdp, but I don't know which physical drive got which name. I had one 240GB partition from each drive mapped to the RAID5 array md0 in /etc/raidtab.
When the machine hanged, I found that the bios was not recognizing both the SIS IDE Controller 1 drives and the SIS IDE Controller 3 drive. These drives were hda, hdi, and hdk (I only know this because they were inaccessible after linux booted).
So I moved the drives that were on SIS Controller 1 and 3 onto SIS Controller 2 and the Motherboard controller. I know that having two drives on the same bus is a huge performance hit, but I just want my data back!!! On boot, all drives were recognized, but now their names are different, so I figured all I need to do is edit /etc/raidtab to reflect the new drive names. Is that right?
Anyway, using fdisk I discovered that the drives' new names were hde, hdg, and hdo. Since I didn't know what physical drive had what logical name before or after the switch, I tried all six combinations. For example, the first thing I tried was to do the following in /etc/raditab:
s/hda/hdo/
s/hdi/hde/
s/hdk/hdg/
I saved raidtab, and rebooted, but the array was not recognized by the kernel and so I repeated the swap with all six possible combinations. None of them worked.
Now I'm out of ideas. How can I reconstruct my raid array? This data is very important to me, so any help you might have would be highly appreciated.
Thanks!
Dave
Use mdadm to start your array.
Details: "man mdadm"
You may need to install mdadm.
Guy
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of David Wuertele
Sent: Wednesday, October 27, 2004 6:52 AM
To: [email protected]
Subject: Please help! How to reconstitute array (drive order problem)?
My 1.5TB SW RAID5 array is hosed because my motherboard stopped recognizing drives on two of its controllers. I have moved drives around so that they are all recognized now, but the drive names have all changed, and even though I've tried all combinations nothing seems to work. I have run out of troubleshooting tools. Please help!
Here's what I had before the crash:
Motherboard IDE Controller bus 0: One 250GB drive Motherboard IDE Controller bus 1: One 250GB drive SIS IDE Controller 1 bus 0: One 250GB drive SIS IDE Controller 1 bus 1: One 250GB drive SIS IDE Controller 2 bus 0: One 250GB drive SIS IDE Controller 2 bus 1: One 250GB drive SIS IDE Controller 3 bus 0: One 250GB drive SIS IDE Controller 3 bus 1: nothing
These drives came up something like hda, hdi, hdh, hdk, hdm, hdn, hdp, but I don't know which physical drive got which name. I had one 240GB partition from each drive mapped to the RAID5 array md0 in /etc/raidtab.
When the machine hanged, I found that the bios was not recognizing both the SIS IDE Controller 1 drives and the SIS IDE Controller 3 drive. These drives were hda, hdi, and hdk (I only know this because they were inaccessible after linux booted).
So I moved the drives that were on SIS Controller 1 and 3 onto SIS Controller 2 and the Motherboard controller. I know that having two drives on the same bus is a huge performance hit, but I just want my data back!!! On boot, all drives were recognized, but now their names are different, so I figured all I need to do is edit /etc/raidtab to reflect the new drive names. Is that right?
Anyway, using fdisk I discovered that the drives' new names were hde, hdg, and hdo. Since I didn't know what physical drive had what logical name before or after the switch, I tried all six combinations. For example, the first thing I tried was to do the following in /etc/raditab:
s/hda/hdo/
s/hdi/hde/
s/hdk/hdg/
I saved raidtab, and rebooted, but the array was not recognized by the kernel and so I repeated the swap with all six possible combinations. None of them worked.
Now I'm out of ideas. How can I reconstruct my raid array? This data is very important to me, so any help you might have would be highly appreciated.
Thanks!
Dave
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Guy> Use mdadm to start your array.
Guy> Details: "man mdadm"
Guy> You may need to install mdadm.
Wow, looks like mdadm is a lifesaver. After reading the man page, it looks like I should run
mdadm --assemble --scan /dev/md0 --auto=yes
Will this find all seven of the component partitions that make up the md0 RAID5? Or do I have to list those partitions in the config file?
From the man page: "The identity can be given with the --uuid option,
with the --super- minor option, can be found in the config file, or will be taken from the super block on the first component-device listed on the command line."
What is an "identity" or a "uuid"? Does that mean "/dev/md0"?
Thanks,
Dave
Glad you read the man page. Most people seem too lazy to learn something.
I like mdadm, so I would create the config file.
Jim gave away the answer!
Or you could do as Jim Paris said:
"So your drives are now hde, hdg, hdo, hdh, hdm, hdn, hdp. Something like
mdadm --assemble /dev/md0 hd[egohmnp]
should do the trick."
Ha! Maybe Jim did a typo! Try this:
mdadm --assemble /dev/md0 /dev/hd[egohmnp]
Just make sure you list the current/correct devices. If they were partitioned, be sure to use the partitions! If each disk had 1 partition, this would be the correct command:
mdadm --assemble /dev/md0 /dev/hd[egohmnp]1
The "--auto" is new to me. I have an old version.
The UUID is a unique ID. Every disk that makes up the array will have the same ID.
"--scan" requires a config file.
Guy
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of David Wuertele
Sent: Wednesday, October 27, 2004 8:10 AM
To: [email protected]
Subject: Re: Please help! How to reconstitute array (drive order problem)?
Guy> Use mdadm to start your array.
Guy> Details: "man mdadm"
Guy> You may need to install mdadm.
Wow, looks like mdadm is a lifesaver. After reading the man page, it looks like I should run
mdadm --assemble --scan /dev/md0 --auto=yes
Will this find all seven of the component partitions that make up the md0 RAID5? Or do I have to list those partitions in the config file?
From the man page: "The identity can be given with the --uuid option,
with the --super- minor option, can be found in the config file, or will be taken from the super block on the first component-device listed on the command line."
What is an "identity" or a "uuid"? Does that mean "/dev/md0"?
Thanks,
Dave
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 1 line
These drives came up something like hda, hdi, hdh, hdk, hdm, hdn, hdp,
..
Quoted 1 line
drive. These drives were hda, hdi, and hdk (I only know this because
..
Quoted 1 line
the drives' new names were hde, hdg, and hdo.
So your drives are now hde, hdg, hdo, hdh, hdm, hdn, hdp. Something like
mdadm --assemble /dev/md0 hd[egohmnp]
should do the trick.
--
BTW, speaking of mdadm, with no config file, the commands
mdadm --assemble /dev/md0
mdadm --assemble --scan /dev/md0
mdadm --assemble --scan /dev/md0 /dev/hd[egohmnp]
all segfault. They're probably not sensible commands to run, but it should give an error in that case.
-jim