ZFS pool permanent error question -- errors: Permanent errors have been detected in the following files: storage: <0x0>

Warren Block wblock at wonkity.com
Mon Jun 16 14:11:45 UTC 2014


On Mon, 16 Jun 2014, Anders Jensen-Waud wrote:

> This disk is not the ``storage'' zpool -- it is my ``backup'' pool,
> which is on a different drive:
>
> NAME      SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
> backup    464G   235G   229G    50%  1.00x  ONLINE  -
> storage   928G   841G  87.1G    90%  1.00x  ONLINE  -

What does 'zpool status' say about the device names of that pool?

> Running 'gpt recover /dev/da1' fixes the error above but after a reboot
> it reappears. Would it be better to completely wipe the disk and
> reinitialise it with zfs?

Most likely the problem is that the disk was GPT partitioned, but when 
the pool was created, ZFS was told to use the whole disk (ada0) rather 
than just a partition (ada0p1).  One of the partition tables was 
overwritten by ZFS information.  Possibly this space was mostly unused 
by ZFS, because otherwise a 'gpart recover' would have damaged it.  This 
could also have happened if GPT partitioning was not cleared from the 
disk before using it for ZFS.  ZFS leaves some unused space at the end 
of the disk, enough to not overwrite a backup GPT.  That would be 
detected by GEOM, and not match the primary, which was overwritten by 
ZFS.  The error would be spurious, but attempting a recovery could 
overwrite actual ZFS data.

ZFS works fine on whole disks or in partitions.  But yes, in this case, 
I'd back up, destroy the pool, destroy partition information on the 
drives, then recreate the pool.

A handy way to make sure a backup GPT table is not left on a disk is to 
create and then destroy GPT partitioning:

gpart destroy -F adaN
gpart create -s gpt adaN
gpart destroy adaN


More information about the freebsd-fs mailing list