[TUTORIAL] Compile Proxmox VE with patched intel-iommu driver to remove RMRR check

Feni

Well-Known Member
Jun 22, 2017
35
17
48
39
Tutorial (deprecated):

This tutorial is deprecated. I've upgraded to a gen9 Proliant that does not have the RMRR issue and kernel changes have made this solution less than desirable. Please use this script from now on: https://github.com/kiler129/relax-intel-rmrr

This tutorial will stay online for posterity. ;)



Well it took a bit more time but here it is, a tutorial to disable the RMRR check. There are other tutorials but those aren't complete, don't work or are for v4.4 and earlier. If you've been affected by RMRR on HP Proliant G7 or earlier, other solutions will not work (excluding RMRR with conrep, acs_override, etc. etc.).

You have probably read this already as well, otherwise you wouldn't be here. ;-)
https://forum.proxmox.com/threads/gpu-passthrough-tutorial-reference.34303/

You should only use this tutorial if you have old hardware that cannot disable RMRR (Reserved Memory Region Reporting). Red Hat has a good whitepaper on the subject, please read it before continuing: https://access.redhat.com/sites/default/files/attachments/rmrr-wp1.pdf

Anyway, if you're aware of the security risk of accepting RMRR in a virtualized environment, you accept the inherent risk of compiling a Linux kernel with a self-made patch (typos in the patch may kill your system) and still want to use passthrough: here's a how to for Proxmox VE v5.1 v5.2 v5.3 v5.4 v6.0 v6.2. I'm pretty new to all this stuff (first time compiling ever) so don't expect this to be the prettiest tutorial ever and there's probably a better or quicker way to do things. This however did work for me where all other suggestions failed.

If you're trying to passthrough a GPU but can't get it to work and get a message like this in the GUI:
Code:
vfio: failed to set iommu for container: Operation not permitted
RMRR exclusion might be in effect, you can check this like this:
Code:
dmesg | grep -e DMAR -e IOMMU

If that returns
Code:
vfio-pci 0000:0X:YY.Z: Device is ineligible for IOMMU domain attach due to platform RMRR requirement.  Contact your platform vendor.
RMRR exclusion is indeed in effect and passthrough for that device has been disabled.

Still on board? Okay then, we're going to make a patch to disable the RMRR check in the offending intel-iommu driver. Sidenote: this patch does NOT survive a kernel update. You'll need to patch again using this tutorial (works as long as kernel = Zesty, Artful Aardvark, Bionic Beaver, Eoan Ermine).

Also, the required patch has changed since Eoan Ermine because Intel changed their intel-iommu driver. Make sure to use the v2 patch if you are on Eoan.

First, download and install required packages. I'm not sure if you need all of them, but this is what other users used and I've been adding to the list whenever I got an error stating I was missing a package:
Code:
apt-get update
apt-get install git nano screen patch fakeroot build-essential devscripts libncurses5 libncurses5-dev libssl-dev bc flex bison libelf-dev libaudit-dev libgtk2.0-dev libperl-dev asciidoc xmlto gnupg gnupg2 rsync lintian debhelper libdw-dev libnuma-dev libslang2-dev sphinx-common asciidoc-base automake cpio dh-python file gcc kmod libiberty-dev libpve-common-perl libtool perl-modules python-minimal sed tar zlib1g-dev lz4

Then download the pve-kernel git:
Code:
cd /usr/src/
git clone git://git.proxmox.com/git/pve-kernel.git

This makes a map called pve-kernel in /usr/src/ (the preferred folder for compiling stuff) where all the magic is going to happen.

Next you can either create the patch yourself (option A) or download my variant (option B).

OPTION A:
If you want to build the patch yourself, download the Ubuntu kernel, this is needed to make a patch for the driver:
Code:
cd /usr/src/
git clone git://git.proxmox.com/git/mirror_ubuntu-focal-kernel.git
mv mirror_ubuntu-focal-kernel ubuntu-focal

Then, copy the driver file so we can edit the copy and make a patch out of the differences between the copy and original:
Code:
cp ubuntu-focal/drivers/iommu/intel-iommu.c ubuntu-focal/drivers/iommu/intel-iommu_new.c

And use your preferred editor (mine is Nano) to edit the intel.iommu_new.c driver file:
Code:
nano ubuntu-focal/drivers/iommu/intel-iommu_new.c

Find this section (ctrl-w in Nano):
Code:
        if (domain->type == IOMMU_DOMAIN_UNMANAGED &&
            device_is_rmrr_locked(dev)) {
                dev_warn(dev, "Device is ineligible for IOMMU domain attach due to platform RMRR requirement.  Contact your platform vendor.\n");
                return -EPERM;

       }

Edit out the offending "return -EPERM" line, modify the text for your convenience and close with ctrl-o and ctrl-x, it should look like this:
Code:
        if (domain->type == IOMMU_DOMAIN_UNMANAGED &&
            device_is_rmrr_locked(dev)) {
                dev_warn(dev, "Device was ineligible for IOMMU domain attach due to platform RMRR requirement. Patch is in effect.\n");
        }

Then, make a patch file in the pve-kernel directory out of the original and new driver file:
Code:
cd /usr/src/pve-kernel
diff -u /usr/src/ubuntu-focal/drivers/iommu/intel-iommu.c /usr/src/ubuntu-focal/drivers/iommu/intel-iommu_new.c > remove_rmrr_check_v2.patch

Open your new patch file, you need to edit the first two lines to co-align with the necessary filenames and structure when compiling.
Code:
nano remove_rmrr_check.patch
The first two lines should look like this (don't mind the dates, just edit the directories en filenames):
Code:
--- a/drivers/iommu/intel-iommu.c   2019-11-24 17:47:46.031359158 +0200
+++ b/drivers/iommu/intel-iommu.c       2019-11-24 17:50:59.904823799 +0200
Close and save with ctrl-o, ctrl-x (or ctrl-x and y)

Find your newly created (or downloaded) patch file in the pve-kernel directory and place it in the patches directory.
Code:
cd /usr/src/pve-kernel
mv remote_rmrr_check.patch ./patches/kernel

OPTION B
If you want to use my patch, download the attachment (remove_rmrr_check for Disco and earliers, remove_rmrr_check_v2 for Eoan and further), unzip it and place it in the following directory with WinSCP, FTP or another program of choice:
Code:
/usr/src/pve-kernel/patches/kernel/

PROCESS AFTER BOTH OPTION A AND B
There is a script that checks for strange dir names that needs to be disabled in order for us to have a custom kernel version name so we can update systems that are already up to date:
Code:
nano /usr/src/pve-kernel/debian/scripts/find-firmware.pl
Comment out the fourth line from above with a # so that it looks as such:
Code:
#die "strange directory name" if..
Save with ctrl-x and y.

Then edit the control.in file located at /usr/src/pve-kernel so that the generated package is named differently. This prevents errors when updating an up to date vanilla install. Add -removermrr to the pve-kernel article so the line lookes like this:
Code:
pve-kernel-@KVNAME@-removermrr

To finish up and give your system a nice identifier, edit the Makefile:
Code:
nano /usr/src/pve-kernel/Makefile
Edit the EXTRAVERSION line near the top of the Makefile and add this to the end:
Code:
-removermrr
Again, save with ctrl-x and y.

Now, you've made a patch to modify the intel-iommu driver and set everything to successfully compile the new kernel. All that's left is to compile! Since the Makefile does all the thinking, you don't need to pass arguments like -j:
Code:
make

Now watch the magic, it will take a while and put quite a load on your system. It took 30 minutes on my HP DL380 G6 with twin X5670's. When it's finished, you should find a couple of new .deb files in your /usr/src/pve-kernel directory. Install them:
Code:
dpkg -i *.deb

The Makefile also updates GRUB and initramfs, so no need to update those manually. When finished, reboot and check again:
Code:
dmesg | grep -e DMAR -e IOMMU

If you still get an error about unsafe interrupts, note that since 6.1 the allow_unsafe_interrupts method has changed: https://forum.proxmox.com/threads/i...nabled-still-error-message.67341/#post-312870

You should see your newly modified line about RMRR patch being in effect and passthrough should now work. If not, something else might be wrong, you made a typo somewhere or I forgot something (reply below) or this tutorial is outdated already because Proxmox uses a different kernel than Zesty (updated already to Artful after writing this tutorial, had to rewrite. Thanks to and3l12 for providing info on the new makefile).Bionic already. ;-). And on to Disco. And it's Eoan now. Focal.

Happy compiling and don't forget to like this post if it helped you. :cool::D
 

Attachments

Last edited:
seems like some repos are not exported by mistake, should be fixed soon.
 
  • Like
Reactions: Feni
Thanks a bunch, when fixed I can finally test if my patch works. :)

It should help a lot of people with old HP hardware who want PCI-e passthrough and have to move to Xen or VMware instead of Proxmox (or any linux based system) if they want passthrough because of those linux kernel restrictions. If succesfull I'll publish the patch here with instructions (and a footnote about security).
 
Last edited:
repos should work now! thanks for catching this.
 
Well it worked, and with a small change the remove_rmrr_check.patch worked as well. I'll post a tutorial here soon. :)
 
It looks like the makefile was changed in 5.1, so trying to follow the directions and testing it with only one change: copying the patch into pve-kernel\patches file. From what I saw in the makefile, it will automatically apply any .patches found in that dir while compiling

Edit: Derp. Didn't even notice that 5.1 moved to ubuntu-artful. Now downloading that kernel and going to amend the commands to reflect artful instead of zesty.
 
Last edited:
Hi ang3l12, didn't see your post. Thanks for the information, I'll upgrade my system somewhere this week and adjust the tutorial to the new kernel and makefile.

Edit:
Updated to 5.1 (Artful kernel) and the patches directory works fine indeed. Saved me some time messing around in the makefile, this is a much more elegant method of patching. :) Updated the tutorial as well and moved it to the first post.

Edit 2:
Placing the .patch in ./patches does not work. It seems you need to place it in ./patches/kernel in order for the makefile to use it. Also, the makefile won't find the file to patch so I need to adjust the tutorial.

Edit 3:
Hmpf, all seemed to go well but patch has not been applied. Need to recheck what went wrong.

Edit 4:
Found it, need to change patch file. Will update tutorial soon.

Edit 5:
Tutorial has been updated, patch should work now with instructions in first post. :)

Edit 6:
Tutorial has been updated with @djace his additions
 
Last edited:
Feni, thanks a lot for this patch and for documenting this so nicely! I can confirm that this successfully allowed me to passthrough a GeForce GT 1030 to a Windows 10 host on an HP ProLiant MicroServer Gen8 where I was getting the RMRR check and no other work-arounds I found worked.

Some additional notes that might come useful to someone else trying to do this:

a) If you are creating an LXC container to compile this custom kernel to avoid 'polluting' your main proxmox install, this will work fine. I used the standard Debian 9 template for this.

b) Besides the git nano screen patch fakeroot build-essential devscripts libncurses5 libncurses5-dev libssl-dev bc flex bison libelf-dev libaudit-dev libgtk2.0-dev libperl-dev libperl-dev asciidoc xmlto gnupg gnupg2
packages mentioned in the initial post, I found that I also had to install the following ones at some point: rsync lintian debhelper

c) You only need to install the pve-kernel-*.deb package. Based on my experience, the rest of the generated debs (linux-tools-*, linux-tools-*dbgsym*, proxmox-ve*, pve-headers-*) are not required.

d) If you are attempting to overwrite an existing Proxmox kernel without upgrading the version, you will get errors since dpkg will attempt to overwrite files from the vanilla proxmox kernel.

A much nicer solution is to edit the control.in file located at /usr/src/pve-kernel so that the generated package is named differently.
Package: pve-kernel-@KVNAME@-removermrr
Replaces: pve-kernel-@KVNAME@


If you would also want to show something custom like 'removermrr' in uname -a, you will need to edit the EXTRAVERSION variable in the general Makefile.
 
Hi friend!

I have an HP ProLiant MicroServer Gen8 and Nvidia GT630 I'm trying with a MV and windows 10 but dont work...

Could you explain how you have got it to work step by step?

sorry for my english, it's a bit poor

regards
Feni, thanks a lot for this patch and for documenting this so nicely! I can confirm that this successfully allowed me to passthrough a GeForce GT 1030 to a Windows 10 host on an HP ProLiant MicroServer Gen8 where I was getting the RMRR check and no other work-arounds I found worked.

Some additional notes that might come useful to someone else trying to do this:

a) If you are creating an LXC container to compile this custom kernel to avoid 'polluting' your main proxmox install, this will work fine. I used the standard Debian 9 template for this.

b) Besides the git nano screen patch fakeroot build-essential devscripts libncurses5 libncurses5-dev libssl-dev bc flex bison libelf-dev libaudit-dev libgtk2.0-dev libperl-dev libperl-dev asciidoc xmlto gnupg gnupg2
packages mentioned in the initial post, I found that I also had to install the following ones at some point: rsync lintian debhelper

c) You only need to install the pve-kernel-*.deb package. Based on my experience, the rest of the generated debs (linux-tools-*, linux-tools-*dbgsym*, proxmox-ve*, pve-headers-*) are not required.

d) If you are attempting to overwrite an existing Proxmox kernel without upgrading the version, you will get errors since dpkg will attempt to overwrite files from the vanilla proxmox kernel.

A much nicer solution is to edit the control.in file located at /usr/src/pve-kernel so that the generated package is named differently.
Package: pve-kernel-@KVNAME@-removermrr
Replaces: pve-kernel-@KVNAME@


If you would also want to show something custom like 'removermrr' in uname -a, you will need to edit the EXTRAVERSION variable in the general Makefile.
 
Feni, thanks a lot for this patch and for documenting this so nicely! I can confirm that this successfully allowed me to passthrough a GeForce GT 1030 to a Windows 10 host on an HP ProLiant MicroServer Gen8 where I was getting the RMRR check and no other work-arounds I found worked.

Some additional notes that might come useful to someone else trying to do this:

a) If you are creating an LXC container to compile this custom kernel to avoid 'polluting' your main proxmox install, this will work fine. I used the standard Debian 9 template for this.

b) Besides the git nano screen patch fakeroot build-essential devscripts libncurses5 libncurses5-dev libssl-dev bc flex bison libelf-dev libaudit-dev libgtk2.0-dev libperl-dev libperl-dev asciidoc xmlto gnupg gnupg2
packages mentioned in the initial post, I found that I also had to install the following ones at some point: rsync lintian debhelper

c) You only need to install the pve-kernel-*.deb package. Based on my experience, the rest of the generated debs (linux-tools-*, linux-tools-*dbgsym*, proxmox-ve*, pve-headers-*) are not required.

d) If you are attempting to overwrite an existing Proxmox kernel without upgrading the version, you will get errors since dpkg will attempt to overwrite files from the vanilla proxmox kernel.

A much nicer solution is to edit the control.in file located at /usr/src/pve-kernel so that the generated package is named differently.
Package: pve-kernel-@KVNAME@-removermrr
Replaces: pve-kernel-@KVNAME@


If you would also want to show something custom like 'removermrr' in uname -a, you will need to edit the EXTRAVERSION variable in the general Makefile.

Thanks! I've added your remarks to my tutorial. I'm testing right now.
 
Hi friend!

I have an HP ProLiant MicroServer Gen8 and Nvidia GT630 I'm trying with a MV and windows 10 but dont work...

Could you explain how you have got it to work step by step?

sorry for my english, it's a bit poor

regards

The step for step tutorial is in the first post, not sure if it applies to you with a gen8 server but you can try.
 
@Feni thanks for your tutorial, really struggeling with the same problem.

However, when I try to run the makefile on my G7 it gives the following error:

Code:
root@JvA:/usr/src/pve-kernel# make
gcc --version|grep "6\.3" || false
gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
make: *** No rule to make target 'submodules/ubuntu-artful', needed by 'ubuntu-artful.prepared'.  Stop.
I don't really get what he is missing, as I'm in my pve-directory and the patch doesn't contain any ubuntu-specific lines...
Could you help me out (once more)? :)
 
@Feni thanks for your tutorial, really struggeling with the same problem.

However, when I try to run the makefile on my G7 it gives the following error:

Code:
root@JvA:/usr/src/pve-kernel# make
gcc --version|grep "6\.3" || false
gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
make: *** No rule to make target 'submodules/ubuntu-artful', needed by 'ubuntu-artful.prepared'.  Stop.
I don't really get what he is missing, as I'm in my pve-directory and the patch doesn't contain any ubuntu-specific lines...
Could you help me out (once more)? :)

It seems something has changed with Bionic. I'll need to figure out what has changed and rewrite the tutorial. I also just found out my VM with passthrough won't boot anymore and the makefile gives me random errors whatever I try. Grr. Will report back when I find a fix.

-edit
Ok @Tirigon , found a fix. First of all, the master pve-kernel.git has an old 4.13 kernel. You currently need to clone another branch with
Code:
git clone -b pve-kernel-4.15 --single-branch git://git.proxmox.com/git/pve-kernel

Also found out how to edit the uname and build name to avoid build conflicts when patching on an updated system. Edited the tutorial to reflect this, do need to add an extra step in the tutorial to circumvent a directory naming check somewhere. Thanks @djace .
 
Last edited:
Because of lack of space on "/", I did a soft link to "/mnt/hdd:

Code:
ln -s /mnt/hdd/pve-kernel/ /usr/src/

After a while compiling, I get this error:
Code:
make[2]: Entering directory '/mnt/hdd/pve-kernel/build'
make[2]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
debian/scripts/find-firmware.pl debian/pve-kernel-4.15.18-5-pve-removermrr/lib/modules/4.15.18-5-pve-removermrr >fwlist.tmp
no such directory at debian/scripts/find-firmware.pl line 9.
debian/rules:226: recipe for target 'fwlist-4.15.18-5-pve-removermrr' failed
make[2]: *** [fwlist-4.15.18-5-pve-removermrr] Error 2
make[2]: Leaving directory '/mnt/hdd/pve-kernel/build'
debian/rules:80: recipe for target 'binary' failed
make[1]: *** [binary] Error 2
make[1]: Leaving directory '/mnt/hdd/pve-kernel/build'
dpkg-buildpackage: error: debian/rules binary gave error exit status 2
Makefile:83: recipe for target 'pve-kernel-4.15.18-5-pve-removermrr_4.15.18-24_amd64.deb' failed
make: *** [pve-kernel-4.15.18-5-pve-removermrr_4.15.18-24_amd64.deb] Error 2

The only things I have in the debian folder are:

Code:
changelog
compat
control.in
copyright
pve-headers.postinst.in
pve-kernel.postinst.in
pve-kernel.postrm.in
pve-kernel.prerm.in
rules
rules.d/
scripts/

It's like there is nothing created after all the compiling process.
 
Because of lack of space on "/", I did a soft link to "/mnt/hdd:

Code:
ln -s /mnt/hdd/pve-kernel/ /usr/src/

After a while compiling, I get this error:
Code:
make[2]: Entering directory '/mnt/hdd/pve-kernel/build'
make[2]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
debian/scripts/find-firmware.pl debian/pve-kernel-4.15.18-5-pve-removermrr/lib/modules/4.15.18-5-pve-removermrr >fwlist.tmp
no such directory at debian/scripts/find-firmware.pl line 9.
debian/rules:226: recipe for target 'fwlist-4.15.18-5-pve-removermrr' failed
make[2]: *** [fwlist-4.15.18-5-pve-removermrr] Error 2
make[2]: Leaving directory '/mnt/hdd/pve-kernel/build'
debian/rules:80: recipe for target 'binary' failed
make[1]: *** [binary] Error 2
make[1]: Leaving directory '/mnt/hdd/pve-kernel/build'
dpkg-buildpackage: error: debian/rules binary gave error exit status 2
Makefile:83: recipe for target 'pve-kernel-4.15.18-5-pve-removermrr_4.15.18-24_amd64.deb' failed
make: *** [pve-kernel-4.15.18-5-pve-removermrr_4.15.18-24_amd64.deb] Error 2

The only things I have in the debian folder are:

Code:
changelog
compat
control.in
copyright
pve-headers.postinst.in
pve-kernel.postinst.in
pve-kernel.postrm.in
pve-kernel.prerm.in
rules
rules.d/
scripts/

It's like there is nothing created after all the compiling process.

The folder contents are fine but I think there is some stuff in the find-firmware.pl script to look for certain directory names. Can you try this:
Code:
nano /mnt/hdd/pve-kernel/debian/scripts/find-firmware.pl

Comment out the fourth line from above with a # so that it looks as such:
Code:
#die "strange directory name" if..

I also added this to the main tutorial because the find-firmware.pl script will always fail on the modified -removermrr dir name.
 
@Feni really nice tutorial sadly i am stuck with compiling.
I get this error.
Code:
Makefile:1059: recipe for target 'drivers' failed
make[2]: *** [drivers] Error 2
make[2]: Leaving directory '/usr/src/pve-kernel/build/ubuntu-bionic'
debian/rules:95: recipe for target '.compile_mark' failed
make[1]: *** [.compile_mark] Error 2
make[1]: Leaving directory '/usr/src/pve-kernel/build'
dpkg-buildpackage: error: debian/rules build gave error exit status 2
Makefile:81: recipe for target 'pve-kernel-4.15.18-9-pve-removermrr_4.15.18-30_amd64.deb' failed
make: *** [pve-kernel-4.15.18-9-pve-removermrr_4.15.18-30_amd64.deb] Error 2
I don't know a lot about the kernel this is even my first time trying to change something in it.
Every step was checked for typos and nothing was forgotten at least i think.
The system is on : pve-manager/5.3-6/37b3c8df (running kernel: 4.15.18-9-pve)
System is HP DL380 G6 with 2x Intel Xeon X5670
Hope you guys can help me with this.

Edit :
Is it recommended to remove the GPU while attempting to rebuild the kernel.
I will try this next since it is a drivers error

Edit 2 :
I want to confirm that after removing the GPU and the PCI riser card from the server i was able to compile the kernel right now running on pve-manager/5.3-6/37b3c8df (running kernel: 4.15.18-9-pve-removermrr)
 
Last edited:
@Feni really nice tutorial sadly i am stuck with compiling.
Edit 2 :
I want to confirm that after removing the GPU and the PCI riser card from the server i was able to compile the kernel right now running on pve-manager/5.3-6/37b3c8df (running kernel: 4.15.18-9-pve-removermrr)

That's strange, hasn't happened to me and I run the same platform. Does the passthrough work after compiling and reseating the GPU and riser board? Perhaps you need to install the GPU drivers since the compile process fails there, not sure if I installed those before writing this tutorial..
 
Hi, thanks so much for the guide!

i am now getting this error:

TASK ERROR: start failed: command '/usr/bin/kvm -id 106 -name FreeNAS -chardev 'socket,id=qmp,path=/var/run/qemu-server/106.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' -mon 'chardev=qmp-event,mode=control' -pidfile /var/run/qemu-server/106.pid -daemonize -smbios 'type=1,uuid=35ed8d89-5-4d0e-ac71-a4915358' -smp '4,sockets=2,cores=2,maxcpus=4' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vnc unix:/var/run/qemu-server/106.vnc,x509,password -cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce -m 8200 -device 'pci-bridge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1f' -device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e' -device 'vmgenid,guid=149296e5-23f3-4b04-88a1-448f05bf27ad' -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' -device 'vfio-pci,host=00:1f.0,id=hostpci0.0,bus=pci.0,addr=0x10.0,multifunction=on' -device 'vfio-pci,host=00:1f.2,id=hostpci0.1,bus=pci.0,addr=0x10.1' -device 'VGA,id=vga,bus=pci.0,addr=0x2' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:815e19841cb4' -device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' -drive 'file=/dev/zvol/rpool/data/vm-106-disk-0,if=none,id=drive-scsi0,cache=writeback,format=raw,aio=threads,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0' -drive 'file=/dev/zvol/rpool/data/vm-106-disk-1,if=none,id=drive-scsi1,cache=writeback,format=raw,aio=threads,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=1,drive=drive-scsi1,id=scsi1' -drive 'file=/dev/zvol/rpool/data/vm-106-disk-2,if=none,id=drive-scsi2,cache=writeback,format=raw,aio=threads,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=2,drive=drive-scsi2,id=scsi2,bootindex=102' -drive 'file=/dev/zvol/rpool/data/vm-106-disk-3,if=none,id=drive-scsi3,cache=writeback,format=raw,aio=threads,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=3,drive=drive-scsi3,id=scsi3' -netdev 'type=tap,id=net0,ifname=tap106i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=96:D9:2D:6C:5D:5A,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' -machine 'type=pc'' failed: got timeout

can you assist?
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!