Klennet ZFS Recovery

Klennet ZFS Recovery is a tool to recover data from damaged ZFS pools.

  • Recovers data from badly damaged pools which no longer mount;
  • automatically figures out pool and filesystem parameters, including disk order;
  • works even if a new blank pool was created over the original one;
  • recovers deleted files;
  • recovers previous versions of files whenever possible;
  • verifies checksums to see if file data is correct.

Capabilities and limitations

General:

  • Automatic detection of pool layout, RAID levels, and order of disks in each vdev - even if all the disk labels are damaged.
  • Supports pools with 512, 4096, or 8192 bytes per sector (ashift=9, ashift=12, and ashift=13).
  • Supports LZ4, LZJB, GZIP, ZLE, and ZSTD compression algorithms.
  • Supports Fletcher4 (FL4), SHA256, and SHA512 checksums.
  • Limited support for Skein and Edon-R checksums. Consider filing a support request if you use one of these.
  • Supports native ZFS encryption: 128-, 192-, and 256-bit AES-CCM and AES-GCM. Not a password-cracking tool, though - you need to provide keys or passphrases.
  • Supports GELI encryption as used in FreeNAS and TrueNAS. You need to provide a key file (geli.key).
  • Only supports little-endian (Intel byte order) ZFS.

RAID levels and missing disks:

  • Stripe. As with the usual RAID0, if all the stripe members are readable, the stripe is recoverable.
  • Mirrors. Once ZFS Recovery identifies disks as two-way or three-way mirrors, it uses all disks to attempt to retrieve the correct data.
  • RAIDZ, RAIDZ2, and RAIDZ3. ZFS Recovery supports RAIDZ with one, RAIDZ2 with two, and RAIDZ3 with three missing or corrupt drives in any combination.
  • dRAID is not supported.

Compatibility

Klennet ZFS Recovery was so far tested with

  • FreeNAS-11.1-U6, 11.3-RELEASE,
  • TrueNAS-12.1,
  • XigmaNAS 11.2.0.4,
  • NexentaStor 5.2.0.27, 5.2.1.8,
  • ZFS on Linux 0.7.12-1,
  • FreeBSD 9.3p43, 12.0m
  • BSDSUniX 1.0p1,
  • Oracle Solaris ZFS version 44.

If your system is not on this list, ZFS Recovery is still likely to work. It had successfully recovered a FreeNAS system built circa 2011, with some data still left over from back then.

System requirements

  • 64-bit Windows 10 and up, .NET 4.8. Even though ZFS is Linux or FreeBSD filesystem, ZFS Recovery runs on Windows. You need to do one of the following:
    • bring the drives (or clones of the drives) to a Windows machine,
    • install Windows on a spare hard drive, SSD, or even a big USB stick, and bring it to the Linux machine,
    • install Windows in a virtual machine and pass the drives through into that virtual machine.
    No matter what, never initialize or format the drives if Windows prompts you to.
  • RAM: Required minimum is 8 GB. Klennet ZFS Recovery will not start with less than 8 GB RAM. The amount of RAM required is proportional to the number of files/directories in the pool. 32 GB or 64 GB should be enough for most cases.
  • CPU:
    • without encryption: one core for every two source drives is perfect; one core for every four drives is good.
    • with encryption, you need a CPU with AES-NI support and as many cores as you can reasonably get.
    In any case, the scan can be completed with fewer cores, albeit at a slower speed.
  • An always-on or a near always-on internet connection.

What is limited in the evaluation version?

Evaluation will not actually copy files out.

It will show you what files it can see and if checksums are good on these files (unless you cancel checksum verification), but evaluation will not copy files. Other than that, there is no difference.

How to use Klennet ZFS Recovery?

Please refer to this page for instructions.

Remote assistance with recoveries

I offer remote assistance with the recovery if you think you need it.
Please refer to this page for more information.