NAS Symptom Recovery
QNAP Firmware Update Failure Recovery
Your QNAP NAS will not boot after a firmware update. The status LED stays dark, the unit loops endlessly, or QTS reports an empty storage pool. In a genuine firmware brick, the failure is isolated to the internal DOM flash that stores the operating system. Your data volumes live on the member drives and are unaffected. We remove the drives, image each one through a write-blocker, reconstruct the mdadm or ZFS array offline, and extract your files. No data, no fee.
Does a failed QNAP firmware update destroy my data?
No. A failed firmware update corrupts the internal DOM flash that stores QTS, not the member drives that hold your data. The configuration database on partition 1 may desync, causing QTS to report an empty pool, but your files on partition 3 remain intact. The real danger is the Fresh Install initialization prompt that appears after DOM recovery. Accepting it runs mdadm --create and overwrites your RAID superblocks.

What Actually Fails During a QNAP Firmware Update
QNAP stores the QTS operating system on an internal DOM flash device, not on the member drives. A firmware update writes the new OS image to this DOM. If the write is interrupted, the DOM is corrupted. The SATA drives holding your data are untouched.
The DOM (Disk on Module)
The DOM is a small flash storage device soldered to the motherboard or connected via an internal USB header. It stores the QTS kernel, initrd, and the /mnt/HDA_ROOT filesystem. During a firmware update, QTS unpacks the .tgz payload and overwrites the DOM contents. A power loss mid-write leaves the DOM with an incomplete boot image. The NAS cannot start Linux, so it either hangs on a solid status LED or enters a reboot loop.
The member drives are idle during the firmware update except for a small system-config write to partition 1. Your data on partition 3 is not being updated. The mdadm superblocks, LVM headers, and ext4 filesystem journals on partition 3 remain in the same state they were in before the update began.
Known Bad QNAP Firmware Releases
QNAP has shipped multiple firmware updates with documented bricking behavior. The required reboot for QTS 5.1.4.2596 often exposed the Intel LPC clock degradation hardware defect on TS-251+ models, as the degraded CPU could no longer complete POST after restarting. QTS 5.2.8.3359 caused total network death on TS-464 models by defaulting the internal IP Security to a Level 3 Allow List without including the local subnet. QTS 5.2.2.2950 was partially withdrawn after locking users out of storage entirely.
These are manufacturer defects, not user error. The drives are fine. The DOM is corrupted. Recovery requires bypassing the DOM entirely and reading the member drives directly.
Why Does QNAP Recovery Mode Differ Between ARM & x86 Models?
QNAP ships two boot architectures, & the firmware-recovery entry path is not the same on both. x86 units (Intel or AMD) boot QTS from an internal USB-style DOM flash; ARM units boot from an on-board SPI flash with a different recovery trigger. The published recovery procedure for one does not transfer cleanly to the other.
x86 QNAP models, the TS-453 & TS-251 series among them, store QTS on an internal USB-style DOM, & QNAP publishes a NAS Recovery Guide aimed at x86-based units that reflashes that DOM. ARM-based models in the TS-2xx & TS-4xx lines run on Annapurna Labs or Marvell SoCs & keep their boot firmware on SPI flash rather than a USB DOM, so their recovery entry uses a hardware reset trigger & a TFTP-style network reflash instead of direct USB-DOM reflashing. We treat the architecture as the deciding factor before recovery, the same discipline our QNAP NAS recovery service applies across both product lines.
- Boot flash interface
- x86 (Intel / AMD): internal USB-style DOM flash
- ARM (Annapurna / Marvell): on-board SPI flash
- Recovery entry path
- Reflash the DOM per QNAP's x86 NAS Recovery Guide
- Hardware reset trigger plus a TFTP-style network reflash
- Example models
- TS-453, TS-251 series
- TS-2xx, TS-4xx ARM
The practical takeaway is that an x86 reflash walkthrough will not match an ARM unit step for step, & the reverse holds too. We do not run a generic reflash sequence on an unidentified board; the boot-flash interface decides the recovery entry, & that is true whether the unit is a single-disk model or a full RAID array built across several members.
Recovery Mode writes the DOM, never partition 3
A bricked DOM keeps the unit from booting QTS, so it cannot answer the network & will not show up in Qfinder Pro. The bare-metal firmware recovery happens before that: a USB boot reflash on x86, or a hardware-reset trigger plus a TFTP-style network reflash on ARM. That reflash writes only to the DOM or SPI boot flash. It does not touch Partition 3 on the member drives, so a successful reflash leaves the mdadm arrays & their ext4 or ZFS contents physically intact. Qfinder Pro comes in later, once the unit boots again, as the tool that applies standard QTS updates over the network.
A reflash on its own does not get you back to a mounted pool. The freshly written QTS boots factory-default, no longer maps the existing arrays on the drives, & presents an empty or uninitialized pool. That lands you straight in the Fresh Install trap documented below, where accepting the initialization prompt runs mdadm --create over your superblocks. The architecture detail changes how you enter recovery; it does not change the config-DB desync waiting on the other side.
How Initialization After DOM Recovery Overwrites Array Metadata
The primary cause of unrecoverable data loss after a bricked firmware update is not the update itself. It is the initialization prompt that appears when you attempt to recover the NAS. After reflashing the DOM, the freshly installed QTS has a factory-default configuration database. It no longer recognizes the existing mdadm arrays on your drives. QTS presents the storage pool as empty or uninitialized and asks if you want to create a new one.
- Initialization runs mdadm --create. This command writes new superblocks to partition 3 of every drive. For mdadm 1.2 metadata, it overwrites the first 4-8 KB at the start of the partition. For 1.0 metadata, it overwrites the end of the partition. The original RAID geometry, stripe size, and disk order are destroyed.
- LVM headers are wiped. The LVM Physical Volume header and Volume Group Descriptor Area on each drive are overwritten. The mapping from the RAID device to the ext4 logical volume is severed. The filesystem cannot be located even if the RAID is reconstructed.
- QuTS hero pools are destroyed. For ZFS systems, initialization creates a new zpool with fresh uber-blocks. The original Merkle tree linking to your data is overwritten. ZFS recovery after pool creation is possible but more complex.
- Even clicking Cancel can be risky. Some QTS versions perform background scans or auto-repair attempts that write to the drives without explicit user confirmation. The safest action is to power down immediately and remove the drives.
If you see any prompt to initialize, create, or format the storage pool after a firmware brick: power off the unit. Remove the drives, label each one with its bay number, and contact us. The data is recoverable at that point. After initialization, recovery is harder and more expensive.
QNAP Member Drive Partition Layout
QTS partitions each member drive into five sections. Partitions 1, 2, 4, and 5 are system arrays. Partition 3 holds your data. Understanding this layout explains why a DOM failure does not affect your files.
| Partition | md Device | Contents |
|---|---|---|
| sdX1 | md9 | QTS system config mirror (~510 MB). RAID 1 across all drives. |
| sdX2 | md256 | System swap RAID (~0.5 GB). The configuration database lives on md9, not md256. |
| sdX3 | md0 / md1 | User data storage pool. The remainder of the drive capacity. |
| sdX4 | md13 | Extended system array (~486 MB). RAID 1 across all drives. |
| sdX5 | swap | Swap / cache partition (~8 GB) |
For data recovery, only partition 3 (sdX3) matters. This partition contains the mdadm RAID array that holds your files. On QTS systems it is managed through LVM2 with an ext4 logical volume. On QuTS hero systems it contains a ZFS pool directly. The system partitions (md9, md13, md256) store QTS boot and config files. They do not need to be recovered for user data extraction.
QTS vs QuTS Hero: Different Recovery Paths After a Firmware Brick
QNAP runs two operating systems with completely different storage stacks. The recovery procedure depends entirely on which OS was running before the failure.
QTS Recovery: mdadm + LVM2 + ext4
Standard QTS models store data on ext4 volumes atop Linux mdadm RAID with LVM2 in the middle. After imaging each member drive, we read the mdadm superblocks from partition 3 using mdadm --examine. The superblock contains the RAID level, chunk size, layout, member order, and data offset. We then assemble the array read-only with mdadm --assemble --readonly, activate the LVM volume group with vgchange -ay, and mount the ext4 logical volume read-only to extract files.
QNAP typically uses a 512K or 64K chunk size for RAID 5 and RAID 6 arrays. The superblock version matters: 1.0 places metadata at the end of the partition with data offset 0; 1.2 places metadata 4KB from the start with a data offset around 1MB. Specifying the wrong version shifts every block and produces garbage.
Older QTS 3.x-era arrays often carry the legacy metadata 0.90 superblock, & it is the easiest version to misread. The 0.90 superblock is 4KB long, sits in a 64KB-aligned block 64KB to 128KB from the end of the device, & carries data offset 0, the same as 1.0. It also caps the array at 28 component devices & a roughly 2TB component size, 4TB on newer kernels. So both 0.90 & 1.0 keep the metadata at the end & the data at the very front of the partition.
This is where a reconstruction goes wrong. Forcing a 0.90 or 1.0 array (data at offset 0) to assemble as 1.2 tells mdadm to expect data at a 1MB offset, so the ext4 & LVM headers land at the wrong place & you read garbage. We pull the real version with mdadm --examine on each cloned image first, then assemble read-only with mdadm --assemble --readonly against that exact metadata version. The same offset discipline carries across every Linux mdadm array we rebuild, QNAP or not.
QuTS Hero Recovery: ZFS Pool Import
QuTS hero models like the TVS-h674 and TS-h886 run ZFS directly on partition 3 with no mdadm or LVM layer. ZFS maintains multiple copies of its uber-block in a circular array on each vdev label. When a pool fails to import, we clone every member and use zdb to walk the uber-block ring, identifying the most recent consistent transaction group.
We import the pool read-only against the chosen transaction group with zpool import -F -o readonly=on. If the pool ran deduplication, the Deduplication Table must fit in RAM at import time; approximately 5 GB of RAM per 1 TB of deduplicated data. A pool that imported fine on a 128 GB host may kernel-panic on a smaller recovery workstation.
QNAP ships a customized QZFS fork with an altered on-disk indirect-block layout that the stock OpenZFS toolchain does not fully understand. This is why a DIY attempt with a plain zpool import on a vanilla Ubuntu or Debian OpenZFS host often refuses to assemble the pool even after you've targeted the correct transaction group for rollback. QNAP-aware methodology is required: we parse the vdev labels and uberblock ring offline from the write-blocked clones and rebuild the metadata mapping ourselves, rather than leaning on a native import that the proprietary layout blocks.
Because zpool transaction rollback and uber-block analysis are a separate discipline from QTS mdadm reassembly, we keep the full procedure on our QNAP QuTS hero ZFS recovery walkthrough.
QuTS Hero Pool Metadata Inconsistency: Why the Pool Will Not Import After a Brick
QuTS hero leans on the ZFS Intent Log (ZIL) to record synchronous writes before they land in the main pool. ZFS is atomic copy-on-write, so an interrupted transaction group (TXG) commit is normally just discarded and the pool falls back to the last valid uber-block. The danger during a firmware brick is the DOM and member drives dropping or reordering writes with no power-loss protection, which leaves the on-disk metadata in an inconsistent state that the last uber-block cannot cleanly describe. You reflash the DOM, the OS comes back, and zpool import still returns an I/O error because ZFS cannot find a consistent point to mount from. On most QuTS hero units the ZIL is embedded in the pool itself. It lives on a separate SLOG device only when one was configured, such as an NVMe drive in a TS-h886.
ZFS writes its state in numbered transaction groups, and every vdev label keeps a circular ring of uber-blocks pointing at recent TXGs. From the cloned member images we parse that ring to find the last TXG that fully committed before the failed update, then roll the pool back to it.
zpool import -F and its more aggressive form zpool import -FX (an extreme rewind that runs an exhaustive search for a valid TXG) both work by discarding the newest transaction groups until they reach the last consistent on-disk state. To target a specific group we use zpool import -T <txg>. Anything written in the discarded groups is gone. That is a deliberate, accepted tradeoff, done read-only against the images, not a magic fix.
We pick the rollback target offline, before any import. Running zdb -u against the raw member images enumerates the uber-block array, and zdb -l reads the vdev labels. Together they tell us which TXG is the safe place to land without touching the live disks.
Never run zpool import -f (force) on an inconsistent pool before imaging is complete. A forced import writes new transaction groups to the live disks and replays or discards the intent log, which mutates the metadata tree and advances the uber-block ring, pushing the historical TXGs that recovery depends on out of the ring one commit at a time until they are gone. The image-first, read-only ordering is mandatory.
Every member drive is imaged through a hardware write-blocker with the PC-3000 Portable III, PC-3000 Express, Data Extractor Express RAID Edition, or DeepSpar Disk Imager, and all uber-block parsing and pool import happens offline on the clones.
Can I Recover an iSCSI LUN from a Bricked QNAP?
Yes, in almost every firmware-brick case. A QNAP iSCSI LUN is not a separate disk you can pull out of a bay. It is a logical construct carved out of the same storage pool that sits on the partition-3 array, so a DOM brick that corrupts only the internal flash never reaches it. Getting the LUN back means rebuilding that array offline first, then addressing the LUN by its type.
QNAP builds LUNs two different ways, & the difference decides where a recovery technician goes looking. A block-based LUN is provisioned straight from the storage pool & bypasses the host filesystem, so there is no container file to find; a file-based LUN is the opposite, an image file sitting on an ordinary QNAP volume next to your shares. Either way, everything your initiator sees as a raw block device (a VMware VMFS datastore, a Windows Server VHD or VHDX, a database volume) lives inside that construct, not on a partition of its own.
QNAP LUN types & where each one lives
- QTS block-based LUN
- Provisioned from the storage pool as a logical volume in the
LVMstack, bypassing the host filesystem. There is no file to look for; the LUN is a slice of the volume group that sits on the partition-3mdadmarray. - QTS file-based LUN
- An image file stored on an ordinary QNAP volume, alongside the shares you browse over SMB. QNAP does not publish one universal filename for that container, so any walkthrough telling you to search a QNAP volume for one fixed container name has nothing to key on.
- QuTS hero block-based LUN
- Backed by a ZFS volume, a zvol, inside the pool rather than by a file inside a dataset. It is reached through a pool import, not through a filesystem mount, which is why QuTS hero LUN work does not follow the QTS procedure.
None of the three is a partition, & none of them can be read by pulling one drive out of a bay & plugging it into a desktop. All three are carved out of the storage pool that sits on partition 3, so a LUN is exactly as recoverable as that array & no more. The failed update corrupts the internal DOM & desyncs the partition-1 configuration database that maps pools to arrays; it does not write to partition 3, so the LUN & the block device virtualized inside it stay where they were.
The multi-stage recovery: rebuild the array, then reach the LUN
Recovering an iSCSI LUN adds steps to the standard reconstruction. You rebuild the pool the LUN was carved out of, then present the LUN itself as a block device so the payload your initiator wrote becomes readable. The middle steps differ by LUN type.
- Image every member drive. Each disk is cloned through a hardware write-blocker with a PC-3000 Portable III, PC-3000 Express, or DeepSpar Disk Imager. Every later step runs on the clones, never the originals.
- Rebuild the array offline. On QTS we reassemble the
mdadmarray read-only & activate the LVM volume group against the images; on QuTS hero we import the ZFS pool read-only. The virtual array assembly & destriping runs on Data Extractor Express RAID Edition, not on the imaging hardware. - Establish which LUN type you are chasing. This decides everything downstream. On QTS,
lvsagainst the reassembled volume group lists the logical volumes it holds, & a block-based LUN is one of them. A file-based LUN surfaces only once the volume it sits on is mounted or parsed offline. - Take the path that type dictates. A block-based LUN on QTS is reached by activating its logical volume read-only against the reassembled partition-3 array; on QuTS hero the equivalent is reading the zvol that backs the LUN from a read-only pool import. A file-based LUN is reached the other way: mount the underlying volume read-only, copy the image file onto recovery storage, then attach that copy as a loopback block device.
- Open the payload inside it. Whichever path exposed the block device, what it carries is whatever the initiator wrote there (a VMFS datastore, a VHD or VHDX, a raw filesystem), & the individual virtual machines or files are read out of that layer last.
The payload layer is standard work once a stable block device is in hand; what decides the outcome is the offline array rebuild underneath it, the same discipline our QNAP recovery service applies to every pool.
Re-initializing the pool destroys the LUN with everything else
A LUN carries no separate protection. It is only as safe as partition 3. If you reflash the DOM, boot to a factory-default QTS, & accept the prompt to re-initialize or recreate the storage pool, QTS runs mdadm --create over partition 3. That writes new superblocks over the array metadata & takes the volume group with it, along with every logical volume in that group.
A block-based LUN is one of those logical volumes. A file-based LUN sits on a filesystem inside one of them. Neither survives, there is no second copy of a LUN elsewhere on the unit, & the VMFS datastore or VHD virtualized inside goes with it.
Why Is My QNAP Stuck in a Boot Loop After an Update?
A boot loop after a firmware update means the DOM contains an incomplete or corrupted QTS image. The bootloader finds a kernel but cannot complete the init sequence, so the watchdog timer forces a reboot. This repeats indefinitely.
The QNAP boot sequence loads the kernel and initrd from the DOM into RAM. If the initrd is truncated because the firmware update was interrupted, the kernel panics when it tries to mount the root filesystem or start essential services.
The hardware watchdog detects the hung boot and resets the system. On some models the status LED alternates colors rapidly; on others it stays dark or shows a brief flash with each reboot attempt.
Read the color, not only the blinking. An alternating red and green status LED is QNAP's signal for an active background operation: a disk format, an in-flight firmware write, a capacity expansion, or a RAID rebuild. If that alternation keeps running with no update in flight, one of the other operations on that list is running, and the one that puts data at risk is the box rebuilding a degraded array on its own. That rebuild reads every sector of the surviving members while the array runs with reduced or no redundancy.
Red is a different report. A QNAP that comes up showing a red status light instead of a boot flash has booted far enough for QTS to detect a critical condition: a failed disk, bad sectors, a degraded pool, a full disk volume, a system fan failure, or a hardware self-test error. The DOM no-boot signature is narrower than that: the status LED flashes green roughly every half second, the unit emits no beeps, & it never appears in Qfinder Pro.
The member drives are not spinning during most of this loop. The SATA controller may initialize briefly at boot, but without a functional QTS there is no array assembly, no filesystem mount, and no data access. Your files on partition 3 are completely untouched by the boot loop.
The only risk is physical wear from repeated power cycling if the loop runs for days. Power down the unit to stop the cycle and preserve the drives.
Is My QNAP Bricked by a Firmware Update or Hit by DeadBolt Ransomware?
Both land you on the same screen: a QNAP that boots into an unexpected update or recovery web page with the storage pool reporting empty or uninitialized. A genuine DOM brick is a flash write failure on the motherboard. DeadBolt is ransomware that hijacked the web UI & encrypted your files in place. You cannot tell them apart from the screen alone, & the recovery path is different for each.
The reason the two get confused is that QNAP's own response made them look identical. DeadBolt replaced the device login & HTML web interface with a ransom page, so it read as an unexpected system screen.
QNAP then pushed forced firmware updates (version 5.0.0.1891) that stripped the ransom screen off the interface, which produced surprise reboots & "Firmware Update" log entries on units that were never bricked. A user who saw the ransom page, then saw a forced update, then saw an empty pool has no way to know which event touched the disks & which only touched the interface.
| What you check | Genuine DOM brick | DeadBolt ransomware |
|---|---|---|
| What actually failed | An OS-level flash write to the motherboard DOM did not complete. | A cryptographic attack ran against your files on the data volume. |
Partition 1 config DB | Desynced from the DOM, so QTS no longer maps the pool to its mdadm arrays. | Untouched. DeadBolt did not corrupt the config database. |
Partition 3 user data | Physically intact. The bytes were never rewritten. | Encrypted in place, with .deadbolt appended to affected files. |
| Motherboard DOM | Corrupt or incompletely written. This is the brick. | Untouched. The attack never wrote to the DOM. |
A genuine brick leaves your files where they were. The flash on the motherboard failed mid-write, the Partition 1 config database that maps the pool to the mdadm arrays falls out of sync, & QTS reports an empty pool because it can no longer find the mapping.
The data on Partition 3 never changed: on QTS that is the LVM2 volume on top of ext4, & on QuTS hero it is the OpenZFS pool. The full DOM mechanism is covered earlier on this page; here it only matters as the contrast.
DeadBolt is the opposite. It targeted internet-exposed QNAP & ASUSTOR units through a claimed zero-day, hijacked the device login & HTML web UI, & replaced it with a ransom page, which is why it presents as an unexpected system screen. It encrypted user files in place on Partition 3 & appended the .deadbolt extension.
It did not corrupt the motherboard DOM, & it did not corrupt the Partition 1 config database. The brick is in the interface & in your files, not in the firmware.
Why the recovery path splits here
For a genuine brick we image every member through a hardware write-blocker, then rebuild the Partition 1 config mapping & reassemble the mdadm plus LVM2 plus ext4 stack on QTS, or import the QuTS hero OpenZFS pool from the clones via uberblock & transaction-group rollback. The array assembly runs on Data Extractor Express RAID Edition against the images, never the originals.
For a DeadBolt case the work is different. We still image first & work read-only on clones, but the job is triage: identifying which datasets carry the .deadbolt extension & salvaging the unencrypted Partition 3 data, the files that escaped the encryption pass. We do not state that we decrypt .deadbolt files; we image the disks & report what is recoverable in the clear.
DeadBolt is the textbook reason a redundant array is not a backup. RAID gives you hardware availability & uptime; it does not protect your data. Ransomware writes to every member at once, so parity & mirroring spread the damage instead of containing it. The one defense that survives this class of attack is a discrete, offline copy of your files.
How Do I Restore the QNAP Original Partition After DOM Recovery?
You don't restore the original partition by reflashing the DOM. The fix is to rebuild the pool-to-array mapping offline from cloned images. The data on Partition 3 never moved; what's missing is the configuration database on Partition 1 that tells QTS which mdadm array belongs to which storage pool. We reconstruct that mapping by reading the array metadata directly off the drives, not by asking QTS to guess.
The QTS configuration database on Partition 1 holds the map that links each high-level storage pool to its underlying mdadm array (the same Linux software RAID that has been around since 2001). At boot, QTS reads that database to locate & assemble your storage pools. When a firmware update corrupts the DOM, that mapping is what desyncs.
Here is the part most write-ups miss. Reflashing the DOM installs a fresh, factory-default QTS on the motherboard's internal flash.
That fresh OS boots without adopting the existing configuration database from Partition 1, so it comes up with no record of which mdadm arrays correspond to which pools, & the UI shows an empty or uninitialized pool even though your files on Partition 3 are completely intact. Reflashing alone can't restore the mapping because the new QTS has nothing to read it from.
This is the inverse of the Fresh Install trap above: that section is about not letting QTS run a destructive mdadm --create; this one is about rebuilding the lost mapping without writing to your drives at all.
Rebuilding the pool mapping offline from cloned images
We do all of this on write-blocked clones. Every member drive is imaged first & the originals are never modified, so the reconstruction runs against copies with no risk to your data.
- Clone each member drive. Image every disk through a hardware write-blocker before anything else. All later steps run on the images, not the original drives.
- Read the array metadata. Run
mdadm --examineonPartition 3of each cloned image to reconstruct pool membership: which drives belong to the array, the RAID level, member order, & data offset. - Assemble the array read-only. Bring the array up with
mdadm --assemble --readonlyfrom the cloned images, with no possibility of a write reaching the disks. - Activate the LVM volume group. Run
vgchange -ayto activate the volume group (the Linux Logical Volume Manager layer that QTS stacks on top of the array) & expose the logical volume. - Mount the ext4 volume read-only. Mount the ext4 filesystem read-only & copy the files off, all without ever needing a config-DB entry from the DOM.
The mapping QTS lost on Partition 1 gets rebuilt from the array metadata that still lives on Partition 3. The virtual array assembly & destriping runs on Data Extractor Express RAID Edition against the images. If you'd rather hand the whole stack to us, the QNAP recovery service covers QTS & QuTS hero units end to end.
QuTS hero skips the config database entirely
QuTS hero units have a structural advantage here. The ZFS pool import path bypasses the Partition 1 config database completely. ZFS stores its pool metadata on Partition 3 (in the vdev labels), not in the partition-1 config DB, so zpool import locates & assembles the pool straight from the member drives with no QTS configuration database involved at all. A blank config DB after a reflash has nothing to do with whether a QuTS hero pool comes back.
How We Recover Data from a Firmware-Bricked QNAP
Every QNAP recovery follows an image-first workflow. Your original drives are never modified. All RAID assembly and filesystem extraction happens on cloned images.
- Free evaluation and model identification. We document the QNAP model, the QTS or QuTS hero version, the RAID level, the number of member drives, and any prior recovery attempts. We check whether the failure was a DOM corruption, a partition 1 config desync, or an accidental initialization.
- Write-blocked forensic imaging. Each member drive is connected through a hardware write-blocker and imaged with PC-3000 Portable III, PC-3000 Express, or DeepSpar Disk Imager. Drives with mechanical issues receive head swaps or board-level repair in our 0.02 micron ULPA-filtered clean bench before imaging.
- RAID metadata capture. For QTS we read mdadm superblocks from partition 3 of each cloned image to capture stripe size, parity rotation, member order, and data offset. For QuTS hero we read ZFS vdev labels and uber-blocks to identify valid transaction groups.
- Offline array reconstruction. We assemble the virtual mdadm array or import the ZFS pool from the cloned images on a Linux workstation. All reconstruction is read-only. The original drives remain untouched.
- Filesystem extraction and delivery. For QTS we activate the LVM volume group and mount ext4 read-only. For QuTS hero we import the ZFS pool with transaction group rewind if needed. Files are extracted, verified, and copied to your target media. Working copies are securely purged on request.
How Much Does QNAP Firmware Failure Recovery Cost?
QNAP recovery follows our standard NAS recovery model: a per-drive imaging fee based on each drive's condition, plus an array reconstruction fee. Firmware-brick cases where the DOM failed but the drives are healthy typically cost less because no mechanical work is needed. QuTS hero ZFS reconstruction costs more than QTS ext4 due to additional metadata complexity.
- Low complexity
Simple Copy
Your drive works, you just need the data moved off it
Functional drive; data transfer to new media
Rush available: +$100
$100
3-5 business days
- Low complexity
File System Recovery
Your drive isn't recognized by your computer, but it's not making unusual sounds
File system corruption. Accessible with professional recovery software but not by the OS
Starting price; final depends on complexity
From $250
2-4 weeks
- Medium complexity
Firmware Repair
Your drive is completely inaccessible. It may be detected but shows the wrong size or won't respond
Firmware corruption: ROM, modules, or translator tables corrupted; requires PC-3000 terminal access
CMR drive: $600. SMR drive: $900.
$600–$900
3-6 weeks
- High complexity
Most Common
Head Swap
Your drive is clicking, beeping, or won't spin. The internal read/write heads have failed
Head stack assembly failure. Transplanting heads from a matching donor drive on a clean bench
50% deposit required. CMR: $1,200-$1,500 + donor. SMR: $1,500 + donor.
50% deposit required
$1,200–$1,500
4-8 weeks
- High complexity
Surface / Platter Damage
Your drive was dropped, has visible damage, or a head crash scraped the platters
Platter scoring or contamination. Requires platter cleaning and head swap
50% deposit required. Donor parts are consumed in the repair. Most difficult recovery type.
50% deposit required
$2,000
4-8 weeks
Hardware Repair vs. Software Locks
Our "no data, no fee" policy applies to hardware recovery. We do not bill for unsuccessful physical repairs. If we replace a hard drive read/write head assembly or repair a liquid-damaged logic board to a bootable state, the hardware repair is complete and standard rates apply. If data remains inaccessible due to user-configured software locks, a forgotten passcode, or a remote wipe command, the physical repair is still billable. We cannot bypass user encryption or activation locks.
No data, no fee. Free evaluation and firm quote before any paid work. Full guarantee details. Head swap and surface damage require a 50% deposit because donor parts are consumed in the attempt.
- Rush fee
- +$100 rush fee to move to the front of the queue
- Donor drives
- Donor drives are matching drives used for parts. Typical donor cost: $50–$150 for common drives, $200–$400 for rare or high-capacity models. We source the cheapest compatible donor available.
- Target drive
- The destination drive we copy recovered data onto. You can supply your own or we provide one at cost plus a small markup. For larger capacities (8TB, 10TB, 16TB and above), target drives cost $400+ extra. All prices are plus applicable tax.
The prices above are for standard hard drives, which covers most jobs. Helium-sealed drives (for example WD or HGST Ultrastar He and Seagate Exos X) must be resealed and refilled with helium in-house after the chamber is opened, so they price higher, in the $200–$5,000+ range. See helium drive pricing.
NAS array reconstruction adds a flat fee per array on top of per-drive imaging. If we recover nothing, you owe $0. There are no diagnostic fees.
Data Recovery Standards & Verification
Our Austin lab operates on a transparency-first model. We use industry-standard recovery tools, including PC-3000 and DeepSpar, combined with strict environmental controls to maintain drive integrity. This approach allows us to serve clients nationwide with consistent technical standards.
Open-drive work is performed in a ULPA-filtered laminar-flow bench, validated to 0.02 µm particle count, verified using TSI P-Trak instrumentation.
Transparent History
Serving clients nationwide via mail-in service since 2008. Our lead engineer holds PC-3000 and HEX Akademia certifications for hard drive firmware repair and mechanical recovery.
Media Coverage
Our repair work has been covered by The Wall Street Journal and Business Insider, with CBC News reporting on our pricing transparency. Louis Rossmann has testified in Right to Repair hearings in multiple states and founded the Repair Preservation Group.
Aligned Incentives
Our "No Data, No Charge" policy means we assume the risk of the recovery attempt, not the client.
Technical Oversight
Louis Rossmann
Our engineers review all lab protocols to maintain technical accuracy and honest service. Since 2008, his focus has been on clear technical communication and accurate diagnostics rather than sales-driven explanations.
We believe in proving standards rather than just stating them. We use TSI P-Trak instrumentation to verify that clean-air benchmarks are met before any drive is opened.
See our clean bench validation data and particle test videoQNAP Firmware Failure Recovery FAQ
Does a failed QNAP firmware update delete my data?
No. A failed firmware update corrupts the internal DOM flash that stores QTS, not the member drives that hold your data. The configuration database on partition 1 may desync, but partition 3 where your files live remains intact. The danger is not the update failure; it is the initialization prompt that appears after you attempt recovery.
Why is my QNAP stuck in a boot loop after a firmware update?
The firmware update writes the QTS operating system to the internal DOM flash. If the write is interrupted by power loss, network dropout, or a defective update package, the DOM contains an incomplete kernel or initrd. The bootloader tries to start Linux, panics when critical boot files are missing, and reboots continuously. The member drives are not involved in this loop.
Can QNAP Recovery Mode wipe my hard drives?
The firmware recovery tool itself targets only the DOM flash. It does not touch partition 3 on the member drives. However, after DOM recovery the freshly installed QTS may prompt you to initialize the storage pool because the configuration database on the DOM was reset to factory defaults. Accepting this prompt runs mdadm --create, overwriting your RAID superblocks and destroying your data.
How do I recover data from a bricked QNAP NAS?
Power down the unit. Remove every drive and label each one with its exact bay number. Ship all drives to us. We image each member through a hardware write-blocker, then assemble the mdadm or ZFS array from the cloned images on a Linux workstation. For QTS we activate the LVM volume group and mount ext4 read-only. For QuTS hero we import the ZFS pool with zpool import -F and rollback to a valid transaction group.
What is the difference between QTS and QuTS hero recovery after a firmware brick?
QTS uses mdadm RAID with LVM2 and ext4 on partition 3. Recovery requires reading mdadm superblocks, activating the volume group, and mounting the ext4 filesystem. QuTS hero writes a ZFS pool directly to partition 3 with no mdadm or LVM layer. Recovery requires locating valid uber-blocks across member images and importing the pool with transaction group rewind. QuTS hero recovery needs more RAM and different tools.
What does the Fresh Install trap mean?
After you reflash the DOM and boot with the original drives inserted, QTS may show the storage pool as empty or uninitialized because the DOM no longer has the configuration database that maps pools to mdadm arrays. If you click Initialize or Create New Storage Pool, QTS runs mdadm --create on partition 3 of every drive. This overwrites the original superblocks and LVM headers. The data sectors are still there, but the metadata that points to them is gone. Recovery becomes harder and more expensive.
Why won't my QuTS hero pool import after a firmware update?
A failed update can interrupt a ZFS transaction group commit while the DOM and member drives drop writes with no power-loss protection, leaving the on-disk metadata inconsistent, so even after the OS is restored the pool fails to mount and zpool import returns an I/O error. Do not run zpool import -f to force the mount; a forced import writes new transaction groups to the live disks and advances the uber-block ring, pushing out the historical TXGs that recovery depends on. The drives must be imaged first so technicians can parse the uber-block ring offline and roll the pool back to the last clean transaction group.
Can I recover an iSCSI LUN or virtual machine from a bricked QNAP?
Usually, yes. A QNAP iSCSI LUN is not a separate disk you can pull from a bay. On QTS, a block-based LUN is provisioned from the storage pool as a logical volume in the LVM stack that sits on the partition 3 mdadm array, bypassing the host filesystem; a file-based LUN is an image file on an ordinary QNAP volume, and QNAP does not document one universal filename for it. On QuTS hero, a block-based LUN is backed by a ZFS volume, a zvol, inside the pool. A firmware brick corrupts the DOM and desyncs the partition 1 config database, so partition 3 and the LUN carved out of it stay intact. We image every member, rebuild the array offline read-only, then reach the LUN through its logical volume or, on QuTS hero, through the zvol in a read-only pool import. Accepting the post-reflash initialize prompt runs mdadm --create over partition 3, which destroys the volume group and every logical volume in it, the LUN included.
Is my QNAP bricked by a firmware update or hit by DeadBolt ransomware?
Both show the same symptom: an unexpected update or recovery web screen with the storage pool reporting empty, so the screen alone cannot tell them apart. A genuine DOM brick is a flash write failure on the motherboard. It desyncs the partition 1 config database that maps the pool to the mdadm arrays, but partition 3 user data stays physically intact (LVM2 over ext4 on QTS, or the OpenZFS pool on QuTS hero). DeadBolt is ransomware that targeted internet-exposed QNAP and ASUSTOR units. It hijacked the device login and web UI with a ransom page, encrypted files in place on partition 3, and appended the .deadbolt extension; it did not corrupt the DOM or the partition 1 config database. QNAP then pushed forced firmware updates (version 5.0.0.1891) that removed the ransom screen, which is why users conflate a firmware-update screen with the ransomware. For a brick we image every member and rebuild the config mapping and mdadm/LVM2/ext4 stack, or import the QuTS hero ZFS pool by transaction-group rollback. For DeadBolt we image first, then triage which datasets carry the .deadbolt extension and salvage the unencrypted partition 3 data. We do not claim to decrypt .deadbolt files.
Related services
Need Recovery for Other Devices?
All NAS brands and RAID types
QTS, QuTS hero, ZFS pools
Backplane and config-DB faults
ZIL, TXG, and uberblock rollback
Red LED and no-boot diagnostics
Unprompted rebuild and format states
RAID 0, 1, 5, 6, 10 arrays
Complete service catalog
QNAP bricked after a firmware update?
Power down, label your drives, and ship them to us. Free evaluation. No data, no fee.