Do NOT pass virtual drives from Proxmox (other than the VM itself); pass through the SATA/SAS controller and NVMe drives as PCIe devices—and blacklist them in Proxmox.
I’m having a similar problem, but I’m using an ACASIS 5-bay RAID 0 with two 14TB Seagate IronWolf HDDs connected via USB to a miniPC with an i5 processor, 8GB of RAM, and 256GB of storage, running TrueNAS-SCALE-25.10.0.1.
Could you help me with this?
Hard Drive IronWolf 14 TB (A)
CrystalDiskInfo 9.7.2 x64
Firmware: SN03
Serial Number: ZTM0D50D
Interface: USB (Serial ATA)
Rotation Rate: 7200 RPM
Transfer Mode: SATA/300 | SATA/600
Number of Times Connected: 4 times
Number of Hours Connected: 2 hours
Standard: ACS-4
Supported Features: S.M.A.R.T., NCQ, Streaming, GPL
Hard Drive IronWolf 14 TB Hard Drive (B)
CrystalDiskInfo 9.7.2 x64
Firmware: 1000
Serial Number: ZTM0D5LP
Interface: USB (Serial ATA)
Rotation Rate: 7200 RPM
Transfer Mode: SATA/300
Number of Times Connected: 4 times
Number of Hours Connected: 2 hours
Standard: ATA/ATAPI - 7
Supported Features: S.M.A.R.T., APM
This is your problem, and there’s no solution other than using hardware that is suitable for ZFS, namely either a PC that is large enough to host drives internally, attached to motherboard SATA ports, or a proper SAS enclosure attached through external ports from a HBA. (A SATA enclosure would work, but no port multiplier in there: Proper lanes for all drives.)
You should have opened your own thread…
Just out of curiosity: you mentioned RAID 0
However, the external enclosure presents the HDDs individually, and you can read the individual drive information with CrystalDiskInfo ?
I’m having this same error attempting to add a disk as a spare. My drives are direct attached via SCSI, no external bay, no USB, and TrueNas is not virtualized. Does anyone have any ideas why this may be the case still?
I submitted a bug report, NAS-139550, but they thought it was due to my “disk shelf”. Though I did not mention any disk shelf. I wonder if they meant just the SCSI adapter? I’m using an LSI 9300-8i.
Try the following thread. Similar issues. You didn’t list detailed hardware and I can’t see what info was submitted to the Jira ticket since I don’t work for TrueNAS. Disk shelf has to be related to your chassis.
I think I ran in the same problem with PVE,
having fully virtualized TrueNAS test systems here, and since 25.10 it has started to act up.
Though I found a solution, for the test system use case, I was using virtual SCSI disks so far, but this throws a None serial now, so switched to SATA and seems to work again (only tested with a new setup, not switching SCSI connected disks to SATA)
On my old system that does not support IOMMU (groups), I resolved this issue without passing through a controller, with just disk passthrough. The solution was to add additional “serial=” to VM conf.
Then both midclt call disk.query | jq and TrueNAS web ui were happier, and I was able to create a new pool with these disks via the TrueNAS web ui (instead of just through the CLI).
Just give them a serial. So clean and easy it hurts. In the next version, PVE must assign a sequential, random or hardware-generated serial to each device, and/or a field in TrueNAS interface to enter a serial yourself, and all solved.
So clean and easy it hurts that this remainsunfixed. What’s the middleware looking for that it’s not finding?
Edit: Nevermind. I’ve just spotted the other thread. A Bright Spark decided to rely solely on VPD page 0x80 even though the T10 group has never required it under any revision of SPC. It’s been optional since day one.
You can lead a horse to the water but you cannot force it to drink.
Edit2: It gets worse. VMware with disk.EnableUUID = “TRUE” in the .vmx does enable a valid response to VPD 0x80:
sg_vpd -v /dev/sdb Supported VPD pages VPD page: inquiry cdb: [12 01 00 00 fc 00] [PQual=0 Peripheral device type: disk] Supported VPD pages [sv] Unit serial number [sn] <---- This is 0x80 Device identification [di] Block device characteristics (SBC) [bdc]
In the Linux kernel’s include/scsi/scsi_device.h the read of 0x80 is gated behind how the device reports its scsi/SPC level; VMware disks report as legacy SCSI_2 so the kernel bypasses reading 0x80 (and likely others as well).
The workaround here should be something like scsi_mod.dev_flags=VMware:Virtual Disk S:0x10000000 which triggers BLIST_TRY_VPD_PAGES (see scsi_devinfo.h) but I can’t get it to work on the kernel command line nor as a .conf in modules.d. Based on my research it might need padding to 8chars:16chars. Or quotes. Or both.
Whatever the case, success should mean the appearance of vpd_pg80 under sys/block/*/device.