Which NAS Filesystems and RAID Modes Do We Support?
We recover data from Btrfs, EXT4, XFS, and ZFS filesystems across Synology SHR and SHR-2, standard RAID 0, 1, 5, 6, and 10, and QNAP QuTS hero ZFS pools. Each filesystem needs its own metadata parsing.
We recover data from Btrfs, EXT4, XFS, and ZFS filesystems across Synology SHR/SHR-2, standard RAID 0/1/5/6/10, and QNAP QuTS hero ZFS pools. Each filesystem requires different metadata parsing and reconstruction techniques.
- Synology SHR / SHR-2
- Synology Hybrid RAID uses mdadm with variable-size partitions to mix drive capacities. SHR-2 adds dual parity equivalent to RAID 6. We parse the custom partition layout and mdadm superblocks from each member image.
- Btrfs on NAS
- Btrfs stores metadata in a tree structure across members. We reconstruct the chunk tree and device tree from imaged copies to locate and extract files.
- ZFS (QNAP QuTS hero)
- QNAP's QuTS hero uses ZFS. We clone the members and attempt a read-only pool import. If the newest pool state is damaged, zpool import's recovery mode can return the pool to an importable state by discarding the last few transactions. See our ZFS pool recovery guide. QuTS hero units running native ZFS rather than the QTS md and LVM stack are handled under QNAP QuTS hero ZFS pool recovery.
- EXT4
- QNAP QTS, WD My Cloud NAS units, and legacy ReadyNAS OS4/OS5 units store their data on ext4, and Synology offers it as a volume option. EXT4 journal recovery and inode reconstruction from degraded arrays is a standard part of our workflow.
- XFS
- Most Buffalo TeraStation and LinkStation units store their data on XFS. XFS allocation group headers and B+ tree metadata are reconstructed from member images during recovery.
- Encrypted Volumes
- Recovery of encrypted volumes requires the original encryption key or passphrase. Without it, the data cannot be decrypted regardless of array condition.
Advanced Offline Reconstruction Mechanics
Once each member is imaged and the RAID layer is virtually reassembled from clones, filesystem-level damage determines the reconstruction approach. Each filesystem stores metadata differently, and the wrong repair command on the wrong filesystem type will overwrite the structures needed for recovery. EXT4 journal replay, Btrfs chunk tree reconstruction, and ZFS Uberblock rollback are each handled from cloned images.
Once each member is imaged and the RAID layer is virtually reassembled from clones, the filesystem-level damage determines the reconstruction approach. Each filesystem stores metadata differently, and the wrong repair command on the wrong filesystem type will overwrite the structures needed for recovery.
- EXT4 journal replay: When an EXT4-based NAS (such as WD My Cloud NAS units) crashes mid-write, we can replay its jbd2 journal up to the latest commit record. We replay the committed transactions from the cloned array image to restore inode consistency and reconstruct orphaned directory entries on the clone.
- Btrfs chunk tree and subvolume reconstruction: Btrfs uses a chunk tree to convert its logical addresses to physical addresses on the underlying device. We extract from the clones with read-only tools such as btrfs-find-root and btrfs restore.
- ZFS Uberblock rollback: On QNAP QuTS hero devices, each ZFS vdev label ends in an array of uberblocks that is updated as transaction groups commit. When the newest state points at damaged metadata (causing pool import I/O errors), zpool import's recovery mode can discard the last few transactions to get the pool importable again. We run it against the clones.
iSCSI LUN and Virtual Machine Recovery on NAS Storage
Enterprise Synology and QNAP deployments host iSCSI targets for VMware ESXi, Proxmox, and Hyper-V. When the NAS fails, iSCSI LUNs are raw block devices containing their own internal filesystems (such as VMFS or NTFS), not partitions of the NAS filesystem. Recovery is two-stage: reconstruct the NAS filesystem from clones, then parse the raw LUN images.
Enterprise Synology and QNAP deployments host iSCSI targets for VMware ESXi, Proxmox, and Hyper-V hypervisors. When the NAS fails, iSCSI LUNs are not visible as standard shared folders. On Synology, a file-level LUN is a file on the underlying Btrfs or ext4 volume, under the hidden @iSCSI directory. Recovery requires a two-stage logical extraction.
- Reconstruct the underlying NAS filesystem (Btrfs, EXT4, or ZFS) from cloned member images to locate the files representing each LUN.
- Parse the filesystem the host put inside each LUN image, such as VMFS on an ESXi host or NTFS on a Windows host. We extract
.vmdk, .vhdx, and flat image files directly from the reconstructed block layer without relying on the NAS operating system to mount damaged LUNs.
For NAS arrays where an iSCSI LUN was accidentally deleted, we scan unallocated space on the member images for orphaned file headers. For virtual machine recovery from server environments, the same LUN extraction workflow applies whether the host was a dedicated server or a NAS acting as a SAN target.
mdadm, LVM, and ZFS Configuration Recovery Parameters
NAS arrays store their geometry in on-disk metadata that must be parsed before any filesystem can be mounted. We detect these parameters from cloned images rather than trusting the NAS operating system, which protects against cases where the vendor configuration database has desynced from the actual array state, including mdadm superblock versions, LVM physical volume headers, and ZFS vdev labels.
NAS arrays store their geometry in on-disk metadata that must be parsed before any filesystem can be mounted. We detect these parameters from cloned images rather than trusting the NAS operating system, which protects against cases where the vendor configuration database has desynced from the actual array state.
mdadm Superblock Versions and Safe Commands
Linux mdadm stores RAID parameters in a superblock whose position depends on its version. Per md(4), version 0.90 is written into a 64K-aligned block that starts at least 64K and less than 128K from the end of the device. Version 1.0 sits between 8K and 12K from the end, on a 4K boundary.
Version 1.1 sits at the start of the device. Version 1.2, the modern default, sits 4K from the start.
When superblocks are intact, we read them with mdadm --examine /dev/sdX to print the metadata stored on each device. For virtual assembly we use mdadm --assemble --readonly to start the array read only. We never use mdadm --create on a recovery target because it writes new metadata to each device and starts a resync. When superblocks are missing, we scan for filesystem magic bytes to determine the data offset and reconstruct the geometry virtually.
LVM Physical Volume and Volume Group Metadata
QNAP QTS and Synology SHR both layer LVM above mdadm. By default the LVM2 label sits in the second sector of each physical volume. When LVM metadata is damaged, we parse the raw PV headers on the clones to rebuild the VG layout.
ZFS Vdev Labels, Uberblocks, and DDT RAM Requirements
ZFS writes four copies of the vdev label on each disk, two at the start and two at the end.
The second half of each label is an array of uberblocks, updated whenever a transaction group commits. We read the vdev labels directly from cloned members to reconstruct the pool topology, then look for the newest intact uberblock.
ZFS deduplication creates a Deduplication Table, and holding it in ARC takes roughly 1 to 5 GB of RAM per 1 TB of deduplicated data. The DDT is stored on disk and read on demand, so a pool whose DDT doesn't fit in RAM still imports. iXsystems says loading the table on demand can take days after an import or reboot. That's a RAM-sizing problem, and the platters aren't at fault. Reading existing data doesn't need the DDT.
So for recovery we import the pool read-only. Running zdb -lu /dev/sdX against a member's block device prints that device's vdev labels and uberblocks. If the SLOG device fails after a sudden power loss, the synchronous writes that were in flight are gone for good. That loss has nothing to do with the pool structure, and nobody can get those writes back from the main vdevs.
For a pool that won't mount, we walk through the read-only import step by step in TrueNAS zpool import recovery.
How We Handle Encrypted NAS Arrays
We clone every member, reconstruct the RAID and LVM layers offline, then decrypt using the client-provided key. If the key is lost, the data can't be recovered.
- Clone every member drive. Our recovery process for encrypted NAS volumes follows the same imaging-first workflow.
- Reconstruct the RAID and LVM layers offline from the cloned images and assemble the encrypted volume.
- Decrypt with the encryption key, passphrase, or exported key file you give us. If the key is lost, the data stays encrypted, and no lab can recover it, ours included.