I just did this! It wasn't too bad. In my case I passed an NVidia P400 through to Docker in an Ubuntu 20.04 VM. The version of Ubuntu may matter for old GPUs. Here's my summary approach: 1) Prevent TrueNAS from using the device. 1a) From the TrueNAS shell, find the device: pciconf -lv You should see something like the following: vgapci1@pci0:131:0:0: class=0x030000 rev=0xa1 hdr=0x00 vendor=0x10de device=0x1cb3 subvendor=0x10de subdevice=0x11be vendor = 'NVIDIA Corporation' device = 'GP107GL \[Quadro P400\]' class = display subclass = VGA none146@pci0:131:0:1: class=0x040300 rev=0xa1 hdr=0x00 vendor=0x10de device=0x0fb9 subvendor=0x10de subdevice=0x11be vendor = 'NVIDIA Corporation' device = 'GP107GL High Definition Audio Controller' class = multimedia subclass = HDA You will need both the GPU device and the audio device. Note the IDs in the first part of each entry: vgapci1@pci0:131:0:0 none146@pci0:131:0:1 1b) Set system tuneables to exclude the device Add vmm_load with a value of YES Add ptdevs with a value of 131/0/0 131/0/1 (that is, the IDs found in step 1a above, separated with a space) 1c) Reboot TrueNAS 2) Prepare the VM OS (necessary for old GPUs) 2a. Once your Ubuntu VM is up and running, head to the shell and CD into /etc/modprobe.d/ cd /etc/modprobe.d/ 2b. Create a new file: sudo nano blacklist-nvidia-nouveau.conf 2c. Add the following to the new file then save/close: blacklist nouveau options nouveau modeset=0 2d. Create another new file: sudo nano nvidia.conf 2e. Add the following to the new file then save/close: options nvidia NVreg\_OpenRmEnableUnsupportedGpus=1 2f. Update kernel init ram fs: sudo update-initramfs -u 2g. Reboot the VM. 3) Add the GPU devices to the VM 3a. Shutdown the VM 3b. For each device: Click Devices, Add, Change the device to PCI Passhthrough, select the device. I believe the order needs to be unique. 3c. Reboot the VM 4) Install the NVidia drivers and Utilities sudo apt install nvidia-driver-460-server sudo apt install nvidia-utils-460-server 5) Verify that the VM OS can access the GPU. nvidia-smi will return a table of output if the GPU is found. lspci | grep NVIDIA nvidia-smi The GPU is now available to the VM. Continue if you want to pass the GPU through to Docker. 6) Install Docker 7) Install the NVidia Container Toolkit distribution=$(. /etc/os-release;echo VERSION\_ID) \\ && curl -s -L [https://nvidia.github.io/libnvidia-container/gpgkey] \\ (https://nvidia.github.io/libnvidia-container/gpgkey) | sudo apt-key add - \\ && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit 8) Verify that the GPU can be accessed from Docker. sudo ctr image pull docker.io/nvidia/cuda:11.0.3-base-ubuntu20.04 sudo ctr run --rm -t \\ --runc-binary=/usr/bin/nvidia-container-runtime \\ --env NVIDIA\_VISIBLE\_DEVICES=all \\ docker.io/nvidia/cuda:11.0.3-base-ubuntu20.04 \\ cuda-11.0.3-base-ubuntu20.04 nvidia-smi I am deeply indebted to craftycraft who covered most of this in the TrueNAS community thread listed below. I only had to make minor modifications to his approach in order to make this work for me. Resources: https://docs.nvidia.com/ai-enterprise/deployment-guide-vmware/0.1.0/nouveau.html https://www.truenas.com/community/threads/guide-nvidia-quadro-p400-gpu-passthrough-to-vm-and-docker-for-jellyfin-transcoding.104750/ https://ubuntu.com/server/docs/nvidia-drivers-installation Answer from raw65 on reddit.com
🌐
TrueNAS Community
truenas.com › forums › virtualized truenas
Passthrough for SATA drives | TrueNAS Community
August 6, 2022 - If you are serious about PCI Passthrough, you really should get a proper HBA card. The LSI 9211-8i (SAS 2008 family) is excellent for this application. Passing through USB drives may not be the best option for stability. Cheers, ... TrueNAS Core 13.0-U6 HP DL380 G9 1@E-2630Lv4 192GB ECC DDR4 RAM 4@1GigE LAG (Access) 2@10GigE iSCSI (Round-Robin) 9300-8i 9300-8e 2 @ Intel 3700 16GB SSD (SLOG) - spinning rust pool 35TiB production pool (2x6 RaidZ2, SSD Mirrored ZIL) 36TiB bigbackup pool (2x2 Mirror) 910GiB SSD fast pool (2x2 Mirror)
🌐
Reddit
reddit.com › r/truenas › can gpu passthrough work on a truenas core vm? or should i switch to scale?
r/truenas on Reddit: Can GPU passthrough work on a TrueNas Core VM? Or should I switch to Scale?
July 9, 2024 -

I’ve heard it both ways from articles, forums, and other posts, but most of them are several years old.

I originally went with Core due to hearing it’s more stable and easier for beginners. I’m in my first month of usage and feel like I made a mistake. I’d like to pass through my GPU to transcode media for premiere proxies and Plex, but am having a tough time considering my build. Not sure if I’m doing something wrong or if it’s just that Core still doesn’t support hardware transcoding well enough.

My Build:

Motherboard: Asus Rog Zenith Extreme Alpha X399 CPU: Ryzen Threadripper 2970wx (24 Core, 4.2GHz) GPU: 2080TI Second GPU: Radeon Pro WX2100 RAM: 128GB Dominator Platinum DDR4 3200Mhz

These parts (aside from the second Gpu I added) were from my first computer and I just reused them as I experiment with my first server. As I’m new, there were several things I didn’t take into account. Threadripper has no iGPU, so I added the second GPU in hopes I could use that as the main GPU and then passthrough the original one to the TrueNas Core VM (Hypervisor is Proxmox).

So… can I do this? Or do I have to upgrade to Scale? I’ve heard a couple people have issues upgrading and I was afraid that my inexperience may put me in the that camp. I would hate to mess something up or lose data. It also would suck to lose my jails, but if this is the only way to get transcoding, I might just need to figure it out. Any thoughts or resources that a newbie could understand would be extremely appreciated.

Top answer
1 of 3
4
I just did this! It wasn't too bad. In my case I passed an NVidia P400 through to Docker in an Ubuntu 20.04 VM. The version of Ubuntu may matter for old GPUs. Here's my summary approach: 1) Prevent TrueNAS from using the device. 1a) From the TrueNAS shell, find the device: pciconf -lv You should see something like the following: vgapci1@pci0:131:0:0: class=0x030000 rev=0xa1 hdr=0x00 vendor=0x10de device=0x1cb3 subvendor=0x10de subdevice=0x11be vendor = 'NVIDIA Corporation' device = 'GP107GL \[Quadro P400\]' class = display subclass = VGA none146@pci0:131:0:1: class=0x040300 rev=0xa1 hdr=0x00 vendor=0x10de device=0x0fb9 subvendor=0x10de subdevice=0x11be vendor = 'NVIDIA Corporation' device = 'GP107GL High Definition Audio Controller' class = multimedia subclass = HDA You will need both the GPU device and the audio device. Note the IDs in the first part of each entry: vgapci1@pci0:131:0:0 none146@pci0:131:0:1 1b) Set system tuneables to exclude the device Add vmm_load with a value of YES Add ptdevs with a value of 131/0/0 131/0/1 (that is, the IDs found in step 1a above, separated with a space) 1c) Reboot TrueNAS 2) Prepare the VM OS (necessary for old GPUs) 2a. Once your Ubuntu VM is up and running, head to the shell and CD into /etc/modprobe.d/ cd /etc/modprobe.d/ 2b. Create a new file: sudo nano blacklist-nvidia-nouveau.conf 2c. Add the following to the new file then save/close: blacklist nouveau options nouveau modeset=0 2d. Create another new file: sudo nano nvidia.conf 2e. Add the following to the new file then save/close: options nvidia NVreg\_OpenRmEnableUnsupportedGpus=1 2f. Update kernel init ram fs: sudo update-initramfs -u 2g. Reboot the VM. 3) Add the GPU devices to the VM 3a. Shutdown the VM 3b. For each device: Click Devices, Add, Change the device to PCI Passhthrough, select the device. I believe the order needs to be unique. 3c. Reboot the VM 4) Install the NVidia drivers and Utilities sudo apt install nvidia-driver-460-server sudo apt install nvidia-utils-460-server 5) Verify that the VM OS can access the GPU. nvidia-smi will return a table of output if the GPU is found. lspci | grep NVIDIA nvidia-smi The GPU is now available to the VM. Continue if you want to pass the GPU through to Docker. 6) Install Docker 7) Install the NVidia Container Toolkit distribution=$(. /etc/os-release;echo $ID$VERSION\_ID) \\ && curl -s -L [https://nvidia.github.io/libnvidia-container/gpgkey] \\ (https://nvidia.github.io/libnvidia-container/gpgkey) | sudo apt-key add - \\ && curl -s -L [https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list](https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list) | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit 8) Verify that the GPU can be accessed from Docker. sudo ctr image pull docker.io/nvidia/cuda:11.0.3-base-ubuntu20.04 sudo ctr run --rm -t \\ --runc-binary=/usr/bin/nvidia-container-runtime \\ --env NVIDIA\_VISIBLE\_DEVICES=all \\ docker.io/nvidia/cuda:11.0.3-base-ubuntu20.04 \\ cuda-11.0.3-base-ubuntu20.04 nvidia-smi I am deeply indebted to craftycraft who covered most of this in the TrueNAS community thread listed below. I only had to make minor modifications to his approach in order to make this work for me. Resources: https://docs.nvidia.com/ai-enterprise/deployment-guide-vmware/0.1.0/nouveau.html https://www.truenas.com/community/threads/guide-nvidia-quadro-p400-gpu-passthrough-to-vm-and-docker-for-jellyfin-transcoding.104750/ https://ubuntu.com/server/docs/nvidia-drivers-installation
2 of 3
2
When I researched this sometime last year, passthrough involved a script to get it to work. I don't remember all the details now but I decided to go with Scale because passthrough was a simple drop-down to enable in the app. Was much easier than messing with a script but there was that learning curve going from jails to apps. And now TrueNAS is moving away from true chart apps and going to docker, which i personally prefer. Passthrough in docker is easier too if I remember correctly. With that said, i suggest getting a separate drive to use as boot drive and install Scale to that. Play around with it and compare. That's how I did it with mine, so that if Scale didn't work I could just go back to Core easy peasy. Of course, make sure you back up your configuration so you have it in case something goes wrong.
🌐
TrueNAS Community
truenas.com › forums › virtualized truenas
Best practices new virtualized installation in Proxmox | TrueNAS Community
March 21, 2024 - www.truenas.com The short version is: Full hardware passthrough of the controller (SATA or SAS) is best. Since your SSD is NVMe, that sorts the problem of the isolated controller not being available to Proxmox. Use AHCI/non-RAID mode for your controller in the UEFI setup.
🌐
TrueNAS Community
truenas.com › forums › truenas scale › virtualization
Windows Gaming & GPU passthrough (4k 120hz) | TrueNAS Community
February 20, 2023 - • With GPU passthrough, will the windows VM take full, or close to full advantage of the GPU performance + connected screen specs, such as its resolution and refresh rate? Thanks in advance! ... When you pass through a whole GPU it is dedicated to the VM, so you will see Windows booting and so on. At this stage, TrueNAS won't be able to do anything with the GPU.
🌐
TrueNAS Community
truenas.com › forums › virtualized truenas
SOLVED - Running TrueNAS Scale in Proxmox with physical disk passthrough with H710 in IT mode | TrueNAS Community
February 8, 2024 - Click to expand... If I install on a disk on the HBA, everything goes smoothly. The issue is I want to install on the boot volume created for the VM by proxmox. Once I get through the installation. If the PCI hardware is passed as RAW, when booting into TrueNAS, it goes back to the install screen.
🌐
TrueNAS Community
truenas.com › forums › truenas scale › truenas scale bluefin
Passthrough a PCIE slot? | TrueNAS Community
December 28, 2023 - I know it's in the 3rd slot of my motherboard, and that lane is controlled by CPU 1. Is it possible to just pass the PCIE slot completely and allow the virtual machine to deal with drivers? Running TrueNAS-SCALE-23.10.2 ... Is it possible to just pass the PCIE slot completely and allow the virtual machine to deal with drivers? Click to expand... this is how PCIe passthrough works.
🌐
Reddit
reddit.com › r/proxmox › disk passthrough vs hba passthrough for virtualized truenas
r/Proxmox on Reddit: Disk Passthrough vs HBA Passthrough for virtualized TrueNAS
March 3, 2024 -

I have been researching virtualizing TrueNAS on Proxmox and there is a mix of answers between just passing through the disks to the TrueNAS vm or passing through an HBA card. The thing I don't understand is that people say if you just use disk passthrough the disks are virtualized, but how? How if I am connecting my disks to my server and then passing through the disks to the VM would I be dealing with virtualized disks or even nested ZFS?

I even found this thread on the Proxmox forums where a Proxmox staff member says to pass through the disks but then someone calls them out saying they're wrong. I would much rather have to deal with disk passthrough given my current setup, but if its going to cause issues I will go through the necessary server re-configuring to passthrough my HBA card. So definitively, which way is correct?

🌐
TrueNAS Community
truenas.com › forums › truenas scale
SOLVED - How to pass through a pcie device such as a network card to VM | TrueNAS Community
September 27, 2021 - Not the same thing... you need the VT-D extension for device passthrough in addition to the base virtualization requirement of KVM. How does this come out?
Find elsewhere
🌐
TrueNAS Community
truenas.com › forums › truenas scale
SOLVED - Usb Passthrough via pci Passthrough | TrueNAS Community
March 6, 2022 - I also try to instal usbutils but i got a permission denied, so i stp to try things and ask some help here Thanks for you help Have a good day Gontran Im on a the last version of truenas Scale ... In 22.02 they haven't added the ability to passthrough a single USB device (it is supported by KVM, just not in the SCALE middleware/UX).
🌐
XDA Developers
xda-developers.com › home › storage › here's how i fixed my truenas disk errors by properly doing hdd passthrough in proxmox
Here's how I fixed my TrueNAS disk errors by properly doing HDD passthrough in Proxmox
July 12, 2025 - And, as it turns out, both TrueNAS and ZFS really prefer having full control over the storage controller. Enabling passthrough for the drive rather than the SATA controller resulted in these ZFS errors, and also made it impossible for the S.M.A.R.T tests to run as the adapter doesn't actually support it.
🌐
TrueNAS Community
forums.truenas.com › truenas general
Guide: GPU PCIE passthrough to Plex on VM in CORE - TrueNAS General - TrueNAS Community Forums
August 3, 2024 - I have been a long time lurker online, I thought I would contribute my experience if it helps another person out as I have seen many mixed responses of this either being possible but with no details or cannot be done. After many hours of searching in forums and threads I have found you can passthrough PCIE GPU for Plex Server with hardware transcoding on TrueNAS Core 13 U6.
🌐
Reddit
reddit.com › r/truenas › truenas and linux vm with gpu passthrough
r/truenas on Reddit: TrueNAS and Linux VM with GPU Passthrough
February 26, 2024 -

Hey everyone,

I'm a sysadmin with 10+ years experience and have been a long-time Linux user since 2004. That said, I haven't really focused on building out my own NAS in my homelab, and in my career I have not really focused on storage in general. I've been researching what it would take to setup a home server with specific requirements and could use some advice on whether my current hardware will meet my needs. I would very much like to take this as an opportunity to learn TrueNAS as it seems to have far more utilization in enterprise settings than other FOSS, BSD, or Linux projects.

Here's a quick rundown of my proposed hardware:

  • CPU: Intel Core i5-12400 2.5 GHz 6-Core Processor

  • CPU Cooler: Noctua NH-L9i-17xx chromax.black 33.84 CFM

  • Motherboard: MSI MAG B660M MORTAR DDR4 Micro ATX LGA1700

  • Memory: Crucial Pro 128 GB (4 x 32 GB) DDR4-3200 CL22

  • L2ARC + SLOG Storage: 2x Samsung 980 Pro 2 TB M.2-2280 PCIe 4.0 X4 NVME SSD

  • OS & Download Storage: Crucial MX500 4 TB 2.5" SSD

  • VDEV Storage: 5x Seagate IronWolf Pro NAS 20 TB 3.5" 7200 RPM Internal HDD

  • Video Card: Sapphire PULSE Radeon RX 7800 XT 16 GB

  • Case: Fractal Design Node 804 MicroATX Mid Tower

  • Power Supply: Corsair RM750e (2023) 750 W 80+ Gold Certified Fully Modular ATX

I'm planning to run TrueNAS for my network-attached storage needs, alongside a Plex container to manage my media server. I also want to ensure Plex uses only the iGPU within the Intel CPU for transcoding purposes.

I am planning on going with RAIDZ1, as I don't anticipate running into an issue where more than 1/5 of the 5 drives fail. <knocks on wood>

The 4 TB SSD is planned to be used as the OS disk as well as fast scratch space for BitTorrent downloads before media is moved to the array.

Additionally, I'm considering running an Arch Linux VM for Linux gaming purposes (using steam and proton for compatibility) and would like to passthrough the Radeon RX 7800 XT to this VM.

My questions are:

  1. Will TrueNAS SCALE allow for a smooth operation of a Linux VM with GPU passthrough for gaming?

  2. Can I ensure Plex only utilizes the iGPU on the Intel CPU for transcoding, without affecting the performance of the Linux gaming VM?

  3. Given the hardware listed, are there any potential bottlenecks or compatibility issues I should be aware of for my intended use case?

I'm aiming for a setup that allows me to run Plex for a few users simultaneously while also having the capability to game on a VM without significant performance loss.

Any advice, suggestions, or insights from your experiences would be greatly appreciated. Thanks in advance!

🌐
Proxmox
forum.proxmox.com › home › forums › proxmox virtual environment › proxmox ve: installation and configuration
Best approach for running TrueNAS and VM with (i)GPU passthrough | Proxmox Support Forum
February 23, 2023 - Can I use an external HDD bay like https://www.orico.cc/us/product/detail/6764.html ? I'm not sure how the disks will be recognized via USB. The best way is to passthrough whole USB device inside TrueNAS.
🌐
Proxmox
forum.proxmox.com › home › forums › proxmox virtual environment › proxmox ve: installation and configuration
How to passthrough existing TrueNAS disks into a VM on Proxmox without data loss? | Proxmox Support Forum
August 25, 2025 - If you have an HBA card, you can passthrough the entire controller so that TrueNAS gets direct access to all disks attached. That way you’ll also retain SMART data, native sector sizes, and avoid virtualization overhead.
🌐
TrueNAS Community
truenas.com › forums › virtualized truenas
Best practices for boot/data drive setup (TN Scale on Proxmox) | TrueNAS Community
May 16, 2023 - TrueNAS needs direct physical access to the drive on which ZFS is. The thing is, the boot itself is also ZFS, so the best is to also passthrough the boot device. But corruption of the boot device is nowhere near of the consequences of corruption in the data pool.
🌐
TrueNAS Community
truenas.com › forums › truenas scale
GPU Passthrough to VM Question | TrueNAS Community
June 21, 2023 - Correct - in order to do full isolation of a GPU and pass it through to a VM as a PCIe device, the host OS (TrueNAS SCALE) still needs to have a GPU for itself, even if you aren't using it for containerized Apps such as Plex/Jellyfin.
🌐
TrueNAS Community
forums.truenas.com › truenas general
Best Practices - Network Interfaces - TrueNAS General - TrueNAS Community Forums
May 9, 2025 - Hi all, As I’m not a Linux expert, but more intermediate, I recently learned the subtilities of the bridge interfaces and I did not configured my TrueNAS server using them. I curently have this network hardware setup: 3x 1Gb interfaces 2x 10Gb Interfaces I created a bond for my 3 Gb interfaces I also created a bond for my 2x Gb interfaces (will probably separate them soon) And all my IPs are assigned to my bond interfaces.
🌐
TrueNAS Community
truenas.com › forums › truenas scale › virtualization
USB Drive/Device Passthrough | TrueNAS Community
September 13, 2023 - I have the following drive: Seagate ... in the future, I would like to have it working the following way: 1. Any USB device connected to the backpanel should be used directly for the TrueNAS server....