Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
A while back, I had a PC with two hard drives configured in a RAID 1 array with mdadm. I stored a lot of data there, though nothing too important. The OS installation went south at one point and I installed something over it. I left the RAID array untouched but notably didn't backup my mdadm.conf.
A year or so later, I now have a new PC with a new OS installation and only one of the disks remaining :-) I would like to mount the remaining disk, pull the data off and start using the disk for other purposes. Everything I'm reading tells me that I'm fine as long as I either have or recreate mdadm.conf AND as long as I go buy another disk to replace the missing one.
I've also read allusions to the ability to tell mdadm to mount an array with "missing disks" but haven't seen any instructions on how to do so. I've tried just popping the disk in and mounting it like a regular disk but mount refuses to do so, citing that it is of type "Linux RAID" or something thereof.
Is there a way to mount this disk and get the data?
Do a 'cat /proc/mdstat'. Your system may have recognized the drive when you booted up.
'fdisk -l' might show it as well.
If it is there, you can mount the "md" device shown in the cat (assuming you originally put your filesystem directly on it).
Example: 'mount /dev/md0 /<desiredmountpoint>'
If you put an LVM PV on top of it, it is only slightly more work (unless you have a VG name conflist).
You would 'pvscan', 'vgscan', 'vgchange -ay', 'lvs', then mount the LV.
If this isn't the case, let me know.
Last edited by tommylovell; 05-02-2009 at 10:40 PM.
Reason: typo
Thanks for the pointers! It is definitely not LVM- just an FS. I wasn't able to mount. Here's my console output:
Code:
root@localhost:/# cat /proc/mdstat
Personalities :
md0 : inactive sdc1[1](S)
78148096 blocks
unused devices: <none>
root@localhost:/# fdisk -l
Disk /dev/sda: 4034 MB, 4034838528 bytes
255 heads, 63 sectors/track, 490 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xb698b698
Device Boot Start End Blocks Id System
/dev/sda1 * 1 462 3710983+ 83 Linux
/dev/sda2 463 490 224910 5 Extended
/dev/sda5 463 490 224878+ 82 Linux swap / Solaris
Disk /dev/sdc: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x415a13b8
Device Boot Start End Blocks Id System
/dev/sdc1 1 9729 78148161 83 Linux
root@localhost:/# mount /dev/md0 /mnt/md0
mount: you must specify the filesystem type
root@localhost:/# mount /dev/md0 /mnt/md0 -t autofs
mount: wrong fs type, bad option, bad superblock on /dev/md0,
missing codepage or helper program, or other error
(could this be the IDE device where you in fact use
ide-scsi so that sr0 or sda or so is needed?)
In some cases useful info is found in syslog - try
dmesg | tail or so
root@localhost:/# mount /dev/md0 /mnt/md0 -t ext3
mount: wrong fs type, bad option, bad superblock on /dev/md0,
missing codepage or helper program, or other error
(could this be the IDE device where you in fact use
ide-scsi so that sr0 or sda or so is needed?)
In some cases useful info is found in syslog - try
dmesg | tail or so
root@localhost:/#
Try 'mdadm --assemble --scan' and see if that makes md0 active. If it becomes active, then your 'mount /dev/md0 /mnt/md0
' should work.
(--scan says to use /proc/mdstat and /etc/mdadm.conf to look for eligible devices to assemble into a RAID array, and since your /proc/mdstat has your device, you should be good.)
If the md0 device doesn't become active, try 'mdadm --assemble --scan --run'.
Finally, if that doesn't work, you'll need to create an /etc/mdadm.conf file.
Typically you 'mdadm --examine --scan > /etc/mdadm.conf'
Wow. Just had to assemble / scan and mount. That was faster, more concise tech support than any I've received from a lot of expensive vendors. Thanks, Tommy!
SCENARIO: My old RAID1 computer had failed, and I had only one of the two disks remaining. I wanted to recover its contents. I put it into an external hard drive enclosure and plugged it into the USB drive. I did
Code:
fdisk -l
and discovered that the USB drive was under /dev/sdc3 (based on what I recognized as its size).
First I tried
Code:
mkdir /mnt/old
mount /dev/sdc3 /mnt/old
but it said mount: unknown filesystem type 'linux_raid_member'. Fair enough. That's because /dev/sdc3 was a RAID partition.
But I knew that on my old computer I'd assembled the raid array out of two RAID partitions on two disks and then formatted the raid array as EXT3. So I tried
Code:
mount -o ro -t ext3 /dev/sdc3 /mnt/old
but it said mount: /dev/hdb1 already mounted or /mnt/fat32/ busy. Fair enough. That's because the MDADM subsystem is in charge of mounting the raid partitions and exposing them as /dev/md partitions.
Finding this thread, I tried
Code:
cat /proc/mdstat
It said md125 : inactive sdc3[1](S) 2104500 blocks super 1.0. So this thread was correct: MDADM had indeed grabbed hold of sdc3; but because sdc3's mirror pair wasn't present, it meant that MDADM hadn't been able to offer it up to me as some /dev/md.
I tried "mdadm --assemble --scan --run" as per this thread, but didn't make headway. In the end I found an easier solution:
Code:
mdadm --stop /dev/md125
mount /dev/sdc3 /mnt/old
It said mdadm: stopped /dev/md125 and then it let me mount it okay.
Conclusion: by stopping MDADM from grabbing ownership of the raid partition, I was able to mount it as its underlying ext3 just fine.
(Incidentally, I was also able to plug the drive into my Windows machine and use "Disk Internals Linux Reader" to read it. I image that the Linux Reader might just be ignoring the RAID aspect, and treating it directly as EXT3).
The --stop tells mdadm to remove its metadata (which is at the end of the partition). So then, because it is RAID1, it just becomes your normal, run of the mill, partition that can be mounted. (This would not work with any other RAID type, but in the case of RAID1, all the data is there.)
LinuxSpiff, you need to open a new post. Tacking your question onto the end of an old post is frowned upon and it will get limited visibility (it's not on the zero reply queue, which is what many people watch...).
If you open a new thread, you can refer to this thread for background. The first question I would ask you is to confirm that your RAID array is RAID1. So put that detail in your new post. You can then edit this post to remove the content and refer it to your new post.
I have a similar case where RAID1 disks have gone askew.
Unbeknowns to me, /dev/sdb now has NEWER stuff than /dev/sda , because for some months, sda was offline.
Now, sda became online, and sdb is off the raid. How can I recover the contents of sdb?
thanks! -t
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.