ZFS Data Recovery: A Guide to RAIDZ1, RAIDZ2, RAIDZ3 and Stripe

In this article we review procedures for data recovery from RAIDZ1, RAIDZ2, RAIDZ3 and ZFS Stripe arrays created in the TrueNAS SCALE operating system. We demonstrate the sequence of actions in case of a hardware failure of the server and the methodology for restoring access to the data pool when one or more drives fail or data is accidentally deleted from the array.

ZFS Data Recovery: A Guide to RAIDZ1, RAIDZ2, RAIDZ3 and Stripe

In addition to hardware failures, we cover recovery after deletion of an entire dataset, pool corruption, a critical operating system failure, ZFS filesystem damage, errors while adding new disks, incorrect controller behavior, and accidental initialization of drives in another system.

Data recovery is performed on Linux Ubuntu, but it is also possible in Windows and macOS environments.

Go to view
Data Recovery from ZFS RAIDZ1, RAIDZ2, RAIDZ3, and Stripe Arrays

Data Recovery from ZFS RAIDZ1, RAIDZ2, RAIDZ3, and Stripe Arrays

TrueNAS SCALE capabilities

TrueNAS is an open operating system for building network storage, based on Linux and using the ZFS filesystem. It provides data protection, integrity verification, efficient disk management and supports running virtual machines.

The platform supports various RAID types, including RAIDZ, which combines performance and fault tolerance. TrueNAS SCALE enables horizontal scaling by combining multiple nodes into a cluster while preserving key ZFS features: self-healing, snapshots, compression, deduplication and encryption.

TrueNAS Scale

The system is compatible with SMB, NFS, iSCSI and S3 protocols and also enables running containers and Kubernetes, making it a versatile solution for storing and processing data in various environments.

RAIDZ is a redundant disk array in ZFS with distributed parity. The use of variable-length blocks optimizes writes and allows automatic error correction during reads.

When recovering a degraded array (resilvering), the load on the remaining disks increases significantly. Therefore, RAIDZ is best suited for environments with moderate fault-tolerance requirements or for smaller-capacity disks where array rebuild time is minimal.

Category Capabilities
System type Open-source NAS / server based on Linux
File system ZFS support
RAID RAIDZ1, RAIDZ2, RAIDZ3, Stripe, Mirror
Scaling Horizontal (Scale-out)
Virtualization KVM support (virtual machines)
Containers Kubernetes, Docker (via Apps)
Network protocols SMB, NFS, FTP, iSCSI
Management Web interface (GUI)
Security Data encryption, access control, ACL
Backup Snapshots, Replication, Rsync
Cloud services Integration with AWS, Google Cloud, Azure
Monitoring Alerting, logs, statistics
Plugins / Apps Extensibility via application catalog
High availability Cluster (HA) support
GPU support Yes (for containers and VMs)

Method 1. Automatic recovery of ZFS arrays

In case of failure of server hardware components (power supply, motherboard or disk controller), direct access to data from the operating system becomes impossible.

Such situations also occur when the server fails to boot due to a critical error during a TrueNAS SCALE update or when the system partition is damaged.

Even if files and disks are not physically damaged, access to a RAIDZ array may be lost and standard ZFS tools may not detect the drives or allow pool import. In these cases, specialized software, such as Hetman RAID Recovery, enables safe access to data and recovery of information.

Recover data from damaged RAID arrays inaccessible from a computer.

In this example we demonstrate the automated recovery process on a computer running Ubuntu.

First power down the server and carefully remove all drives that were part of the array.

Power down the server and carefully remove all drives

Connect them to a workstation: the optimal option is directly to the motherboard via SATA cables for maximum speed and stability of data transfer. If the motherboard lacks free ports, external USB dock stations or USB-to-drive adapters can be used.

Connect the server drives to a workstation

Note that when connected through dock stations the scanning speed may be lower, so for large volumes of data it is preferable to use internal ports.

After connecting, verify that the drives appear in Ubuntu in the Disks utility, but do not initialize them if the system prompts this action.

Drives appear in Ubuntu Disks utility

Immediately after verification, launch Hetman RAID Recovery to perform automatic array assembly.

The key feature of Hetman RAID Recovery is deep analysis of ZFS metadata. The software does not require a functioning operating system or controller — it reads service information directly from the drives and automatically reconstructs the pool structure.

Since ZFS stores all critical array configuration data inside the pool itself, the logical integrity of files is preserved even if the server environment is completely unavailable. As a result, the user gains access to data in a familiar form without dependence on the original system.

This article demonstrates various array configurations:

  • RAIDZ1 on three disks,
  • RAIDZ2 on four,
  • RAIDZ3 on five,
  • and Stripe on two drives.
Table: various RAIDZ configurations

We will examine the recovery algorithm in detail for a three-disk RAIDZ1 array in a situation of complete server hardware failure or a critical error after updating TrueNAS SCALE.

It is important to note that this approach is universal and can also be applied to RAIDZ2, RAIDZ3 and Stripe configurations.

After launching Hetman RAID Recovery, it automatically scans all connected devices. The program reads ZFS service metadata, analyzes the configuration of virtual vdev groups and based on the obtained data reconstructs the correct RAIDZ1 model.

The working window displays detected drives and assembled logical structures — you can immediately continue working with them: perform detailed analysis, view the data structure or recover required files.

Hetman RAID Recovery: detected drives and assembled logical structures

Select the required RAIDZ1 from the list of reconstructed arrays and start the Fast scan mode to quickly determine the data structure.

Hetman RAID Recovery: select the reconstructed RAIDZ1 from the list

After the scan completes, the recovered filesystem with the full directory and file hierarchy will be displayed in the main window. Select the required objects and click Recovery.

Hetman RAID Recovery: recovered filesystem with full hierarchy

In the next step, specify a folder to save the data — preferably on a separate media with sufficient free space.

Hetman RAID Recovery: available options to save recovered data

Confirm starting the process, specify the final destination path and click Recovery again to begin copying. After the operation completes, click Finish.

As a result, data from the ZFS RAIDZ1 pool will be recovered and available for normal use.

Hetman RAID Recovery: recovered data from ZFS RAIDZ1 pool

Method 2. Recovering RAIDZ with missing drives

Now consider the case of one or more drive failures in a RAIDZ array.

The RAIDZ architecture provides fault tolerance depending on the array type:

  • RAIDZ1 tolerates loss of one drive.
  • RAIDZ2 tolerates loss of two drives.
  • RAIDZ3 tolerates loss of three drives.

In the case of Stripe there is no redundancy, so failure of any drive leads to complete data loss.

Table: RAIDZ architecture

If it is not possible to connect all drives, you can create an image of the missing drive and use it together with the other drives for further recovery.

Thanks to distributed parity mechanisms and data integrity checks, specialized software such as Hetman RAID Recovery can reconstruct lost blocks and restore access to information if the number of failed drives does not exceed the permissible level for the specific RAIDZ type.

Recover data from damaged RAID arrays inaccessible from a computer.

If this threshold is exceeded, the array’s logical structure is disrupted and standard software methods become ineffective. In such situations, recovery is possible only using professional equipment in specialized laboratories.

Ensure the target media has sufficient free space to store recovered data and carefully remove the drives from the server and connect them to a computer via SATA ports or an external dock station. It is important to avoid any writes to these drives, as this may cause irreversible data loss.

Connecting server drives to a computer via external dock station

Before starting, close all applications that might use these drives and temporarily disable automatic backups or synchronization. If the system does not mount the array, do not initialize the drives, create partitions or format them.

Leave them in their current state and proceed directly to the recovery procedure. Following these recommendations significantly increases the chances of successful and safe data recovery regardless of the RAIDZ type or Stripe configuration.

If your workstation architecture does not allow connecting all drives simultaneously, the optimal solution is to use virtual disk images. This method involves creating exact bit-by-bit copies of each drive for subsequent analysis.

After mounting the image of the missing drive, Hetman RAID Recovery will treat it as a full physical device and, combined with the available drives, automatically reconstruct the array structure. This approach allows starting data recovery even when connection ports are insufficient — preserving safety and data integrity at every stage.

We will review the recovery process using RAIDZ3 as an example, in which three drives failed simultaneously.

This array configuration provides the possibility of data return even in such a severe failure — we perform this using Hetman RAID Recovery.

Immediately after opening, the software automatically scans all connected drives, reads service information and on that basis reconstructs the original array structure. The working window displays all detected physical disks and formed virtual configurations, which can be used immediately. Select the found RAIDZ3 and enable Fast scan.

Hetman RAID Recovery: ZFS pool

As soon as the check completes, the working window will display the complete structure of the reconstructed array with all directories and files.

Hetman RAID Recovery: ZFS pool after scanning

Mark the required items and click Recovery. Then specify the folder for saving and confirm the operation by clicking Recovery again.

Hetman RAID Recovery: ZFS pool analysis

When copying completes — click Finish.

After completing all steps, recovered files from the RAIDZ3 array will be fully usable in normal operation.

Recovered data from ZFS pool

Method 3. Recovering deleted files

Finally, we consider one of the most common scenarios — accidental deletion of files from a RAID array.

In this example we recover data from a Stripe created from two disks under the ZFS filesystem.

The characteristic of Stripe is that data is distributed across all drives without any redundancy. This means that no single drive contains complete files. For successful recovery all drives must be connected simultaneously and treated as a single logical structure. If one of the drives is missing or not connected, the software will not be able to read the data.

ZFS pool structure

Before starting, ensure that all drives are physically connected to the computer — directly via SATA to the motherboard or using an external dock station.

It is important not to write new data to these drives or initialize them in the system to avoid overwriting lost files.

Ubuntu: Disks utility

In Ubuntu launch Hetman RAID Recovery.

Recover data from damaged RAID arrays inaccessible from a computer.

The software will automatically scan all connected drives, read ZFS metadata and reconstruct the logical Stripe structure accordingly. In the main window you will see the physical disks and the assembled array ready for work.

Hetman RAID Recovery: ZFS pool

Next, select the Stripe from the list of detected arrays and start a Full Scan. A full scan is required because after file deletion in ZFS only a deep analysis allows assembling fragmented data and restoring the correct folder structure.

Hetman RAID Recovery: full analysis of ZFS pool

Additional settings are usually not required; just click Next and wait for the process to finish. After the scan completes, the main window will show the recovered array structure with all folders and files. If necessary, use the preview to check the contents of documents, images or other files.

Select the required files and folders and click Recovery.

Hetman RAID Recovery: recovering data from ZFS pool

Specify the destination for recovered data on a separate media with sufficient free space and confirm the start of the process by clicking Recovery again.

After copying completes click Finish.

Hetman RAID Recovery: completed data recovery from ZFS pool

As a result, all files will be recovered and available for normal use.

This process ensures data safety, enables file restoration even after accidental deletion and preserves the ZFS filesystem structure without risking damage to other data on the drives.

Conclusion

Data recovery from the ZFS filesystem and RAIDZ1, RAIDZ2, RAIDZ3 and Stripe arrays is complex but entirely feasible with the correct approach and understanding of these solutions’ architecture. Thanks to built-in data integrity and error-checking mechanisms, ZFS provides a high level of protection, especially in RAIDZ2 and RAIDZ3 configurations.

Nevertheless, even such reliable systems are not immune to data loss due to hardware failures, user errors or critical pool corruption. The least protected configuration remains Stripe, where the absence of redundancy means complete data loss if any drive fails.

Recovery success depends on many factors: RAID type, number of failed drives, filesystem condition and timeliness of actions. Key recommendations are to immediately stop writes to the affected array, perform correct diagnostics and use specialized software or professional services.

Therefore, to minimize the risk of data loss it is important not only to know how to recover data, but also to implement backup strategies in advance and choose the appropriate RAID level according to the criticality of the information.

Vladimir Artiukh

Author: , Technical Writer

Vladimir Artiukh is a technical writer for Hetman Software, as well as the voice and face of their English-speaking YouTube channel, Hetman Software: Data Recovery for Windows. He handles tutorials, how-tos, and detailed reviews on how the company’s tools work with all kinds of data storage devices.

Oleg Afonin

Editor: , Technical Writer

Oleg Afonin is an expert in mobile forensics, data recovery and computer systems. He often attends large data security conferences, and writes several blogs for such resources as xaker.ru, Elcomsoft and Habr. In addition to his online activities, Oleg’s articles are also published in professional magazines. Also, Oleg Afonin is the co-author of a well-known book, Mobile Forensics - Advanced Investigative Strategies.

Recommended For You