Call us — 01223 655015
Mon–Fri · 9am–5:30pm · No fix, no fee
Start a free diagnostic →
← All case files // scenario · Servers & RAID

They thought it was RAID 0. That would have been the end of it.

Three disks, one dead, and nobody left in the business who knew how the array had been set up. If it was striped the answer was going to be short — so establishing what it actually was came before anything else could happen.

DeviceWindows software RAID · 3 disks
FaultOne member dead, volume unrecognised
Turnaround8 days
Outcome99% recovered
MethodLayout proven from the disks

This is a scenario, not a case study. It describes a failure pattern we handle regularly and how it is approached, written from the technical work rather than from one client's job. Our documented case files are here.

An array built in software — Windows Storage Spaces, dynamic disks, Linux mdadm, or a ZFS pool — stops importing. The host that assembled it has failed, or the operating system has been reinstalled, and nothing remains that knows how the volume was arranged.

// software arrays fail differently

The metadata is on the disks, which helps.

Hardware RAID keeps configuration on a controller. Software RAID keeps it on the members, which is a genuine advantage: the disks carry their own description and can frequently be assembled on entirely different hardware.

mdadm writes a superblock to each member recording the array UUID, level, chunk size and device role. ZFS writes labels at both ends of every vdev member. Storage Spaces records pool metadata across the physical disks. In each case the information needed to rebuild is present rather than lost with the machine.

What goes wrong is usually not the metadata but an attempt to fix things. Forcing an import, recreating a pool with the same parameters, or letting Windows convert disks back to basic all write over that description.

// platform by platform

What each needs.

PlatformWhat is requiredCommon mistake
Linux mdadmAll members, superblocks intact Assembles readily once the superblocks are read. Missing members can be tolerated up to the array's redundancy. mdadm --create
ZFSEvery vdev member present A pool will not import with a member missing from a vdev. Send the complete set including any that report as failed. zpool import -f
Storage SpacesAll physical disks in the pool Pool metadata is distributed. Parity spaces in particular need the full set to reconstruct the slab map. Removing the pool
Dynamic disksAll members of the volume The LDM database describes the layout and survives well. Converting back to basic destroys it. Convert to basic
// the recovery

Read the metadata, then rebuild from images.

Every member is imaged first. The on-disk metadata is then read directly rather than asking the host to import — superblocks, labels or pool structures parsed to establish level, order, chunk size and offsets.

Where that metadata has been damaged, the same geometry-derivation methods used on hardware RAID apply: test candidate parameters against file system structures until the arrangement that makes sense is found.

The volume is then assembled from images, never from the original disks.