Proxmox Disk Passthrough Guide#

The HP7TrueNAS passthrough entry below is VM 207 and remains validation-pending. The former HP6Proxmox host was decommissioned; 10.1.1.16 is now assigned to HP6TrueNAS, formerly HP7TrueNAS. Do not apply the VM 207 commands without revalidating the deployment. HP7BackupServer is a separate VM 217, now at 10.1.1.217.


1. Discovery Commands#

Use these commands to identify physical disks on the Proxmox host.

# Install hardware lister
apt install lshw

# List disks and storage controllers
lshw -class disk -class storage

# List all Physical Disk IDs (The ID needed for passthrough)
ls -l /dev/disk/by-id/
# Advanced list: Maps Device to ID and filters out partitions/LVM
lsblk |awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;printf $0" ";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'|grep -v -E 'part|lvm'

2. Configuration Requirements#

Adding Serials (Crucial for TrueNAS/ZFS)#

In TrueNAS manually edit the VM config file to ensure disk serials persist:

# change VM number
nano /etc/pve/qemu-server/213.conf
##Add the ,serial=XXX
scsi0: Storage:vm-212-disk-0,discard=on,size=32G,ssd=1,serial=PROX-001
scsi1: Storage:vm-212-disk-1,discard=on,size=1G,ssd=1,serial=PROX-002

Critical Post-Passthrough Steps (GUI)#

For every disk added via CLI:

  1. Go to VM > Hardware.
  2. Select the disk and click Edit.
  3. Uncheck “Backup” (to prevent Proxmox from trying to snapshot a physical disk).
  4. Check “SSD Emulation” (if the physical disk is an SSD).

3. HP1 Node Passthrough#

VM 201 (TrueNAS - Documents)#

3.84 TB SAS SSD 12Gbps:

qm set 201 -scsi4 /dev/disk/by-id/scsi-35002538a0664f320 | qm set 201 -scsi5 /dev/disk/by-id/scsi-35002538a0664cf40 | qm set 201 -scsi6 /dev/disk/by-id/scsi-35002538a0688ed00

VM 211 (HP1BackupServer)#

960 Gb SAS SSD 12Gbps:

qm set 211 -scsi1 /dev/disk/by-id/scsi-35002538a47483b10 | qm set 211 -scsi2 /dev/disk/by-id/scsi-35002538a4747be50 | qm set 211 -scsi3 /dev/disk/by-id/scsi-35002538a47484e10

VM 211 boot-order/ZFS import remediation (2026-09-24)#

On 2026-09-23 and 2026-09-24, VM 211 started successfully in Proxmox but the guest’s zfs-import-cache.service failed because virtio-scsi-single allowed the guest’s /dev/sdX assignments to change between boots. The pool cache referenced /dev/sdb1, while the scsi1 passthrough disk was temporarily enumerated as /dev/sda. ZFS reported Value too large for defined data type and marked sdb1 unavailable until the VM was restarted.

Remediation applied on HP1BackupServer:

  • Cleanly stopped PBS and backed up /etc/zfs/zpool.cache to /etc/zfs/zpool.cache.before-byid-20260924-0827.
  • Exported and re-imported pool Backups using /dev/disk/by-id.
  • Added /etc/systemd/system/zfs-import-cache.service.d/10-backups-byid.conf, requiring the three guest persistent device units and running udevadm settle --timeout=30 before the cache import.
  • Verified Backups is ONLINE, all three members use the scsi-0QEMU_QEMU_HARDDISK_drive-scsi{1,2,3}-part1 paths, and PBS datastore Backups is active at /Backups.

The Proxmox QEMU guest-agent service was separately found inactive at 08:15 EDT, causing guest-agent timeout messages. It was not changed manually; the validation reboot restored it to active.

VM 221 (HP1SynologyDSM)#

3.84 TB SAS SSD 12Gbps:

qm set 221 -sata2 /dev/disk/by-id/scsi-35002538a06654510

Bypassing the 6 SATA limit (Manual Edit): nano /etc/pve/qemu-server/221.conf Add to args: (ensure no line breaks between commands and CPU settings):

args: -device ahci,id=ahci1,multifunction=on,bus=pci.0,addr=0xb, -drive 'file=/dev/disk/by-id/scsi-35002538a47483b10,if=none,id=drive-sata3,format=raw,aio=threads,detect-zeroes=unmap' -device ide-hd,bus=ahci1.0,drive=drive-sata3,id=sata3 -drive 'file=/dev/disk/by-id/scsi-35002538a47484e10,if=none,id=drive-sata4,format=raw,aio=threads,detect-zeroes=unmap' -device ide-hd,bus=ahci1.1,drive=drive-sata4,id=sata4 -drive 'file=/dev/disk/by-id/scsi-35002538a474840f0,if=none,id=drive-sata5,format=raw,aio=threads,detect-zeroes=unmap' -device ide-hd,bus=ahci1.2,drive=drive-sata5,id=sata5 -drive 'file=/dev/disk/by-id/scsi-35002538a4747c300,if=none,id=drive-sata6,format=raw,aio=threads,detect-zeroes=unmap' -device ide-hd,bus=ahci1.3,drive=drive-sata6,id=sata6 -drive 'file=/dev/disk/by-id/scsi-35002538a4747be60,if=none,id=drive-sata7,format=raw,aio=threads,detect-zeroes=unmap' -device ide-hd,bus=ahci1.4,drive=drive-sata7,id=sata7

4. HP2 Node Passthrough#

VM 222 (HP2SynologyDSM)#

qm set 222 -sata2 /dev/disk/by-id/ata-Patriot_P210_1TB_P210HBCB230711000653 | qm set 222 -sata3 /dev/disk/by-id/ata-Patriot_P210_1TB_P210HBCB230711000902 | qm set 222 -sata4 /dev/disk/by-id/ata-SPCC_Solid_State_Disk_A20231231S301KG13068 | qm set 222 -sata5 /dev/disk/by-id/ata-Samsung_SSD_860_QVO_1TB_S59HNG0N300017Z

VM 242 (HP2BackupServer)#

qm set 242 -scsi1 /dev/disk/by-id/scsi-35002538a0664d030

VM 212 (HP2TrueNAS - UnasPro Backup)#

qm set 212 -scsi3 /dev/disk/by-id/scsi-358ce38ee20cbbbfd | qm set 212 -scsi4 /dev/disk/by-id/scsi-358ce38ee20cb1d1d | qm set 212 -scsi5 /dev/disk/by-id/scsi-358ce38ee20cbbbd1 | qm set 212 -scsi6 /dev/disk/by-id/scsi-358ce38ee20cb1d59

5. HP3, HP4 & Legacy HP7 Node Passthrough#

HP3 - VM 213 (TrueNAS)#

#TVSeries HDD??
qm set 213 -scsi2 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZCH0GPX8
#Films HDD4
qm set 213 -scsi3 /dev/disk/by-id/ata-ST4000DM000-1F2168_Z300X431

HP4 - Backup & TrueNAS#

# VM 214 BackupServer
qm set 214 -scsi1 /dev/disk/by-id/scsi-35002538a068074d0

# VM 224 TrueNAS (800GB SAS SSD)
qm set 224 -scsi3 /dev/disk/by-id/scsi-358ce38ee20cb1d4d | qm set 224 -scsi4 /dev/disk/by-id/scsi-358ce38ee203e06d5

6. HP7 Node & NVMe Management#

HP7TrueNAS (VM 207)#

#VM 207 TrueNAS Media
qm set 207 -scsi2 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0P1ZD | qm set 207 -scsi3 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0P5Z7 | qm set 207 -scsi4 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0PX4F | qm set 207 -scsi5 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0PPJJ
#old 12 TB disks removed, spares
qm set 207 -scsi2 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZCH0GPX8 | qm set 207 -scsi3 /dev/disk/by-id/scsi-35000c500a6d47793 | qm set 207 -scsi4 /dev/disk/by-id/ata-ST12000VN0008-2YS101_ZR8014EY | qm set 207 -scsi5 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0MYEK
#NVMe
qm set 207 -scsi6 /dev/disk/by-id/nvme-CT4000P3PSSD8_2336E873F263 | qm set 207 -scsi7 /dev/disk/by-id/nvme-CT4000P3PSSD8_2336E873F291 | qm set 207 -scsi8 /dev/disk/by-id/nvme-CT4000P3PSSD8_2402E88D3804

HP7SynologyDSM (VM 227)#

qm set 227 -scsi2 /dev/disk/by-id/nvme-CT4000P3PSSD8_2311E6BC8023

HP7BackupServer (VM 217; 10.1.1.217) (High Performance Virtio)#

qm set 217 --scsihw virtio-scsi-single --scsi1 /dev/disk/by-id/nvme-CT4000P3PSSD8_2311E6BC8026,discard=on,iothread=1,ssd=1

7. Remote/Legacy Nodes (Garage & Shed)#

OLDHP8 - VM 218 (Shed PBS)#

qm set 218 -scsi1 /dev/disk/by-id/scsi-3600508b1001c323eb900f089ec6ffbbf

OLDHP9 - VM 219 (Garage PBS) & VM 229 (Synology)#

# VM 219 PBS
qm set 219 -scsi1 /dev/disk/by-id/scsi-3600508b1001c6028010aacd4b3cd603b | qm set 219 -scsi2 /dev/disk/by-id/scsi-3600508b1001ca6e6e968b9abaf63a658 | qm set 219 -scsi3 /dev/disk/by-id/scsi-3600508b1001cba3c655520c8bda56049 | qm set 219 -scsi4 /dev/disk/by-id/scsi-3600508b1001c04eac9ee19dd9bba2b02 | qm set 219 -scsi5 /dev/disk/by-id/scsi-3600508b1001c6c9ddae7e799465d5498 | qm set 219 -scsi6 /dev/disk/by-id/scsi-3600508b1001c203c09821043388f0051 | qm set 219 -scsi7 /dev/disk/by-id/scsi-3600508b1001ce4624a0d0b03f8dd40ee

# VM 229 Synology
qm set 229 -sata2 /dev/disk/by-id/scsi-3600508b1001c30613690d77e9e886720

OLDHP10 - VM 220 (Garage TrueNAS)#

# Mass Passthrough (SCSI 2-16)
qm set 220 -scsi2 /dev/disk/by-id/scsi-3600508b1001cbef7553fc107c8d53a3b | qm set 220 -scsi3 /dev/disk/by-id/scsi-3600508b1001c41f5dec471093d17547d | qm set 220 -scsi4 /dev/disk/by-id/scsi-3600508b1001cd83aa1b9c00dcb45f6fc | qm set 220 -scsi5 /dev/disk/by-id/scsi-3600508b1001cb8f3c7667de2ab4e5b85 | qm set 220 -scsi6 /dev/disk/by-id/scsi-3600508b1001c7ec7665613f60ba0ca40 | qm set 220 -scsi7 /dev/disk/by-id/scsi-3600508b1001cb81cb8c82325a2414a4e | qm set 220 -scsi8 /dev/disk/by-id/scsi-3600508b1001c0c546c50302a09fd3f4e | qm set 220 -scsi9 /dev/disk/by-id/scsi-3600508b1001c027960371ecb83af54a2 | qm set 220 -scsi10 /dev/disk/by-id/scsi-3600508b1001c6c9bfba98ff28b0d0948 | qm set 220 -scsi11 /dev/disk/by-id/scsi-3600508b1001c8498cd2b06f5ee88626e | qm set 220 -scsi12 /dev/disk/by-id/scsi-3600508b1001ce88eb659c8416ecfe5c9 | qm set 220 -scsi13 /dev/disk/by-id/scsi-3600508b1001c497353e6fbf51c271aeb | qm set 220 -scsi14 /dev/disk/by-id/scsi-3600508b1001cd83f2bbfd5da131cc6ba | qm set 220 -scsi15 /dev/disk/by-id/scsi-3600508b1001ccd62619595a035f9e94f | qm set 220 -scsi16 /dev/disk/by-id/scsi-3600508b1001c05a73c78ac74991a2f4d

8. MP5.2 Node - VM 252 (TrueNAS)#

qm set 252 -scsi2 /dev/disk/by-id/ata-ST4000DM000-1F2168_W300T362 | qm set 252 -scsi3 /dev/disk/by-id/ata-ST4000DM000-1F2168_Z300VMNK | qm set 252 -scsi5 /dev/disk/by-id/ata-ST4000DM000-1F2168_Z302L1GE | qm set 252 -scsi6 /dev/disk/by-id/ata-WDC_WD4003FZEX-00Z4SA0_WD-WCC130578883 | qm set 252 -scsi7 /dev/disk/by-id/ata-ST4000DM000-1F2168_Z300X431

9. Christian’s Configuration Reference#

HP1Synology (4TB SAS SSD)#

qm set 221 -scsi2 /dev/disk/by-id/scsi-3600508b1001cd87eceffba2a9dcee875 | qm set 221 -scsi3 /dev/disk/by-id/scsi-3600508b1001c9d3a0b597b377e127040

HP1Backup Server (480GB SAS SSD)#

qm set 231 -scsi1 /dev/disk/by-id/scsi-3600508b1001ccad1ed8d73c9ea2e20cb | qm set 231 -scsi2 /dev/disk/by-id/scsi-3600508b1001c8673960eaf47d5845faa | qm set 231 -scsi3 /dev/disk/by-id/scsi-3600508b1001cb857f21732c5fb4a4e8f | qm set 231 -scsi4 /dev/disk/by-id/scsi-3600508b1001c4ad438f3df5797963a8b 

TrueNAS 12TB Pools#

qm set 214 -scsi6 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0NWJV | qm set 214 -scsi7 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0NMT3 | qm set 214 -scsi8 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0PWQE

# Backup Pool - ARCHIVES - Disques enlevés - Pool n'Mexiste plus car les disques sont trop $$$
qm set 214 -scsi3 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0P7M0 | qm set 214 -scsi4 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0P20N 

# 4TB SAS SSDs
qm set 214 -scsi10 /dev/disk/by-id/scsi-35002538a0664fa60 | qm set 214 -scsi11 /dev/disk/by-id/scsi-35002538a06653860

SMBackupServer (800GB SAS SSD)#

qm set 224 -scsi1 /dev/disk/by-id/scsi-358ce38ee20cb1d65 | qm set 224 -scsi2 /dev/disk/by-id/scsi-358ce38ee20cbbbf9