Hello, I have had a pool of two hard drives in a mirror pool for some time but the OS got corrupted and I reinstalled the OS. Now I am on Linux Mint and my pool does not appear any more. When I use zpool import it says no pool available to import, I have looked around online and found you can import a zpool by specifying the drives, so I used zpool import -f -d /dev/sda1 -f -d /dev/sdb1 internal I get back my pool

pool: internal state: ONLINE scan: scrub repaired 0B in 00:08:39 with 0 errors on Tue Jun 18 18:38:40 2024 config:

NAME        STATE     READ WRITE CKSUM
internal    ONLINE       0     0     0
  mirror-0  ONLINE       0     0     0
    sdb     ONLINE       0     0     0
    sda     ONLINE       0     0     0

errors: No known data errors

But I am unable to mount the pool, zfs mount internal returns

cannot mount ‘internal’: legacy mountpoint use mount(8) to mount this filesystem

I tried using mount but I am not having any success, saying mount: internal: can’t fin in /etc/fstab.

Is there any chance to get this pool back on the computer or is it a lost cause.

Thank you for the help.

  • Max-P
    link
    fedilink
    English
    43 months ago

    The trick for this one is mount -t zfs -o zfsutil internal /mnt/some/path

    Assuming the root dataset is mountable. If you have a -o canmount=off on the dataset it will refuse to mount.

    If it’s -o mountpoint=legacy then you don’t need -o zfsutil, but still need to provide both the source and destination paths. Otherwise you’ll get the fstab error because mount can’t figure out what to mount or where to mount it.

    • hoxbugOP
      link
      English
      13 months ago

      Thank you so much, where did you find this bit of information? I have been trying to solve this problem for the past week or so, but my google foo failed me on this one. Was about to give up on this one.

      • Max-P
        link
        fedilink
        English
        23 months ago

        I learned it accidentally trying to get root on an encrypted dataset working with systemd init without sd-zfs. This turns out to be how the zfs utility works internally to signal the driver “hey it’s okay, I’m a ZFS utility the user isn’t using mount directly”, and how you deal with mounting your root dataset to the temporary /sysroot while having its mountpoint set to / while in initramfs before pivoting root.

        Obviously, don’t use that other than recovering your data, if you want to use this array you should figure out the mountpoints properly so ZFS does it automatically. It shouldn’t break anything but it’s gross, either set mointpoint=legacy and use fstab or set its mountpoint in ZFS and use zfs mount.