Sunday, May 18, 2014

Fixing the "HasForeignDsk[s]" error on Seagate BlackArmors

My Seagate BlackArmor 440 NAS decided to restart in the middle of a write operation the other day, corrupting its RAID 5 volume. I managed to recover the data on the drives using another computer, but to my horror found that the NAS would no longer accept any of its drives to make a new volume with, displaying the titular error. After a few day's worth of fruitless Googling, I stumbled upon the solution.
The NAS, when formatting a disk for use in a volume, dedicates a small portion of it to store volume and disk information. If the NAS has previously marked a disk as corrupted or broken, it won't try to use it at all; it will just ignore it. The solution is to completely zero out the disk. Eventually I might get around to figuring out exactly where the NAS stores its status flags, but that's a project for another day.

Step by step instructions for Ubuntu (and thus most other Linux distros):

**WARNING: THIS WILL IRRECOVERABLY REMOVE ALL INFORMATION FROM THE TARGET DISK! IF YOU WANT TO RECOVER DATA FROM THE BROKEN VOLUME, DO THAT FIRST!**

1) Power the NAS down and remove all of its disks.

2) Attach one of the drives to your computer (I recommend not using a USB to SATA adapter; it will be ungodly slow).

3) Now you'll need to find the /dev/ handle for the disk. Open the Terminal and run "sudo fdisk -l" to list every disk attached to your system. Find the NAS's disk in the list; it will probably be the one with an "unknown" partitioning scheme. Write down its handle (it will be something like "/dev/sdX").

**WARNING: THIS WILL NOT DOUBLE-CHECK YOUR SELECTED DRIVE. IF YOU ACCIDENTALLY CHOOSE ANOTHER DRIVE (LIKE YOUR MAIN DRIVE), IT WILL BE ZEROED OUT, RESULTING IN DATA LOSS! DO NOT ATTEMPT IF YOU ARE UNSURE!**

4) Now run "sudo dd if=/dev/zero of=/dev/sdX", where sdX is the letter of the NAS's drive you found in step 3. This will most likely take a long time.

5) Repeat steps 3 and 4 with another one of the NAS's drives.

6) Attach the two zeroed-out drives to the NAS in slots 1 and 2 (don't attach the other two yet). Power on the NAS and connect it to the network.

7) Get to the NAS's admin interface (using either Seagate's "Discovery" tool or the NAS's web interface) and complete setup.

8) Connect the other two drives. You should now be able to claim them normally.

10 comments:

  1. I have an alternative method that works, and I think it is faster. Also, it does not depend on having Linux installed, in fact it works on any computer, even one with no operating system installed at all.
    My method is to use GParted to just delete the partitions on the drives. I found that I don't need to completely zero them.
    The GParted method has the advantage that it works with any computer no matter what OS is installed on it; even a computer with no OS installed at all. In fact it is safest if you unplug any HDDs that are installed in the computer to avoid the possibility of deleting partitions on the wrong disk.

    Firstly, add a 0th step.
    Step 0) Go to the GParted website, download a copy of GParted as an ISO and burn it to a CD.

    Omit steps 3, 4 and 5 above and use the following steps.

    Step 3) Boot the computer using the GParted boot CD, and accept the default answers to all the questions (about 4 of them).
    Step 4) When GParted starts, select the HDD you have just installed. Make sure you select the right disk!!
    Step 5) Using GParted, delete all the partitions on the disk so that the disk is all "Unallocated space".

    Step 6 to 8, complete these steps as listed above.

    This method is very quick. You can delete the partitions on each HDD in about 5 minutes each. I don't know how long the "sudo dd if=/dev/zero of=/dev/sdX" Linux command takes to complete.

    Thank you for listing your method, it made it much easier for me to get started on this.

    ReplyDelete
    Replies
    1. I (Anonymous, above) am Michael Walsh.

      Delete
    2. This worked like a charm. After two full days of screwing with this, I got a solution. Thank you.

      Delete
  2. Men you the best ...... S.A.Promo Team

    ReplyDelete
  3. Hello, I am experiencing the same problem. Do I have to do this with all 4 disks? I've tried with the disk that was not being detected by the NAS but the problem persists. If I remove the problematic disk the NAS starts but it does not recognize the raid array.

    ReplyDelete
  4. I have a raid 0 with disk 2 as Foreign... What should i do?

    ReplyDelete
  5. I have been given one of these recently, I've have tried no drives 1 drive, 2 drives and 4 drives, The NAS shows an IP Address with no drives but can only be pinged, Cant access the web interface not can the Seagate Discovery see it, With drives in it isn't accessable either but shows Has Foreign Disks, I've tried the reset button on the back for different periods of time with no success of accessing the NAS to set it up.

    I'm hoping to get it sorted eventually!

    ReplyDelete
    Replies
    1. Ive had sucsess! Even though the disks were erased and blank, The partion table was set to GPT, I had to redo this as MBR and they were detechted as blank disks straight away.

      Delete
  6. Hello Alan, I have the same problem as you, what would be the steps to follow? I am a bit lost.

    Greetings and thank you

    ReplyDelete