Drive serial number detection fails as None under VMWare Workstation

Mine appears to be a similar issue to what was reported here on these forums under /t/good-ol-disks-have-duplicate-serial-numbers-none-but-they-dont/63121 (Sorry, my account can’t post full URLs).

I am trying to evaluate TrueNAS Scale 25.10.2.1 - Goldeye on VMWare Workstation Pro 25H2.

I have added a series of SCSI virtual disks to the TN VM. I edited the VM’s config file to add the line disk.enableUUID = "TRUE" so that drives can be identified uniquely in Linux.

When trying to create a pool, I get an error in the WebUI claiming that the selected disks have identical (“None”) serial numbers.

The output of lsblk -o NAME,SERIAL is however:

sdb         6000c295ed8294f1074fc3d92afdd4a6
sdc         6000c29da1ec0401b00a68b305c6b183
sdd         6000c295f164cd044218b634749f2918
sde         6000c29d30b438211f07cbc98625924d
sdf         6000c29f618de5e657b5365a33b9ec74
sdg         6000c29053f7f5f24da28b6fa4edbe1f

The output of midclt call disk.query | jq similarly appears fine, with unique serial numbers:

  {
    "identifier": "{serial_lunid}6000c29d30b438211f07cbc98625924d_6000c29d30b43821",
    "name": "sde",
    "subsystem": "scsi",
    "number": 2112,
    "serial": "6000c29d30b438211f07cbc98625924d",
    "lunid": "6000c29d30b43821",
    "size": 21474836480,
    "description": "",
    "transfermode": "Auto",
    "hddstandby": "ALWAYS ON",
    "advpowermgmt": "DISABLED",
    "expiretime": null,
    "model": "VMware_Virtual_S",
    "rotationrate": null,
    "type": "HDD",
    "zfs_guid": null,
    "bus": "SCSI",
    "devname": "sde",
    "enclosure": null,
    "pool": null
  },

In the WebUI, serial numbers also appear fine, and appear unique:

[I am not able to attach screenshots, presumably because my forums account is too new]

The smartctl output similarly shows unique and present serial numbers:

sudo smartctl -a /dev/sdb
[sudo] password for truenas_admin: 
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.12.33-production+truenas] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               VMware,
Product:              VMware Virtual S
Revision:             1.0
User Capacity:        21,474,836,480 bytes [21.4 GB]
Logical block size:   512 bytes
Rotation Rate:        Solid State Device
Logical Unit id:      0x6000c295ed8294f1074fc3d92afdd4a6
Serial number:        6000c295ed8294f1074fc3d92afdd4a6
Device type:          disk
Local Time is:        Mon Mar 23 08:27:34 2026 PDT
SMART support is:     Unavailable - device lacks SMART capability.

=== START OF READ SMART DATA SECTION ===
Current Drive Temperature:     0 C
Drive Trip Temperature:        0 C

Error Counter logging not supported

Device does not support Self Test logging

However, the issue is evident when running python3 -c "from middlewared.utils.disks_.disk_class import iterate_disks;print(list(x.serial for x in iterate_disks()))":

truenas_admin@truenas[~]$ python3 -c "from middlewared.utils.disks_.disk_class import iterate_disks;print(list(x.serial for x in iterate_disks()))"
[None, None, None, None, None, None, None, 'VMware NVME_0002', 'VMware NVME_0003', 'VMware NVME_0000', 'VMware NVME_0001']

I understand that a similar issue, but on Proxmox, was found to have a workaround as described in this post t/error-topology-disks-have-duplicate-serial-numbers-none-sda-sdb-sdc/58472/11(Sorry, my account can’t post full URLs).

I am new to TrueNAS Scale - the last time I touched it was in the early FreeNAS days - and I am trying to evaluate it in a virtual environment before doing the same on physical hardware. There are some configurations that are just quicker/easier for me to test in a virtual environment. VMWare Workstation is a pretty popular virtualization environment for testing. But it appears that in recent versions of TN Scale it is impossible to evaluate the product on VMWare Workstation due to the way serial numbers are retrieved (at least for the purpose of pool creation in the WebUI).

Also noteworthy is that I tried the latest dev channel build of TrueNAS Scale (as of March 22, 2026) with the issue happening in it too.

Maybe I am missing something. I would appreciate any tips and potential workarounds.

EDIT: I should also mention that the older TrueNAS Scale ElectricEel-24.10.2.1 happily creates a pool in the same VM.

EDIT 2: After an in-place upgrade to 25.10.2.1 - Goldeye, the new version is able to utilize the pool that I created with ElectricEel-24.10.2.1. This means that the issue was indeed introduced in a more recent version of TN.

There may be a JIRA bug ticket and/or a patch coming for a future version. When Virtualizing TrueNAS, you are supposed to pass through an entire HBA controller but I understand you are just testing. I don’t believe that VMWare Workstation would be considered a supported environment so any bug ticket you create may be closed as such, or as a duplicate of an open issue.

VIRTUAL

What do you mean?

My reading of the blog post that you link gives the impression that major hypervisors should work, including VMWare Workstation:

If you’re looking to gain familiarity with the TrueNAS UI, do some development work on the TrueNAS code, perform a dry-run of upgrading between versions, or set up any other situation where data that you care about isn’t at stake, you can likely go ahead with very few guardrails on your virtualization solution. Use your hypervisor of choice to create a VM with at least 8GB of RAM, two or more vCPUs, a 16GB install disk, and data disks of whatever size are appropriate for your testing (see later in the document for some important notes if using multiple virtual disks!) – mount a TrueNAS ISO of your choice, and enjoy.

[…]

 If deploying TrueNAS for a “non-production” use case, the desktop VMware Workstation application can be used – but for a “production” VM, the requirement for PCI passthrough means the standalone ESXi hypervisor should be used instead.

My use case is non-production, and is a precursor to deploying TrueNAS Scale into production.

It’s also interesting that the older version of TN works fine. Perhaps whatever change has made it stop working in the latest version of TN can be reversed or otherwise adjusted? I think less friction in a dev/eval environment is good.

There have been a few threads on the issue of drive serial numbers and JIRA tickets submitted. A lot get closed as Unsupported. USB drive enclosures, SAS drive shelves that are known for problems and mirrored boot disks are a few lately. I did see a JIRA for the mirrored boot issue that should be fixed in another 25.10 patch and/or 26.

I use Oracle VirtualBox of different versions to create screenshots and try to recreate some forum users issues. If you are testing for production, you should be setting up TrueNAS as such. TrueNAS as a VM on a supported virtualization platform or bare metal.

Vmware workstation is not a hypervisor like ESXi or Hyper-V or proxmox, in the same sense, Type 1 hyper-visors run on bare metal, VMware workstation is an app. As far as I know, you can not pass through drives on VMware workstation, at least I can not under linux on Workstation 25H2….

My post was not about passing physical drives to TN.

I am aware of that, was just adding that for clarification if it was a thought for testing.

No worries. I am only trying to test a fully virtual instance, so there are no physical drives that I want to pass to the VM.

FYI, it is possible to map a physical drive to a VM in VMWare Workstation 25H2 on Windows. Not sure if this option is available on Linux. And I don’t know if it would pass SMART data to the VM. But you got me curious now.

The rabbit hole!

That is how my brain works..lol “lets try this, wonder if that would work, maybe if I do this” and suddenly hours or days later..

You can test using Vmware and virtual disks however i would not count on a great full disk emulation. All drives are recognized well if you pass through the entire HBA. I ran like this for over 10 years. I only recently moved to bare metal because the VM features were not available when I used ESXi.

But to evaluate, i totally understand. I do this anytime I want to try something new.

This worked in older versions of TN Scale. However, as per my post, this no longer works. That’s what I am hoping to get fixed/changed.

My workaround has been to create the pool in the older version of TN Scale, then run an in-place upgrade to the latest version of TN Scale. I am hoping to avoid having to do this extra step.

I would not run this for any sort of production use. But to evaluate the product and to simulate various scenarios, I think it’s perfectly reasonable to have the option to do it in VMWare Workstation. And yes, I realize that certain things should be tested on real hardware. My evaluation on VMWare Workstation would not replace that.

Another datapoint :

openmediavault happily creates a ZFS pool in a VMWare Workstation VM (with disk.enableUUID = "TRUE" added to the vmx config).