This document presents the commands used to recover a Buffalo Drive Station Quattro, with no explanation of the steps. Read Recovering Data from a Buffalo Drive Station Quattro for the details.
This document assumes you are have:
Hardware Setup
Boot a system with Knoppix 6.2 that has at least 3GB of free disc space. The computer I used didn't have enough IDE interfaces to connect all 4 RAID array discs at once, so I copied each disc one at a time. Power down the system every time you swap discs.
I also had to change jumper settings on each the 500GB IDE drives being copied from the Drive Station Quattro so all the scratch space SATA drives, CD-ROM drive and the 500GB drive were recognized by the BIOS. YMMV here.
These are the jumper settings I used:
Note: Remember to follow electrostatic precautions and only connect/disconnect discs with the power turned off!
Recovery Steps
Copy each 500GB disc:
dd if=/dev/sda of=/mnt/2gb/disc1-500GB.img bs=8M
Perform this step on each of the 500GB discs from the Buffalo. Afterwards, you will have:
And yes, you have to manually mount the target 2TB/1TB discs every time.
Now you can unstripe the RAID 5 array using the simple minded unstriping program. Modify the source code or the Makefile to point D1-D4 at each of your disc image copies and the unstriped file name.
Yes, you need about 1.5TiB of additional scratch space to hold the unstriped disc image. In my case, I used the new replacement Buffalo to hold this file.
Now you can run the unstripe program.
/media/Kingston/unstripe
This example assumes you stored the compiled unstripe program on a USB stick. You can also start ssh and copy the program up to the Knoppix system.
Remember to run /etc/init.d/ssh start before trying to ssh to this system. Also remember to hookup a network interface and configure an IP address for this system.
The unstriping takes an extremely long time. In my case, about 3 1/2 days.YMMV here as well. The system I used to unstripe the array only had 2 SATA interfaces, so I had the target Buffalo connected by USB, which was probably the performance bottleneck. If using a 2TB Buffalo as the unstriping destination, format it as NTFS RAID-0 or JBOD.
Once the unstriping has completed, you can mount the unstriped disc image:
mkdir /mnt/ntfs
mount -t ntfs -o loop,offset=32256,ro /mnt/2tbscratch/diskimage.img /mnt/ntfs
If your RAID array is formatted as fat32, you need to specify -t fat32 and possibly a different offset to the start of the disc partition. Use of parted can be useful for finding the filesystem partition offset. Here is an example:
% sudo losetup /dev/loop0 /mnt/2tbscratch/diskimage.img % sudo parted /dev/loop0 Password: GNU Parted 1.8.6 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) unit b (parted) p Model: ATA Hitachi HDT72503 (scsi) Disk /dev/sdb: 320072933376B Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32256B 310282237439B 310282205184B primary ntfs boot 2 310282237440B 320070320639B 9788083200B primary ntfs (parted) q
Assuming the mount command completes successfully, you can now cd /mnt/ntfs and look around.
Next you need to copy the files from the recovered RAID array from the now mounted diskimage.img file to another disc. I re-used the disc containing the 3 500GB disc{123}-500GB.img files. Remember to delete these 3 files first. :)
rsync --progress -axv /mnt/ntfs /mnt/2gb
Next, I reformatted the replacement Buffalo as RAID-5, and copied recovered files to this new disc array:
rsync --progress -axv /mnt/2gb /media/HD-QSSU2
Now you are done recovering your RAID array, and have a backup of your data as well.
Comments
If you have a system with 4 IDE interfaces and a SATA interface, you can skip the creation of 4 500GB disc image files, and unstripe the discs directly. Configure D1-D4 to /dev/sda /dev/sdb /dev/sdc /dev/sdd. This will save time, and use much less disc space during the recovery.
Copyright (C) Adam Bernstein. All Rights Reserved
Last updated: 4/3/2010