Missing disk partition devices and GPT lables in /dev/

From: Miroslav Lachman <000.fbsd_at_quip.cz>
Date: Tue, 28 Nov 2023 19:51:09 UTC
I have strange problem on one of my machines - the disk devices in /dev/ 
are only shown as ada0 and ada1 but no partition devices, no devices in 
/dev/gpt/ or /dev/gptid/, these directories are completely missing even 
though there are GPT labels.
This is FreeBSD 13.2-RELEASE-p5 amd64 on HP Microserver Gen8. Disk are 2 
Seagate NAS 4TB, manually partitioned with gpart utility, zpool created 
and then all the date migrated by zfs send and zfs receive from old 2TB 
disks. Everything works, system is running but device nodes in /dev/ are 
missing. I noticed this only when I want to create gmirrored swap from 
ada0p4 and ada1p4 but got "No such file or directory."

There are only diskid style devices in /dev/diskid/

gpart show -l shows correct GPT labels for partitions

# gpart show -l
=>        40  7814037088  diskid/DISK-Z3010G8V  GPT  (3.6T)
           40        1024                     1  bootG8V  (512K)
         1064       40960                     2  efiG8V  (20M)
        42024    83886080                     3  diskG8Vsys  (40G)
     83928104    20971520                     4  swapG8V  (10G)
    104899624  7707033600                     5  diskG8Vtank0  (3.6T)
   7811933224     2103904                        - free -  (1.0G)

=>        40  7814037088  diskid/DISK-Z302YC90  GPT  (3.6T)
           40        1024                     1  bootC90  (512K)
         1064       40960                     2  efiC90  (20M)
        42024    83886080                     3  diskC90sys  (40G)
     83928104    20971520                     4  swapC90  (10G)
    104899624  7707033600                     5  diskC90tank0  (3.6T)
   7811933224     2103904                        - free -  (1.0G)


But gpart show -p does not show ada0p1 ada0p2 ..ada0pN, it shows diskid 
style entries

# gpart show -p
=>        40  7814037088    diskid/DISK-Z3010G8V  GPT  (3.6T)
           40        1024  diskid/DISK-Z3010G8Vp1  freebsd-boot  (512K)
         1064       40960  diskid/DISK-Z3010G8Vp2  efi  (20M)
        42024    83886080  diskid/DISK-Z3010G8Vp3  freebsd-zfs  (40G)
     83928104    20971520  diskid/DISK-Z3010G8Vp4  freebsd-swap  (10G)
    104899624  7707033600  diskid/DISK-Z3010G8Vp5  freebsd-zfs  (3.6T)
   7811933224     2103904                          - free -  (1.0G)

=>        40  7814037088    diskid/DISK-Z302YC90  GPT  (3.6T)
           40        1024  diskid/DISK-Z302YC90p1  freebsd-boot  (512K)
         1064       40960  diskid/DISK-Z302YC90p2  efi  (20M)
        42024    83886080  diskid/DISK-Z302YC90p3  freebsd-zfs  (40G)
     83928104    20971520  diskid/DISK-Z302YC90p4  freebsd-swap  (10G)
    104899624  7707033600  diskid/DISK-Z302YC90p5  freebsd-zfs  (3.6T)
   7811933224     2103904                          - free -  (1.0G)


# gpart list | grep label
    label: bootG8V
    label: efiG8V
    label: diskG8Vsys
    label: swapG8V
    label: diskG8Vtank0
    label: bootC90
    label: efiC90
    label: diskC90sys
    label: swapC90
    label: diskC90tank0


# ll /dev/gpt/
ls: /dev/gpt/: No such file or directory


# ll /dev/ada*
crw-r-----  1 root  operator   0x73 Nov 27 00:00 /dev/ada0
crw-r-----  1 root  operator   0x81 Nov 27 00:00 /dev/ada1


Sysctl seems normal to me.

# sysctl kern.geom.label
kern.geom.label.disk_ident.enable: 1
kern.geom.label.gptid.enable: 1
kern.geom.label.gpt.enable: 1
kern.geom.label.ufs.enable: 1
kern.geom.label.ufsid.enable: 1
kern.geom.label.reiserfs.enable: 1
kern.geom.label.ntfs.enable: 1
kern.geom.label.msdosfs.enable: 1
kern.geom.label.iso9660.enable: 1
kern.geom.label.flashmap.enable: 1
kern.geom.label.ext2fs.enable: 1
kern.geom.label.debug: 0


This is the only way I can access disk partitions

# ll /dev/diskid/
total 0
crw-r-----  1 root  operator   0x7f Nov 27 00:00 DISK-Z3010G8V
crw-r-----  1 root  operator   0x99 Nov 27 00:00 DISK-Z3010G8Vp1
crw-r-----  1 root  operator   0x9b Nov 27 00:00 DISK-Z3010G8Vp2
crw-r-----  1 root  operator   0x9d Nov 27 00:00 DISK-Z3010G8Vp3
crw-r-----  1 root  operator   0x9f Nov 27 00:00 DISK-Z3010G8Vp4
crw-r-----  1 root  operator   0xa1 Nov 27 00:00 DISK-Z3010G8Vp5
crw-r-----  1 root  operator   0xad Nov 27 00:00 DISK-Z302YC90
crw-r-----  1 root  operator   0xc5 Nov 27 00:00 DISK-Z302YC90p1
crw-r-----  1 root  operator   0xc7 Nov 27 00:00 DISK-Z302YC90p2
crw-r-----  1 root  operator   0xc9 Nov 27 00:00 DISK-Z302YC90p3
crw-r-----  1 root  operator   0xcb Nov 27 00:00 DISK-Z302YC90p4
crw-r-----  1 root  operator   0xcd Nov 27 00:00 DISK-Z302YC90p5


I created two pools (sys and tank1) with adaN devices when there were 4 
disks and the system was booted from USB flash drive with FreeBSD 13.2; 
current ada0 was ada2 and current ada1 was ada3.

These commands were used

# zpool create -m none sys mirror ada2p3 ada3p3

# zpool create -m none tank1 mirror ada2p5 ada3p5

But now, when the system is booted of these disks, they are reported 
only by diskids.

# zpool list -v
NAME                         SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ 
FRAG    CAP  DEDUP    HEALTH  ALTROOT
sys                         39.5G  15.9G  23.6G        -         - 
12%    40%  1.00x    ONLINE  -
   mirror-0                  39.5G  15.9G  23.6G        -         - 
12%  40.2%      -    ONLINE
     diskid/DISK-Z3010G8Vp3    40G      -      -        -         - 
-      -      -    ONLINE
     diskid/DISK-Z302YC90p3    40G      -      -        -         - 
-      -      -    ONLINE
tank1                       3.58T  1.22T  2.36T        -         - 
0%    34%  1.00x    ONLINE  -
   mirror-0                  3.58T  1.22T  2.36T        -         - 
0%  34.0%      -    ONLINE
     diskid/DISK-Z3010G8Vp5  3.59T      -      -        -         - 
-      -      -    ONLINE
     diskid/DISK-Z302YC90p5  3.59T      -      -        -         - 
-      -      -    ONLINE


I did similar setup and migration many times and never seen this problem.

What can be wrong with this system?

Kind regards
Miroslav Lachman