Technical

Corrupted Data on a raidz1 Pool: 3 Healthy Disks, 1 Faulted — Here’s the Fix

Corrupted Data on a raidz1 Pool: 3 Healthy Disks, 1 Faulted — Here’s the Fix

Corrupted data on a raidz1 pool with all four disks showing healthy is a special kind of annoying. The pool faults, but SMART says fine, and you’re left staring at a FAULTED status with no obvious culprit. Here’s how to diagnose it and get your data back.

Seagate Cheetah 15K.5 SCSI hard drive with metal casing, advanced technology for data storage.

First, Look at the Actual Error

Run zpool status -v. It’ll show something like:

  pool: tank
 state: FAULTED
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
  scan: scrub repaired 0B in 0 days 00:01:23 with 1 errors on Sun Aug  3 10:15:22 2026
config:

    NAME        STATE     READ WRITE CKSUM
    tank        FAULTED      0     0     1
      raidz1-0  DEGRADED     0     0     2
        sda     ONLINE       0     0     0
        sdb     ONLINE       0     0     0
        sdc     ONLINE       0     0     0
        sdd     FAULTED      0     0     1

Notice the CKSUM column. One disk has a checksum error, but the pool is FAULTED because the corruption hit a file that wasn’t replicated enough. In raidz1, you can lose one disk, but a single checksum error on a live disk can fault the pool if it affects metadata or a file with no parity left.

Why All Disks Look Healthy

SMART data is about physical health. Checksum errors are about data integrity. A disk can be perfectly healthy mechanically but return bad data due to a firmware bug, a bad cable, or a cosmic ray. ZFS catches it, but it can’t fix it if the parity is also bad. That’s what happened here.

A collection of dismantled hard disk drives displayed on a white surface, showcasing internal components.

The Fix: Clear and Resilver

First, try clearing the error:

zpool clear tank

Then run a scrub:

zpool scrub tank

If the error was transient, the scrub will repair it using parity. If it comes back, you have a real problem. Check the disk with the checksum error. Replace the cable, reseat it, or run a long SMART test. If it keeps happening, replace the disk.

If the pool is still FAULTED after clearing, you may need to offline and replace the disk:

zpool offline tank sdd
zpool replace tank sdd /dev/disk/by-id/new-disk

But before you do that, check if the corrupted file is important. zpool status -v lists the affected files. If it’s a VM disk or a database, you might be better off restoring from backup.

Prevention: Don’t Rely on raidz1

raidz1 is one disk of redundancy. If a disk silently corrupts data, you’re one step away from total loss. For anything you care about, use raidz2 or mirror. And keep backups. ZFS is not a backup.

If you’re running Proxmox, check out my ZFS benchmark notes to see how much performance you actually need.

If You’d Rather Pay for This

If you don’t want to deal with this, get a NAS with ZFS built in, like a TrueNAS Mini. They start around $700. For a homelab, it’s overkill unless you value your time more than your money. But if this is for a business, pay for the support contract.

Leave a comment

Comments are reviewed before they appear. Your email is never published.