Proxmox Disk Passthrough Guide#
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/212.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-002Critical Post-Passthrough Steps (GUI)#
For every disk added via CLI:
- Go to VM > Hardware.
- Select the disk and click Edit.
- Uncheck “Backup” (to prevent Proxmox from trying to snapshot a physical disk).
- 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-35002538a0688ed00VM 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-35002538a47484e10VM 221 (HP1SynologyDSM)#
3.84 TB SAS SSD 12Gbps:
qm set 221 -sata2 /dev/disk/by-id/scsi-35002538a06654510Bypassing 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=sata74. 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_S59HNG0N300017ZVM 242 (HP2BackupServer)#
qm set 242 -scsi1 /dev/disk/by-id/scsi-35002538a0664d030VM 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-358ce38ee20cb1d595. HP3, HP4, HP6 & HP7 Node Passthrough#
HP3 - VM 213 (TrueNAS)#
qm set 213 -scsi2 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0P1ZD | qm set 213 -scsi3 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0P5Z7 | qm set 213 -scsi4 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0PX4F | qm set 213 -scsi5 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0PPJJHP4 - 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-358ce38ee203e06d5HP7 - VM 217 (TrueNAS - Validation Pending)#
qm set 217 -scsi2 /dev/disk/by-id/scsi-3600508b1001cbadc5e1fff8cd999a86c | qm set 217 -scsi3 /dev/disk/by-id/scsi-3600508b1001c74a18299f0e5ad7f5536 | qm set 217 -scsi4 /dev/disk/by-id/scsi-3600508b1001c254fe1b9f5f3de7a9b1f | qm set 217 -scsi5 /dev/disk/by-id/scsi-3600508b1001c24df65069c20dc34c840 | qm set 217 -scsi6 /dev/disk/by-id/scsi-3600508b1001cf4d57e99563d37697467 | qm set 217 -scsi7 /dev/disk/by-id/scsi-3600508b1001cdcd060d3506618447e34 | qm set 217 -scsi8 /dev/disk/by-id/scsi-3600508b1001c78a2695cce0a1b7dfb706. HP8 Node & NVMe Management#
Inventory (4TB CT4000P3PSSD8)#
- nvme0:
_2311E6BC8026-> HP8BS (VM 218) - nvme1:
_2311E6BC8023-> Synology (VM 228) - nvme2:
_2336E873F263-> TrueNAS (VM 208) - nvme3:
_2336E873F291-> TrueNAS (VM 208) - nvme0 (Alt):
_2402E88D3804-> TrueNAS (VM 208)
HP8Truenas (VM 208)#
# VM 208 TrueNAS (Pool + Documents)
qm set 208 -scsi2 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZCH0GPX8 | qm set 208 -scsi3 /dev/disk/by-id/scsi-35000c500a6d47793 | qm set 208 -scsi4 /dev/disk/by-id/ata-ST12000VN0008-2YS101_ZR8014EY | qm set 208 -scsi5 /dev/disk/by-id/ata-ST12000NM0007-2A1101_ZJV0MYEK#NVMe
qm set 208 -scsi6 /dev/disk/by-id/nvme-CT4000P3PSSD8_2336E873F263 | qm set 208 -scsi7 /dev/disk/by-id/nvme-CT4000P3PSSD8_2336E873F291 | qm set 208 -scsi8 /dev/disk/by-id/nvme-CT4000P3PSSD8_2402E88D3804HP8Synology#
qm set 228 -scsi2 /dev/disk/by-id/nvme-CT4000P3PSSD8_2311E6BC8023HP8BackupServer (High Performance Virtio)#
qm set 218 --virtio0 /dev/disk/by-id/nvme-CT4000P3PSSD8_2311E6BC8026,discard=on,iothread=17. Remote/Legacy Nodes (Garage & Shed)#
OLDHP8 - VM 218 (Shed PBS)#
qm set 218 -scsi1 /dev/disk/by-id/scsi-3600508b1001c323eb900f089ec6ffbbfOLDHP9 - 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-3600508b1001c30613690d77e9e886720OLDHP10 - 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-3600508b1001c05a73c78ac74991a2f4d8. 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 -scsi4 /dev/disk/by-id/ata-ST4000DM000-1F2168_Z300XDJQ | 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_Z300X4319. 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-3600508b1001c9d3a0b597b377e127040HP1Backup 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-35002538a06653860SMBackupServer (800GB SAS SSD)#
qm set 224 -scsi1 /dev/disk/by-id/scsi-358ce38ee20cb1d65 | qm set 224 -scsi2 /dev/disk/by-id/scsi-358ce38ee20cbbbf9