Call us — 01223 655015
Mon–Fri · 9am–5:30pm · No fix, no fee
Start a free diagnostic →
// scenario · NAS · QNAP · RAID 0

They added a disk to fix it. That is what finished it.

A Netgear ReadyNAS reporting bad sectors across several members and running badly. The client added a disk expecting the unit to rebuild and stabilise itself. The expansion started, and the array never came back.

← All case files · from £500 + VAT

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.

A NAS is running low on space, so a larger disk is added or an existing one replaced. The unit begins expanding the volume. Somewhere during the process — which can run for days on large disks — it is interrupted by a power cut, a disk error or a reboot. The volume does not come back.

// what expansion actually does

It rewrites the whole array in place.

Adding a member to an existing array is not an append operation. The stripe width changes, which means every stripe on the volume has to be read, recalculated and written back in the new geometry. The array is physically rearranged while remaining online.

During that process the disks contain two layouts at once: the region already converted uses the new geometry, and the region not yet reached uses the old one. A pointer records how far the conversion has progressed.

If that pointer is lost or the process stops partway, the array is in a state no controller is designed to assemble. Half the volume is in one arrangement and half in another, and nothing on the unit knows where the boundary is.

// why it is still recoverable

Both layouts are intact.

Nothing has been destroyed. Every stripe is present in one geometry or the other, and the boundary between them is discoverable by examining where the pattern changes.

Reconstruction means establishing both layouts, finding the transition point, and assembling the volume in two parts — the converted region read with the new stripe width, the remainder with the old. The file system above sees a single continuous volume once that is done correctly.

The work is exacting rather than uncertain. What makes it fail is not the complexity but subsequent attempts to resume or restart the expansion, which write into a state the unit has misread.

// what to do

Three things, in order.

01 / STOP THE UNIT

Do not resume

Resuming an interrupted expansion asks the unit to continue from a position it may no longer know. Power it down instead.

02 / DO NOT ADD OR REMOVE DISKS

The set is the state

Changing membership mid-expansion compounds the problem. Send the array exactly as it stands, including the new disk.

03 / LABEL EVERYTHING

Including the new member

Which disk was being added matters as much as the original order, because it is only populated in the converted region.