ZFS Pool Partition Lost at Reboot

james_h

Member
Jan 23, 2024
11
0
6
When I reboot one of my nodes, the zfs pool does not come back online. On investigation it seems like the GPT is not active and I can recover manually but looking for assisatnce on the issue and how to fix.

Code:
root@pve-1:~# lsblk
NAME                 MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                    8:0    0 894.3G  0 disk
nvme0n1              259:0    0 119.2G  0 disk
├─nvme0n1p1          259:1    0  1007K  0 part
├─nvme0n1p2          259:2    0     1G  0 part
└─nvme0n1p3          259:3    0 118.2G  0 part
  ├─pve-swap         252:0    0     8G  0 lvm  [SWAP]
  ├─pve-root         252:1    0  39.6G  0 lvm  /
  ├─pve-data_tmeta   252:2    0     1G  0 lvm 
  │ └─pve-data-tpool 252:4    0  53.9G  0 lvm 
  │   └─pve-data     252:5    0  53.9G  1 lvm 
  └─pve-data_tdata   252:3    0  53.9G  0 lvm 
    └─pve-data-tpool 252:4    0  53.9G  0 lvm 
      └─pve-data     252:5    0  53.9G  1 lvm 
root@pve-1:~#
root@pve-1:~# zpool status
no pools available
root@pve-1:~#
root@pve-1:~# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.10

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.
root@pve-1:~#
root@pve-1:~#
root@pve-1:~#
root@pve-1:~# zpool status
  pool: zfs-cluster-share
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
    The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
    the pool may no longer be accessible by software that does not support
    the features. See zpool-features(7) for details.
  scan: scrub repaired 0B in 00:07:58 with 0 errors on Sun Jun 14 00:31:59 2026
config:

    NAME                      STATE     READ WRITE CKSUM
    zfs-cluster-share         ONLINE       0     0     0
      scsi-35002538e01867047  ONLINE       0     0     0

errors: No known data errors
root@pve-1:~#
 
Please share this after a fresh boot
Bash:
zpool status -vP
zpool status -vPL
zdb -l /dev/sda
lsblk -o+FSTYPE,LABEL,PTTYPE,MODEL
gdisk -l /dev/sda
systemctl --failed
It seems like your disk has no partitions which is unusual. Does zpool import work as well without the gdisk stuff?
 
Last edited:
Please share this after a fresh boot
Bash:
zpool status -vP
zpool status -vPL
zdb -l /dev/sda
lsblk +oFSTYPE,LABEL,PTTYPE,MODEL
gdisk -l /dev/sda
systemctl --failed
It seems like your disk has no partitions which is unusual. Does zpool import work as well without the gdisk stuff?

Thanks for taking a look. No zpool impot does not work without re-writing the GPT

Code:
root@pve-1:~# zpool status -vP
no pools available
root@pve-1:~#
root@pve-1:~#
root@pve-1:~# zpool status -vPL
no pools available
root@pve-1:~#
root@pve-1:~#
root@pve-1:~#
root@pve-1:~# zdb -l /dev/sda
failed to unpack label 0
failed to unpack label 1
failed to unpack label 2
failed to unpack label 3
root@pve-1:~#
root@pve-1:~#
root@pve-1:~# lsblk +oFSTYPE,LABEL,PTTYPE,MODEL
lsblk: +oFSTYPE,LABEL,PTTYPE,MODEL: not a block device
root@pve-1:~#
root@pve-1:~#
root@pve-1:~# gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.10

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 1875385008 sectors, 894.3 GiB
Model: MZ7KH960HAJR0D3
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 36A08E75-3AA6-BC4A-8D60-201D88DFB527
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1875384974
Partitions will be aligned on 2048-sector boundaries
Total free space is 2669 sectors (1.3 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      1875367935   894.2 GiB   BF01  zfs-5465ef19d952f22a
   9      1875367936      1875384319   8.0 MiB     BF07 
root@pve-1:~#
root@pve-1:~# systemctl --failed
  UNIT                                       LOAD   ACTIVE SUB    DESCRIPTION                           
● open-iscsi.service                         loaded failed failed Login to default iSCSI targets
● zfs-import@zfs-cluster-share.service       loaded failed failed Import ZFS pool zfs-cluster-share
● zfs-import@zfs\x2dcluster\x2dshare.service loaded failed failed Import ZFS pool zfs\x2dcluster\x2dshare

Legend: LOAD   → Reflects whether the unit definition was properly loaded.
        ACTIVE → The high-level unit activation state, i.e. generalization of SUB.
        SUB    → The low-level unit activation state, values depend on unit type.

3 loaded units listed.
root@pve-1:~#
root@pve-1:~#
 
Sorry, I forgot the -o for lsblk. Since fixed. Can you run this again and also check this for all the failed services?
Bash:
systemctl status SERVICEHERE
journalctl -u SERVICEHERE
Looking at the recent system logs via journalctl -r might also be useful.
 
Sorry, I forgot the -o for lsblk. Since fixed. Can you run this again and also check this for all the failed services?
Bash:
systemctl status SERVICEHERE
journalctl -u SERVICEHERE
Looking at the recent system logs via journalctl -r might also be useful.

Code:
oot@pve-1:~# lsblk -o+FSTYPE,LABEL,PTTYPE,MODEL
NAME                 MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS FSTYPE      LABEL PTTYPE MODEL
sda                    8:0    0 894.3G  0 disk                               gpt    MZ7KH960HAJR0D3
nvme0n1              259:0    0 119.2G  0 disk                               gpt    Patriot M.2 P320 128GB
├─nvme0n1p1          259:1    0  1007K  0 part                               gpt   
├─nvme0n1p2          259:2    0     1G  0 part             vfat              gpt   
└─nvme0n1p3          259:3    0 118.2G  0 part             LVM2_member       gpt   
  ├─pve-swap         252:0    0     8G  0 lvm  [SWAP]      swap                     
  ├─pve-root         252:1    0  39.6G  0 lvm  /           ext4                     
  ├─pve-data_tmeta   252:2    0     1G  0 lvm                                       
  │ └─pve-data-tpool 252:4    0  53.9G  0 lvm                                       
  │   └─pve-data     252:5    0  53.9G  1 lvm                                       
  └─pve-data_tdata   252:3    0  53.9G  0 lvm                                       
    └─pve-data-tpool 252:4    0  53.9G  0 lvm                                       
      └─pve-data     252:5    0  53.9G  1 lvm                                       
root@pve-1:~#

The iscsi service isnt relevant, need ot clena up some old config there.

Code:
root@pve-1:~# systemctl status zfs-import@zfs-cluster-share.service
× zfs-import@zfs-cluster-share.service - Import ZFS pool zfs-cluster-share
     Loaded: loaded (/usr/lib/systemd/system/zfs-import@.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Thu 2026-06-25 15:52:34 BST; 1h 3min ago
 Invocation: b6e97686e671495484dd351a5e292998
       Docs: man:zpool(8)
    Process: 642 ExecStart=/usr/sbin/zpool import -N -d /dev/disk/by-id -o cachefile=none zfs/cluster/share (code=exited, status=1/FAILURE)
   Main PID: 642 (code=exited, status=1/FAILURE)
   Mem peak: 6.3M
        CPU: 19ms

Jun 25 15:52:33 pve-1 systemd[1]: Starting zfs-import@zfs-cluster-share.service - Import ZFS pool zfs-cluster-share...
Jun 25 15:52:34 pve-1 zpool[642]: cannot import 'zfs/cluster/share': no such pool available
Jun 25 15:52:34 pve-1 systemd[1]: zfs-import@zfs-cluster-share.service: Main process exited, code=exited, status=1/FAILURE
Jun 25 15:52:34 pve-1 systemd[1]: zfs-import@zfs-cluster-share.service: Failed with result 'exit-code'.
Jun 25 15:52:34 pve-1 systemd[1]: Failed to start zfs-import@zfs-cluster-share.service - Import ZFS pool zfs-cluster-share.
root@pve-1:~#
root@pve-1:~# systemctl status zfs-import@zfs\x2dcluster\x2dshare.service
○ zfs-import@zfsx2dclusterx2dshare.service - Import ZFS pool zfsx2dclusterx2dshare
     Loaded: loaded (/usr/lib/systemd/system/zfs-import@.service; disabled; preset: enabled)
     Active: inactive (dead)
       Docs: man:zpool(8)
root@pve-1:~#
root@pve-1:~#