I have a 3 disk zpool doesn't want to import back after formating my OS drive and reinstalling and trying to reimport. (Went from Mint 19 to 20, imported once, OS reboot, after reboot, then won't mount again).

Was zpool at /home, have new /home on SSD, intended to mount zpool zhome to /zhome, and rsync back to /home, then create new pools with new drives, but something went tragically wrong.

$ sudo zpool import -R /zhome zhome
internal error: Value too large for defined data type

To be clear, the same command worked when I first got the new OS going, there was an rsync FROM the zpool running from /zhome/user to /home/user (large one that would have taken 3 days that I forgot about) and I rebooted. After the reboot, trying to import the zpool again gave this error.

Any idea what to try?

  • can you show the output of zpool status and zfs list -r zpool ? – Jeff Jul 8 '20 at 22:27
  • ``` $ zpool status no pools available $ zfs list -r zpool cannot open 'zpool': dataset does not exist $ zfs list -r zhome cannot open 'zhome': dataset does not exist $ ``` – Rob Current Jul 8 '20 at 23:49
  • You could try the -d and -D options for zfs import to find your non-existent pool. See the man pages for their use. – Jeff Jul 9 '20 at 0:08
  • @Jeff I've tried both, no pools available using those options. Still quite confused by this error, it was working fine before rebooting. – Rob Current Jul 9 '20 at 2:33

I was able to recover it. I had no luck with testdisk, and gparted wasn't allowing fine tuning.

I just used fdisk, and keep playing with entries until I could create /dev/sdx9 that was exactly the same size as the other two disks, right at the end of the disk (using different starting sectors and automatic end sector selection, to get exactly the right size), then default added /sev/sdx1, toggled the types to match the other disks, and reboot, and it's back! Hope this helps someone, it's a lot of work, getting the exact right geometry, but it's worth it!



sudo zpool import -f
   pool: zhome
     id: 17312996257141753714
  state: UNAVAIL
 status: One or more devices contains corrupted data.
 action: The pool cannot be imported due to damaged devices or data.
   see: http://zfsonlinux.org/msg/ZFS-8000-5E

    zhome       UNAVAIL  insufficient replicas
      sdd       ONLINE
      sde       ONLINE
      sdf       UNAVAIL  corrupted data

Any way to salvage any of the data here? I -think- something seems to have messed with the partition table on sdf, but it's not been formatted or anything. No idea how to restore the partition table, but what was on there should still be there? I'm going to give testdisk a try.

Didn't find it, looking at the other disks that are in the zpool, I see that they have 2 partitions, /dev/sdx1 and /dev/sdx9, and I was thinking of trying to calculate and fix in gparted or fdisk. sdx1 seems to always start at sector 2048, so that's a start. And sdx9 seems to always be 16384 sectors (8M, sectors on both disks seem to be 512 bytes). Unfortunately, on my sdd, the End sector is 1 sector from the last sector available, and on see the last sector is a few thousand from the end (ugh!).

So, if I were to randomly guess, I'd say sdx1 I could guess the start sector. But I have no idea how to guess the end sector. Hopefully testdisk will find something that looks right, but no luck so far (doing a deeper scan now)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.