User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active

This article will show step by step how to install Synology DSM 6.2.3 on a Proxmox (KVM) Virtual Machine using a Xpenology DSM bootloader.

Requirements (at the time of the writing):

  • Proxmox VE 6.2-12 (or later) installed
  • Xpenology Jun's Loader 1.03b for ds3615xs ( which can be found in this forum)
  • DSM 6.2.3 (25426) file named "DSM_DS3615xs_25426.pat" (here)

(warning: images-intensive article)


This system is for testing or educational purpose ONLY, and It is NOT recommended for use in production environment because it has no support and it has not been proven  stable/reliable.

So if DATA LOSS happens by using this system, this is ONLY on your own responsibility.

If you are happy with the testing of this product, I would highly recommend you to go for an original Synology hardware especially for PRODUCTION environment where data is critical.

We recommend ...
... at least 512MB RAM
... at least 16GB of free disk space

Please, click on pictures to zoom.

Create a new virtual machine


Install Xpenology DSM 6.2.x on Proxmox

Select :

  • VM ID: 107
  • Name: XpenoDsm62x

Click NEXT


Install Xpenology DSM 6.2.x on Proxmox

Select : Do not use any media

Guest OS, Select :

  • Type: Linux
  • Version: 5.x - 2.6 Kernel

Click NEXT


Install Xpenology DSM 6.2.x on Proxmox

(Check "Advanced" checkbox at the bottom)


  • Graphic Card: none
  • SCSI Controller: Default (LSI 53C895A)
  • BIOS: default (SeaBIOS)
  • Machine: q35

Click NEXT

Hard Disk

Install Xpenology DSM 6.2.x on Proxmox

(Uncheck "Advanced" checkbox at the bottom)

Select :

  • Bus/Device: SATA 0
  • Storage: local
  • Disk size (GB): 16
  • Format: Raw disk image (raw)
  • Cache: Write back
  • Discard: uncheck

Click NEXT


Install Xpenology DSM 6.2.x on Proxmox

Select :

  • Sockets: 1
  • Cores: 1
  • Type: Default (kvm64)

Click NEXT


Install Xpenology DSM 6.2.x on Proxmox

Select :

  • Memory (MB): 1024 (or 512)
  • (In Avanced mode) Ballooning Device: Uncheck (or Check if bootloader support it)

Click NEXT


Install Xpenology DSM 6.2.x on Proxmox


  • Bridge: vmbr0 (or other of your proxmox)
  • Model: Intel E1000 (or choose VirtIO if bootloader support it)
  • Firewall: uncheck

Click NEXT


Install Xpenology DSM 6.2.x on Proxmox

Check config
Click on FINISH

Hardware - Serial Port

Install Xpenology DSM 6.2.x on Proxmox

On Hardware tab,

Click on Add button
Then Select Serial Port
Then Enter: Serial Port: 0
Click on Add button to validate

Options - Boot Order

Install Xpenology DSM 6.2.x on Proxmox

On Options tab,

Select on Boot Order line
Then Click on Edit button
Then Select:

  • Boot device 1: CD-ROM
  • Boot device 2: none
  • Boot device 3: none

Then Click on OK button to validate

(Optional) Use tablet for pointer: No

Bootloader copy

Copy xpenology Jun's bootloader, previously downloaded, to proxmox server as /var/lib/vz/images/107/synoboot.img.
For that, you can use ftp or scp (or pscp for older windows).
In example:

pscp.exe "synoboot_103b_ds3615xs_virtio_9p.img" [email protected]:/var/lib/vz/images/107/synoboot.img

scp.exe "synoboot_103b_ds3615xs_virtio_9p.img" [email protected]:/var/lib/vz/images/107/synoboot.img

VM conf manual modification

We will do custom configuration to add the bootloader as usb disk with high priority boot.

On proxmox server, open a shell as root, and execute the following command: (Substitute your <VM ID> if not 107)

# Add synoboot.img as USB drive 
[root@proxmox]$ echo "args: -device 'nec-usb-xhci,id=usb-bus0,multifunction=on' -drive 'file=/var/lib/vz/images/107/synoboot.img,media=disk,format=raw,if=none,id=drive-disk-bootloader' -device 'usb-storage,bus=usb-bus0.0,port=1,drive=drive-disk-bootloader,id=usb-disk-bootloader,bootindex=999,removable=on'" >> /etc/pve/qemu-server/107.conf


In the end, /etc/pve/qemu-server/107.conf file should look like that:

args: -device 'nec-usb-xhci,id=usb-bus0,multifunction=on' -drive 'file=/var/lib/vz/images/107/synoboot_103b_ds3615xs_virtio_9p.img,media=disk,format=raw,if=none,id=drive-disk-bootloader' -device 'usb-storage,bus=usb-bus0.0,port=1,drive=drive-disk-bootloader,id=usb-disk-bootloader,bootindex=999,removable=on'
balloon: 0
boot: d
cores: 1
ide2: none,media=cdrom
machine: q35
memory: 1024
name: XpenoDsm62x
net0: e1000=42:5A:BB:A3:B5:89,bridge=vmbr0
numa: 0
ostype: l26
sata0: local:107/vm-107-disk-0.raw,cache=writeback,size=16G
serial0: socket
smbios1: uuid=895bab09-7026-4ad8-bb23-1bbd731895dc
sockets: 1
vga: none


Start VM

For the first run, we gonna start the vm in command line.
Open a terminal on proxmox server as root:

# Start and open terminal on serial port
[root]$ qm start 107 && qm terminal 107

                       GNU GRUB  version 2.02~beta2-36ubuntu3.14
     |*DS3615xs 6.2 Baremetal with Jun's Mod v1.03b                               |
     | DS3615xs 6.2 Baremetal with Jun's Mod v1.03b Reinstall                     |
     | DS3615xs 6.2 VMWare/ESXI with Jun's Mod v1.03b                             |
     |                                                                            |
     |                                                                            |
     |                                                                            |
     |                                                                            |
     |                                                                            |
     |                                                                            |
     |                                                                            |
     |                                                                            |
     |                                                                            |
          Use the ^ and v keys to select which entry is highlighted.
          Press enter to boot the selected OS, `e' to edit the commands
          before booting or `c' for a command-line.
    This mod is brought to you by Jun < @>. You can contact me to
    discuss technical details, but general installation questions should go through
    the xpenology forum or other communities.
    Happy hacking
    Screen will stop updating shortly, please open to
    [ ... ]
    START /linuxrc.syno
    Insert basic USB modules...
    :: Loading module usb-common ... [  OK  ]
    :: Loading module usbcore ... [  OK  ]
    :: Loading module ehci-hcd ... [  OK  ]
    [ ... ]
    udhcpc (v1.16.1) started
    eth0      Link encap:Ethernet  HWaddr 00:11:32:2C:A7:85
              inet addr:  Bcast:  Mask:
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:43 errors:0 dropped:0 overruns:0 frame:0
              TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:13450 (13.1 KiB)  TX bytes:890 (890.0 B)
    lo        Link encap:Local Loopback
              inet addr:  Mask:
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    :: Starting syslogd ... [  OK  ]
    :: Starting scemd
    :: Starting services in background
    Starting findhostd in flash_rd...
    Starting services in flash_rd...
    Running /usr/syno/etc/rc.d/
    Starting httpd:80 in flash_rd...
    Starting httpd:5000 in flash_rd...
    Running /usr/syno/etc/rc.d/
    /usr/bin/minissdpd -i eth0
    (15): upnp:rootdevice
    (51): uuid:upnp_SynologyNAS-0011322ca785::upnp:rootdevice
    (56): Synology/synology_bromolow_3615xs/6.2-25426/
    /usr/syno/bin/reg_ssdp_service 0011322ca785 6.2-25426 synology_bromolow_3615xs eth0
    Running /usr/syno/etc/rc.d/
    Starting synoagentregisterd...
    Running /usr/syno/etc/rc.d/
    Running /usr/syno/etc/rc.d/
    Running /usr/syno/etc/rc.d/
    Starting nbnsd...
    Running /usr/syno/etc/rc.d/
    Starting Avahi mDNS/DNS-SD Daemon
    cname_load_conf failed:/var/tmp/nginx/avahi-aliases.conf
    :: Loading module hid ... [  OK  ]
    :: Loading module usbhid ... [  OK  ]
    ============ Date ============
    Sat Oct 24 17:07:34 UTC 2020
    starting pid 7262, tty '': '/sbin/getty 115200 console'
    Sat Oct 24 17:07:35 2020
    DiskStation login:

Press Ctrl + o keys to exit from virtual terminal

If everything goes well, in the end, you should see "DiskStation login" prompt and the ip address acquired from dhcp, which is  "" in this case.

We are now ready to install Synology DSM.

DSM Install

Open internet browser and go to (the ip address previously found) :

Install Xpenology DSM 6.2.x on Proxmox

Click on Set up button


Install Xpenology DSM 6.2.x on Proxmox

Click on Manual Install
Click on Browse and Select DSM_DS3615xs_25426.pat file ( that you have already downloaded)
Click on Install Now


Install Xpenology DSM 6.2.x on Proxmox

Read and Verify
Check I understand(...)all data(...)will be removed.
Click on Ok


Install Xpenology DSM 6.2.x on Proxmox

Wait until installation complete.


Install Xpenology DSM 6.2.x on Proxmox

Enter your:

  • server name
  • admin username
  • admin password

Then click Next


Install Xpenology DSM 6.2.x on Proxmox

Click Skip this step (link at the bottom)
Then, in the popup, Click Yes


Install Xpenology DSM 6.2.x on Proxmox

Uncheck checkbox
Then click on Go


Install Xpenology DSM 6.2.x on Proxmox

That's it! Your synology is now ready to use!

Proxmox backup template

Restore backup

To make things easier, some nice guys did some proxmox backup :

  • Download proxmox backup which can be found in this forum's thread
  • Transfer backup in proxmox repository folder
  • In proxmox ve web gui,
    • go to your repository then content tab
    • select the backup
    • click Restore button

Boot to usb disk

These backups do not boot on usb disk but, instead, it boots the bootloader as normal sata disk.
If you want to change to usb disk boot :

  • Detach "sata0: vm-107-disk-0.raw" (or comment it in conf file)
  • Copy or Move "vm-108-disk-0.raw" to "synoboot.img"
  • Change conf as explained previously in "VM conf manual modification" to add it as add usb disk


DSM Post-install

Desactivate auto update

First of all, I would recommend to disable automatic updates as follow:

  • Go to "Control Panel" > "Update & Restore"
  • On the "DSM Update" tab,
  • Click on Update Settings
    • Then select "Notify me and let me whether to install new update"
    • Click on OK to validate


Xpenology dsm update is done in the normal way with "Control Panel" > "Update & Restore" in web dsm gui.
However any update can break your xpenology, so before installing a new update :

  • Check in this forum if someone already had successful update with similar configuration system
  • Try in another VM the update and check that the system still work properly


Activate SSH terminal

On DSM web gui,

  • Go to "Control Panel" and click on "Advanced Mode" (in top-right corner)
  • Click on "Terminal & SNMP"
  • In "Terminal" tab:
    • Check "Enable SSH service"
    • And enter a "Port" number (default 22)
    • Click on Apply to validate


Change xpenology vid, pid, serial or mac in grub

In grub.cfg file of the bootloader disk, you can specify :

  • vid/pid of the bootloader disk
  • synology serial number (we cannot help you obtain it, but maybe, you may want to read this thead )
  • mac address (maybe with a mac address generator)

(Make sure, you did not eject usb disk from dsm gui)
Open a ssh terminal on xpenology server with an synology admin account
(or open a virtual terminal from proxmox server with qm terminal 107 with an synology admin account)

# Start a root session with account password
[uxora@Xpenology]$ sudo -i

    We trust you have received the usual lecture from the local System
    Administrator. It usually boils down to these three things:

        #1) Respect the privacy of others.
        #2) Think before you type.
        #3) With great power comes great responsibility.


# Find vendor id and product id of bootloader usb disk
[root@Xpenology]$ lsusb
    |__usb1          1d6b:0002:0310 09  2.00  480MBit/s 0mA 1IF  (ehci_hcd 0000:00:1a.7) hub
    [ ... ]
    |__usb9          1d6b:0002:0310 09  2.00  480MBit/s 0mA 1IF  (xhci_hcd 0000:00:01.0) hub
    |__usb10         1d6b:0003:0310 09  3.00 5000MBit/s 0mA 1IF  (xhci_hcd 0000:00:01.0) hub
      |__10-1        46f4:0001:0000 00  3.00 5000MBit/s 0mA 1IF  (QEMU QEMU USB HARDDRIVE 1-0000:00:01.0-1)

# Vendor id (46f4) and product id (0001) is found
# Set these in grub.cfg
# In order to not be automaticaly mount in dsm  
[root@Xpenology]$ sed -i \
   -e "s/\(set vid=\)\(.*\)/\10x46f4/g" \
   -e "s/\(set pid=\)\(.*\)/\10x0001/g" \

# (Optional) Set different serial number or mac
[root@Xpenology]$ mySN="1330LWN000000"
[root@Xpenology]$ myMAC1="DE0C1A817DE8"
[root@Xpenology]$ sed -i \
   -e "s/\(set sn=\)\(.*\)/\1${mySN}/g" \
   -e "s/\(set mac1=\)\(.*\)/\1${myMAC1}/g" \

Reboot your xpenology server.
(Note: You may have a different IP from your dhcp if you have changed MAC address)


Power button install

In order to be able to properly shutdown xpenology vm from Proxmox VE, you need to install a package that will properly shutdown synology dsm when it receive a ACPI "power down" signal.

Download POWERBUTTON_6.2-0002.SPK file in this forum's thread.

Install Xpenology DSM 6.2.x on Proxmox

On DSM web gui,

  • Go to "Package Center" and click on "Manual Install" (in top-right corner)
  • In popup:
    • Click on Browse
    • Select POWERBUTTON_6.2-0002.SPK file (previously downloaded) then click on Open
    • Click on Next
    • In another popup about "unknown publisher", Click on Yes
  • In "Confirmation settings" popup:
    • Check "Run after installation"
    • Click on Apply to finish


Hardware passtrough

You can pass a full pci (or pcie) device to your VM, like a PCI Sata Controller which have several disks plug on it.
It's now pretty straightforward in recent Proxmox VE.

Install Xpenology DSM 6.2.x on Proxmox

Click on Add

Select PCI Device


In exemple, to passthrough a SATA controller on a PCIe port with disks attached on it:

  • Device: Select SATA controller to passtrough in the dropdown list
  • All Functions: Check, ROM-Bar: Check, PCI-Express: Check




- Keep a copy of the bootloader in case of active bootloader get corrupted
      * in the same folder or somewhere safe and easy to access
      * if active bootloader is corrupted, just copy (and replace) the backup bootloader to active bootloader
- Use bootloader as usb disk, if you can
- Install dsm OS in a dedicated virtual disk (8GB or 16GB should more than enough)
      - do not use this disk as dsm storage disk (or storage pool)
- Install dsm without any additionnal disk (which can be add later)
- Backup your vm
- Then now you can add additionnal disks or passtrough a SATA controller
      * configure it as dsm storage disks
      * storage disks are separated from OS disk
      * this way data are safer cause you can safely unplug data disks for update, manipulation (or OS corruption)


Forum Xpenology (
Tutorial: DSM 6.x on Proxmox (Thread on
Proxmox backup template (Thread on
Xpenology running on docker (Thread on
Install Xpenology DSM 6.1.x on Proxmox (
Tutorial to compile xpenology dsm driver (

Enjoyed this article? Please like it or share it.

Add comment

Please connect with one of social login below (or fill up name and email)


Security code


# Sata PassthroughMaik 2022-03-08 20:23
Hi Michel, hi all,

first of all thank you for this very nice howto. It helped me a lot. Got DSM 6.2 running on proxmox 7 without any issue. I now wanted to pass through a SATA controller (iommu is enabled and working). So I added the controller as mentioned as PCIe device which seems to work too. Problem now is: Xpenology now can't seem to find the virtual disk I was booting from before anymore. It always tries to install new. I don't have any disks yet connected it moans about it :-/
I guess I need to change DiskIdxMap as well as SataPortMap values but failed to find a working setup. Any ideas how to set this correctly or change the order of devices?
Many thanks in advance,
Reply | Reply with quote | Quote
# Can't boot .img filemarc50ca 2021-11-27 19:45
have tried multiple downloads but keep getting the message that the .img file isn't bootable.

trying to install under ProxMox 7.0 (though I don't think the issue lies here).

File seems to okay as I can open it with OSFmount.
Reply | Reply with quote | Quote
# Possible solution for Error 13Charly 2021-11-21 05:15
Hi, please excuse me if my English is not entirely correct, I am still studying it.

First of all, I would like to clarify that I could install and run it successfully at first.
Then, after I was making some changes to try with another disk configurations I came across Error 13 when I tried to install it again.
So, as I knew that it worked at first time, I was sure that it had to work again somehow. Finally, the solution for me was upload again the bootloader img file as indicated in the process above. After that I was able to install and run it without a problem, as the first time.

I hole this can be helpful for you.

Reply | Reply with quote | Quote
# Thanks for the suggestionLuc 2021-11-24 20:17
This would never have come to my mind but for some mystical reason it helped!
Reply | Reply with quote | Quote
# Error 13Alaan 2021-11-17 23:25
I am installing Xpenology on a proxmox machine,
I followed this tutorial all the way.
Only change I made was to choose 12 GB drive instead of 16GB, due to the lack of space.

In the step to load the web server, and to upload the DSM_DS3615xs_25426.pat file, I choose the file, Process starts, I get to do partitions 6% then it uploads the file 50% and tries to install it 56% and then I get an error regarding corrupt file (13)
File downloaded from here (5 times) [censored]s://

Could it be because of the disk size? anyone can help? Thanks!

EDIT 1: Redone the process with 16GB still failing.
Reply | Reply with quote | Quote
# @Alaantrevmlt 2021-11-24 23:36
YMMV, but I found the way to avoid this and get it to work for me was to make sure a new vid pid and s/n was used in the loader every time. All three might not be necessary, but that's what I did. Not sure why that works exactly, but mabey give it a try.
Reply | Reply with quote | Quote
# RE: @Alaantrevmlt 2021-11-27 18:58
...oops...and a new MAC address! If I didnt do this on each attempt, I had the corrupt file issue...which it is not. The problem is in the loader file, not the .pat file.
Reply | Reply with quote | Quote
# Issues, error 13Alaan 2021-11-17 21:03
Thanks a lot,
but I have an issue, the web server installer where I select the "DSM_DS3615xs_25426.pat" file, gives me an error (13), as soon as the file is uploaded and it tries to install it. Only step I made different was to assign 12GB of hard disk (instead of 16GB), (I don't have more space available on my proxmox server for now)
Reply | Reply with quote | Quote
# pci passthroughtrevmlt 2021-10-31 02:56
Thank you for the tutorial!

One tip for the pci pass-through of a Marvell 88SE9230, and possibly others. Passing through using the UI will NOT work - results in a 0000:0a:00.0 in the device field on my system anyway. Due to a bug, controller won't work. However, in the CLI if use qm set 104 -hostpci0 0a:00 it works.
Reply | Reply with quote | Quote
# Mr.Dorin 2021-10-13 16:31
Hi Michel,

Very well written guide, congrats!

The only problem I had was with Proxmox 7 when I tried "bootloader copy" scp command, returned "no such file or directory". Booting with Parted CD I've observed that directory "107" wasn't created, so I created it with "Parted CD" . Do you know an easier way, without booting with a tertiary tool?

Best regards,
Reply | Reply with quote | Quote
# Can Drive 7 be changed to Drive 1?Rich 2021-09-21 05:54
Fantastic article. The installation went without a hitch. I then followed another guide and increased my max drives from 12 to 25 to accommodate an external DAS.
I've not yet added my physical drives so I only have the initial virtual drive at the moment. It's labeled as Drive 7. Is there anyway to move it to drive 1... or to drive 25?

Thank you
Reply | Reply with quote | Quote
# ErrorLS 2021-08-14 23:46
I get error in the middle of the installation telling me the The file couldent be installed. The file could be corrupt. (13).

What can cause this?
Reply | Reply with quote | Quote
# RE: ErrorMichal 2022-05-04 23:28
Quoting LS:
I get error in the middle of the installation telling me the The file couldent be installed. The file could be corrupt. (13).

What can cause this?

I have same issue does anybody has a solution for this. What wrong? Thank you
Reply | Reply with quote | Quote
# Error 13Alaan 2021-11-17 23:27
Did you solve it?
Reply | Reply with quote | Quote
# Great thanks !Ronny 2021-06-19 09:23
Many thanks for this artikel, im really happy with this detail of information that you shared.
Im new to promox and I try this several times within VmWare ESXi only that did not work at the end with ESXi.

I will post a repons when it is working and running.

Reply | Reply with quote | Quote
# proxmox7nowin 2021-07-10 21:24
yes in proxmox 7 is running
Reply | Reply with quote | Quote
# Merci MichelXT 2021-04-29 23:38

tout est dans le titre , Merci Michel pour ce super tuto , testé sans soucis , rien a rajouter
Reply | Reply with quote | Quote