ZFS zohome - My Pool With All My Stuff - Disappeared

Interesting case, we can learn from. Let us know more as you dive into it. I lean to go more for striped desktop machines and rely more on backups for this fear of designed-to-fail or other firmware issues.
 
Check your BIOS. Look how the NVME is configured there. Is your BIOS clock was correct after the power outage? Maybe your Motherboard CMOS battery need to be replaced and after the power outage some BIOS settings were reset to they default.

If you have another computer or external USB->NVME caddy you can try to connect the drive there to see if it's size is reporting correctly.
 
Check your BIOS. Look how the NVME is configured there. Is your BIOS clock was correct after the power outage? Maybe your Motherboard CMOS battery need to be replaced and after the power outage some BIOS settings were reset to they default.

If you have another computer or external USB->NVME caddy you can try to connect the drive there to see if it's size is reporting correctly.
Can't sleep, so I am back on it.

Bios time is correct. But I did see in the bios:
Firmware Revision: ERRORMOD

And now I can see that with:
smartctl -a /dev/nvme3
Code:
smartctl 7.5 2025-04-30 r5714 [FreeBSD 14.3-RELEASE-p5 amd64] (local build)                                                              
Copyright (C) 2002-25, Bruce Allen, Christian Franke, www.smartmontools.org                                                              
                                                                                                                                         
=== START OF INFORMATION SECTION ===                                                                                                     
Model Number:                       SAMSUNG MZ1LB1T9HALS-00007                                                                           
Serial Number:                      S436NA0N715552                                                                                       
Firmware Version:                   ERRORMOD                                                                                             
PCI Vendor/Subsystem ID:            0x144d                                                                                               
IEEE OUI Identifier:                0x002538                                                                                             
Total NVM Capacity:                 1,920,383,410,176 [1.92 TB]                                                                          
Unallocated NVM Capacity:           0                                                                                                    
Controller ID:                      4                                                                                                    
NVMe Version:                       1.2                                                                                                  
Number of Namespaces:               1
Namespace 1 Size/Capacity:          1,073,741,824 [1.07 GB]
Namespace 1 Formatted LBA Size:     512
Local Time is:                      Mon Nov  3 00:13:11 2025 +07
Firmware Updates (0x17):            3 Slots, Slot 1 R/O, no Reset required
Optional Admin Commands (0x000f):   Security Format Frmw_DL NS_Mngmt 
Optional NVM Commands (0x001f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat
Log Page Attributes (0x03):         S/H_per_NS Cmd_Eff_Lg
Maximum Data Transfer Size:         512 Pages
Warning  Comp. Temp. Threshold:     86 Celsius
Critical Comp. Temp. Threshold:     87 Celsius
Namespace 1 Features (0x02):        NA_Fields

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     8.00W       -        -    0  0  0  0        0       0

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0
 1 -    4096       0         0

=== START OF SMART DATA SECTION ===

SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02, NSID 0xffffffff)
Critical Warning:                   0x00
Temperature:                        -
Available Spare:                    0%
Available Spare Threshold:          10%
Percentage Used:                    255%
Data Units Read:                    0
Data Units Written:                 0
Host Read Commands:                 0
Host Write Commands:                0
Controller Busy Time:               0
Power Cycles:                       0
Power On Hours:                     0
Unsafe Shutdowns:                   0
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0

Error Information (NVMe Log 0x01, 16 of 64 entries)
No Errors Logged

Self-tests not supported

Having done a bit of searching, it looks not uncommon for Samsung drives to get this and show 1GB.
 
do not do this. every time we hear about someone doing this, we hear about them losing data to mysterious failures. next time, put partition tables on your disks.
Yes, I might well use partitions next time.

But I don't think that is related to what looks like drive failures.
 
do not do this. every time we hear about someone doing this, we hear about them losing data to mysterious failures. next time, put partition tables on your disks.
Is there a reason for it? Do you have any pointers? I have a pool like that which would be a bit hard for me to backup and restore.
 
Is there a reason for it? Do you have any pointers? I have a pool like that which would be a bit hard for me to backup and restore.
it is probably not related to the OP's drive failures, but we've heard of people's BIOSes stomping on disks with no partition table accidentally. arguably buggy bios, but really, just best to have the structure there. plus, yes, some SSDs make assumptions centering around a normal-style partition layout. all in all, we don't see any argument for using "dangerously dedicated" disks like this, it's not like the partition table takes up oodles of space.
 
you have to extract the firmware file from the update, and then it should be a simple matter of camcontrol fwdownload -f /path/to/firmware nvme0 or appropriate device name
 
I don't know if this applies to the OP situation, but I've been doing this as my default. Solaris I think wanted "whole device" but almost everything else partitions were better.

Yes, yes. I won't do it next time. In case I have to replace just one that is a wee bit smaller.

But that is not the problem I have got now.
 
I am not sure that a windows vm will recognise the drive.
Maybe a Windows VM on Bhyve would do it with PCI passthrough to the VM. I didn't try it with a disk drive but a USB controller. The VM can see the drive after the passthrough. To be able to passthrough it to the VM, it should be fully detached software wise from the host, see devctl manpage for detaching and attaching the pci device on the fly.
 
(About using partitions)
Is there a reason for it?
There are multiple reasons. One was already mentioned: Other parties (like the BIOS, or other operating systems) may see a disk without any partitions, assume that it is a blank disk, and put a partition table on it as a safety measure. Similarly, if one has an invalid partition on the disk (for example the GPT backup at the end of the disk missing), a "helpful" BIOS might automatically "fix" it. From their viewpoint, that seemed like a good idea. I used to work on very large storage systems (with thousands of disks), and we would regularly find empty disks overwritten with either Windows images, or Reiser file systems (for some reason, there was a Linux distro that liked to use Reiser, which also murders your wife, old cruel joke).

Second reason: Having a partition table allows you to use human-readable names for partitions. So instead of /dev/ada3p4 you have /dev/gpt/bob_zfs_home_mirror2). Much more user friendly

It looks as if it might be possible to update the firmware of my drives.

However the Samsung software 'Magician' only runs on windows, mac and android.

I do have a rather old windows machine, but no M.2 slots in it.

Would one of these USB plugin M.2 nvme enclosures work?
Maybe. Worth trying. Usually, these software are also available for DOS, and it is easy to set up a temporary bootable DOS USB stick (I used to use FreeDOS for it).

How would I update firmware with camcontrol? Especially when the firmware to update is part of the Samsung program.
It might work, but more likely it will not. While theoretically there are both SCSI and SATA protocols for firmware updating, in practice firmware modification tends to be highly vendor specific, for safety reasons. Disk vendors hate it when hackers put nasty firmware on their drives, so the way to update disk firmware tends to be pretty secure and quite undocumented, unless you get the instructions under NDA from the manufacturer. But there is no harm in trying camcontrol or nvmecontrol at this point.
 
in practice firmware modification tends to be highly vendor specific, for safety reasons. Disk vendors hate it when hackers put nasty firmware on their drives, so the way to update disk firmware tends to be pretty secure and quite undocumented, unless you get the instructions under NDA from the manufacturer. But there is no harm in trying camcontrol or nvmecontrol at this point.
our experience is that hard drives from 2010-ish onwards quietly switched to signed updates, and but also their update utilities really are/always have been just glitzified wrappers around the official SCSI/NVMe commands, and the hard part is finding the right file to feed to camcontrol (or nvmecontrol respectively). them switching to signed updates actually made it easier to find the files floating around.
 
However the Samsung software 'Magician' only runs on windows, mac and android.

I do have a rather old windows machine, but no M.2 slots in it.

Would one of these USB plugin M.2 nvme enclosures work?

you could try a Linux livecd that has the fwupd application, it can automatically detect the drive product id, download and burn samsung nvme firmware, just like Samsung Magician. but having that error instead of a valid firmware version might hide a bigger problem.

there also seems to be a port for it, but I never used it on FreeBSD.

# fwupdtool get-devices
[..]

Samsung SSD 970 EVO Plus 500GB:
Device ID: 71b677ca0f1bc2c5b804fa1d59e52064ce589293
Summary: NVM Express solid state drive
Current version: 2B2QEXM7
Vendor: PCI:0x144D
Serial Number: S4EVNF0M495440L
GUIDs: 47335265-a509-51f7-841e-1c94911af66b ← NVME\VEN_144D&DEV_A808
c9d531ea-ee7d-5562-8def-c64d0d144813 ← NVME\VEN_144D&DEV_A808&SUBSYS_144DA801
173afe85-89dc-54b2-9a58-a5990e4e4b6a ← Samsung SSD 970 EVO Plus 500GB
Device Flags: • Internal device
• Updatable
• System requires external power source
• Needs a reboot after installation
• Device is usable for the duration of the update
• Signed Payload
• Can tag for emulation

# fwupdtool get-updates
Loading… [************************************** ]
Devices with no available firmware updates:
• EMTEC X150 480GB
• SSD 850 PRO 512GB
• SSD 870 EVO 1TB
• Samsung SSD 970 EVO Plus 500GB
No updates available for remaining devices
 
Back
Top