What to do right now
- Stop using the array, label each disk with its position and do not start a rebuild or initialisation.
- Create an image of every member disk on separate storage that is not part of the array.
- In RAID rebuild, add the images, run Detect settings, then click Build virtual RAID.
How to rebuild the array and recover files
Label and image every member
Write each disk's slot or port number on it before removing it. Then, in Disk health & tools, open Drive image and create an image of each member with Create a drive image (skip bad sectors). Save the images to a disk that is not in the array and has room for all of them.
Open RAID rebuild and add the images
In Disk health & tools, open the RAID rebuild tab, or use Rebuild a RAID from its disks on the home screen. Click Add image… for each member. If you know the original order, add them in that order; the list order is the array order.
Mark a missing RAID 5 disk
If one RAID 5 member is dead or unreadable, click Add a missing disk and move it to that disk position. The app recalculates its contents from parity on the other members. A disk that dropped out of the array long before the failure should also be treated as missing.
Run Detect settings
Click Detect settings. If Linux RAID (mdadm) metadata is found, its level, stripe size, layout and order are suggested first. Otherwise the app tries common combinations of level, stripe size, parity layout and disk order, and scores each by whether file system structures land where they should.
Check the best match or enter settings
Review the best match and its match score, then click Use these settings. If nothing could be confirmed, enter the settings you know yourself, such as the stripe size from the old controller, and set a start offset for disks whose data does not begin at the first sector.
Build the virtual RAID
Click Build virtual RAID. When the settings are right, the result shows the file system it found, such as NTFS or ext4. If no file system is found, the order, stripe size or layout is probably wrong; try another suggestion before scanning.
Scan and save outside the array
Click Scan this RAID and recover files as from any drive. When saving, choose a folder that is not on any member disk; the app checks every member and blocks saving onto them.
What the RAID settings mean
Five settings decide how the members fit together. The level says how data is spread: RAID 0 stripes without redundancy, RAID 1 mirrors, RAID 5 stripes with one parity block per row, and JBOD simply appends one disk after another. The stripe size, also called chunk size, is how much data goes to one disk before moving to the next; values such as 64 KB, 128 KB and 512 KB are common.
For RAID 5, the parity layout says where the parity block sits in each row. There are four classic variants, left and right, symmetric and asymmetric, and Linux software RAID uses left symmetric by default. The disk order and the start offset, where the array data begins on each disk, complete the picture. One wrong value usually produces a volume that looks empty or corrupted.
How one missing RAID 5 disk is rebuilt
In every RAID 5 row, the parity block is the XOR of the data blocks. If one block is missing, XOR of all the remaining blocks gives it back exactly. That is why a RAID 5 survives the loss of any single disk, and why the app can rebuild a missing member on the fly while you scan. With two members missing, the equation has two unknowns and cannot be solved, so the array cannot be rebuilt from parity.
The calculation only works when every remaining member is current. A disk that dropped out days earlier still looks healthy but holds older blocks, and using it produces silently damaged files. When in doubt, try the rebuild once with that disk marked as missing and compare the results.
Hardware controllers and other array types
Metadata written by hardware RAID controllers is not read, so the app cannot take the settings from it. Auto-detect still works from the data itself, and the controller's configuration screen or documentation often states the stripe size and order. Some controllers keep their own area at the start of each disk, which is what the start offset is for.
RAID 6, RAID 10 and arrays whose volume uses Btrfs, ZFS or ReFS are outside what the app can rebuild or read. For a NAS with an ext4 volume, the separate guide on NAS RAID disks covers the NAS-specific steps.
When a virtual rebuild will not work
- The array is RAID 6 or RAID 10, or the volume on it is Btrfs, ZFS, ReFS or APFS.
- Two or more RAID 5 members are missing, or any member of a RAID 0 is missing.
- A member clicks, is not detected or cannot be imaged; a recovery lab is the safer route.
- The array was initialised or rebuilt with wrong settings after the failure, overwriting data.
How FileFix Ultimate helps
- Rebuilds RAID 0, 1, 5 and JBOD virtually from images or disks, without writing to any member.
- Supports all four RAID 5 parity layouts and a per-member start offset.
- Detects mdadm metadata and scores other layouts against the file system structures it finds.
- Recalculates one missing RAID 5 member from parity and blocks saving onto any member.
FileFix Ultimate is free for personal use, works offline and never writes to the drive you are recovering from. Business use needs a one-year licence per PC. Check the signature before you run it.
Frequently asked questions
Which stripe size should I try first?
Let Detect settings try the common sizes first. If you enter it yourself, 64 KB and 512 KB are frequent defaults, and the old controller or NAS settings often record the real value.
What does the match score mean?
It reflects how many file system structures, such as boot sectors and directory records, appear where a given combination says they should. A clearly higher score than the others is a good sign, but the real test is whether the built RAID shows a file system with sensible folders.
Can I recover a hardware RAID after the controller died?
Often, if the level is RAID 0, 1 or 5 and the disks themselves are fine. Image the disks, add them in their port order and run Detect settings; enter the stripe size from the controller's documentation if detection cannot confirm one.
When do I need a start offset?
When the array data does not begin at the first sector of each disk, for example because a NAS or controller keeps a system area there. mdadm metadata provides it automatically; otherwise the app suggests checking offsets if no file system is found.