XPEnology 7.0 unter Proxmox installieren


Wie schon XPEnology 6, lässt sich jetzt auch XPEnology 7 problemlos unter Proxmox virtualisieren. (VirtIO Treiber im Bootloader enthalten.)
Ich nutze das zum ausprobieren und rumspielen, mehr nicht. Einen produktiven Einsatz als NAS würde ich damit nicht empfehlen!

02.12.2021 - Anleitung aktualisiert (RedPill Tool Chain, Bootloader Image Builder)
27.11.2021 - Anleitung aktualisiert (falsche Firmware Datei verlinkt, 42218 statt 42214)

benötigte Software, mein Setup:

XPEnology Boot Image anpassen

Die grub.cfg im Bootloader Image sollte/kann angepasst werden. Die Partition 0 (48MB) mit OFSMount mounten.

Die vid und pid kann für eine VM unverändert bleiben, sn und mac1 sollte man abändern. Die Werte findet man alle in der markierten Zeile.

XPEnology VM erstellen

  • Guest OS: Linux, 5.x – 2.6 Kernel
  • Hard Disk: SATA 1, Discard, 20GB (je nach Bedarf)
  • CPU: 2 Cores
  • Memory: 1GB
  • Network: VirtIO

Das redpill-DS918+_7.0.1-42214_b1631696708.img kommt auf einen erreichbaren Storage, damit es in die neue VM als Disk importiert werden kann.

# syntax: qm importdisk <vmid> <source> <storage> [OPTIONS]

root@pmx02:~# qm importdisk 350 /mnt/pve/storage01/redpill-DS918+_7.0.1-42214_b1631696708.img local-lvm
importing disk '/mnt/pve/storage01/redpill-DS918+_7.0.1-42214_b1631696708.img' to VM 350 ...
Logical volume "vm-350-disk-0" created.
transferred 0.0 B of 128.0 MiB (0.00%)
transferred 2.0 MiB of 128.0 MiB (1.56%)
--SNIP---
transferred 128.0 MiB of 128.0 MiB (100.00%)
Successfully imported disk as 'unused0:local-lvm:vm-350-disk-0'

Da die Bootloader Ausgaben nur auf einer seriellen Konsole ausgegeben werden, bekommt die VM direkt noch einen seriellen Port.

root@pmx02:~# qm set 350 -serial0 socket
update VM 350: -serial0 socket

Die neu importierte Disk erscheint noch als Unused Disk 0 in den Hardware Einstellungen, doppelklicken und als SATA Disk 0 hinzufügen.

In der Boot Order das sata0 Device an die erste Stelle setzen, aktivieren und die VM starten.

XPEnology DSM 7.0.1 Installation

Aktiviert man in der Shell des Proxmox Hosts das serielle Terminal der VM,

root@pmx02:~# qm terminal 350

sieht man den kompletten Bootvorgang bis zum login.

Im Browser über die, per DHCP zugewiesene, IP mit dem NAS verbinden und die DSM_DS918+_42214.pat Firmware manuell installieren.

XPEnology shutdown

Für einen funktionierenden und sauberen shutdown aus Proxmox heraus, muss zusätzlich das Power Button Paket installiert werden.
Im Forum findet man meistens schon ein fertiges SPK für das eingesetzte Model und DSM Version. Leider noch nicht für DSM 7.

XPEnology Sonstiges

  • Läuft gut, sollte aber nicht in produktiven Umgebungen eingesetzt werden.
  • Updates und Upgrades (wie immer) mit Vorsicht zu genießen.
  • Sauberer, automatischer shutdown nicht möglich.
  • VirtIO Treiber im Image enthalten. (virtio_scsi, virtio_net, virtio_pci, virtio_console, virtio_blk)

XPEnology Links


RedPill Tool Chain (inofficial redpill toolchain image builder)

Mit diesen Schritten hab ich mir ein Bootloader Image erstellen können. redpill-DS918+_7.0.1-42218_b1638388186.img
Die Installation mit dem neuen Loader und der entsprechenden Firmware hat unter Proxmox problemlos funktioniert.

benötigt wird:

zusätzliche Infos:

Vorbereitungen

Benötigte Pakete installieren.

apt install -y docker.io jq curl git

Redpill-tool-chain Git Repository klonen.

cd /opt
git clone https://github.com/tossp/redpill-tool-chain.git

Alle weiteren Schritte erfolgen im redpill-tool-chain Verzeichnis.

cd redpill-tool-chain

Eine apollolake_user_config.json erstellen.

cp sample_user_config.json apollolake_user_config.json

Die vid, pid, sn und mac in der apollolake_user_config.json anpassen.

{
    "extra_cmdline": {
        "pid": "0x0001",         # für Proxmox ok
        "vid": "0x46f4",         # für Proxmox ok
         "sn": "1234XXX123",     # setzen
       "mac1": "XXYYXXYYXXYY"    # setzen
    },
    "synoinfo": {},
    "ramdisk_copy": {},
    "extensions": []
}

Benötigte Extensions installieren um sie mit in das Image zu integrieren. (bei mir sind es virtio und powerbutton, boot-wait wird automatisch installiert)

./redpill_tool_chain.sh add https://github.com/jumkey/redpill-load/raw/develop/redpill-virtio/rpext-index.json
./redpill_tool_chain.sh add https://github.com/jumkey/redpill-load/raw/develop/redpill-acpid/rpext-index.json

Image erstellen

Das Bootloader Image erstellen.

./redpill_tool_chain.sh build apollolake-7.0.1-42218 && ./redpill_tool_chain.sh auto apollolake-7.0.1-42218

Das img und die pat Datei liegen im aktuellen Verzeichnis.

images/
 128M redpill-DS918+_7.0.1-42218_b1638388186.img

cache/
 339M ds918p_42218.pat

Gibt bestimmt noch andere Wege. Dieser hat mich aber ohne großen Aufwand zum Ziel geführt. :)

78 Gedanken zu „XPEnology 7.0 unter Proxmox installieren“

  1. Wie immer eine gute Anleitung.

    Das erste Aufrufen der Installationsseite hat bei mir lange auf “Laden” gestanden.
    Hier einfach mal 1-2 Minuten warten (oder wie ich einfach frustriert immer mal F5 Spammen…)

    Grüße Max

    Antworten
  2. Lieder funktioniert es bei mir nicht.
    Bei 55 % steigt die Installation von DSM7 aus (Meldung: Installation scheint beschädigt zu sein). Irgdeine Idee ?
    Oder brauchst du mehr Infos ?

    Danke und viele Grüße

    Antworten
    • Schwer zu sagen, XPE zu installieren ist oft immer ein try and error.

      Wo unterscheidet sich deine Installation von meiner Anleitung?
      Hast du die grub.cfg geändert?
      Im Grub Bootloader SATA ausgewählt?

      Antworten
      • Danke für die Rückmeldung.
        Daran hat es gelegen.

        Jedoch hab ich jetzt das nächste Problem.
        Die Installation läuft durch und startet danach neu.

        Danach erscheint immer das das System wieder hergestellt werden kann/muss.
        Man kann dann nur Wiederherstellen wählen, danach bootet das System und man ist wieder bei dem Punkt Wiederherstellen.

        Antworten
  3. Ich kann die Probleme derweil nur bestätigen:

    Installation ist soweit ohne Probleme möglich, nach dem Neustart geht’s in eine Dauerschleife, dass man Restoren muss.
    Ich tippe mal auf ein Firmwareproblem, oben ist die Firmware 42218 verlinkt, in der Anleitung wird aber scheinbar mit der Firmware 42214 gearbeitet…

    Diese scheint’s bei Synology auch nicht mehr im Download zu geben (oder ich habe die Archivserver nicht gefunden ^^)

    Antworten
    • Ui, das stimmt. Zu aktuelle Firmware verlinkt, würde auch die Dauerschleife erklären. ;)
      Hab jetzt die 42214 verlinkt, damit sollte es problemlos laufen. Die Version war ein Release Candidate, deshalb findet man die auch nicht mehr.

      Danke und Sorry …

      Antworten
  4. Danke für dieses Tutorial.
    Funktioniert beim ersten Mal ^^
    Nach Update jedoch kein Neustart möglich: 42218

    Gibt es eine neue Version: Bootloader von RedPil, die mit Update 42218 kompatibel ist?

    Lass uns noch verrückter werden ^^, warum nicht uns ein Tutorial geben, um zu kompilieren: Bootloader von RedPil

    Vielen Dank für Ihre Arbeit und nochmals gut gemacht !!!

    Antworten
  5. Nice One :-)
    Vielen Dank für die Anleitung, funktioniert einwandfrei.

    Du schreibst: Benötigte Extensions installieren um sie mit in das Image zu integrieren. (bei mir sind es virtio und powerbutton, boot-wait wird automatisch installiert)

    Ich seh die Powerbutton Extension nach der Installation nicht und kann auch über Proxmox das DMS nicht runterfahren, oder meinst du mit Powerbutton was anderes ?

    Welche Einschränkungen hat man ohne gültige SN ?

    Antworten
    • Doch, genau dafür ist sie da. Damit Proxmox die VM sauber herunterfahren kann.
      Hat bei mir auch erst nach einem erneuten reboot nach der Installation funktioniert!

      Ohne SN funktioniert wohl Quick Connect und Transcoding nicht.

      Antworten
  6. Ich möchte gerne eine Externe USB Festplatte durchreichen.
    Ich habe diese unter der VM/Hardware über USB hinzugefügt.
    Allerdings wird diese unter Xpenology nicht unter HDD angezeigt.
    Hast du einen Tipp für mich?

    Antworten
        • Wenn man sich den loader für die 42218 selbst erstellt, kann man Extensions mit einbinden.
          Darunter ist auch der ACPI Daemon für die powerbutton Funktion.

          Antworten
          • Habe ich tatsächlich total übersehen, Danke! :)
            Kann ich meine bestehende Version 42214 irgendwie auf 42218 bringen oder muss die VM neu erstellt werden?

            Wenn ja, könntest du auch noch die Datei ds918p_42218.pat stellen? *duckundweg* .. ;)

          • Du könntest versuchen mit der aktuellen pat zu aktualisieren und danach den loader auszutauschen.
            Sowas ist aber immer riskant, mach vorher ein Backup der VM. ;)

            Die Firmware kannst du dir direkt bei Synology herunterladen.

          • Ich habe gerade versucht eine neue VM mit dem “redpill-DS918+_7.0.1-42218_b1638389280.img.gz” aufzusetzen. (Nach oben beschriebener Anleitung)
            Allerdings will er von der Datei/Laufwerk nicht booten. Auch wenn ich diese über OSFMount auf meinem PC einbinde, wird mir keine Partition angezeigt.

            Was mach ich falsch?

  7. Ich habe gerade versucht, den Booloader selber zu erstellen und erhalte bei dem letzten Schritt immer diese Meldung.

    root@Test:/opt/redpill-tool-chain# ./redpill_tool_chain.sh build apollolake-7.0.1-42218 && ./redpill_tool_chain.sh auto apollolake-7.0.1-42218
    [+] Building 0.1s (1/2)
    => [internal] load build definition from Dockerfile 0.1s
    => => transferring dockerfile: 2.60kB 0.0s
    failed to solve with frontend dockerfile.v0: failed to read dockerfile: failed to mount /var/lib/docker/tmp/buildkit-mount557101222: [{Type:bind Source:/var/lib/docker/overlay2/c5xvzypmhbn9yydw2xrnh8k6s/diff Options:[rbind ro]}]: permission denied

    Antworten
  8. Hi zusammen,
    erstmal vielen Dank für die super Anleitung.
    Nutzt jemand von euch im Dsm 7 Synology Photos.
    Bei mir werden keine Gesichter über Face recognition erkannt. Kann das was mit dem loader zu tun haben?

    Antworten
    • Hallo Christian,
      ist deine Kombination aus Seriennummer und Mac-Adresse valide? Hast du diese generiert oder von einem richtigen Gerät?
      Die generierten gehen zu 99% nicht. Such am besten bei eBay nach Bildern, wo jemand die Seriennummer abfotografiert ;-)

      Am besten gibst du sowohl in Proxmox die Mac-Adresse für den LAN-Adapter ein und zusätzlich die MAC und Seriennummer in der grub.cfg!

      Gruß
      Stephan

      Antworten
  9. Hi.
    DANKE!!!!! DANKE !!!! und DANKE! Kann OMV ohne WEB File Manager nicht mehr sehen. Und da ich eine alte DS213j habe (zu langsam) wollte ich unbedingt wieder DSM haben <3
    Nach ein paar Problemen (Grub: SATA) hat es endlich hingehaut :) werd jetzt mal Testen und whs Umsteigen :)
    Seite ist mal in meinen Bookmarks ;)
    by the way: Shutdown via DSM funktioniert eigentlich?!

    Antworten
    • Ich denke mal ja, DSM sieht die dann aber nur als zusätzliche externe Platten.
      Die kannst du dann nicht in die RAID Verwaltung mit aufnehmen, da die DS918 nur eine 4-Bay NAS ist.

      Dann müsstest du auf die 12-Bay DS3615xs umschwenken und dir dafür einen Bootloader erstellen.

      Antworten
  10. Abend,
    ich habe ein Problem bei mir festgestellt.
    Wenn ich über “Hyper Backup” unter DMS7 (42218) ein Backup auf eine neue externe Festplatte (Seagate 2,5″, 4TB) erstelle, stürzt DMS nach einigen Minuten ab.
    Die HDD hängt an einem durchgereichten USB 3.0 Port und wird unter DMS als externes Gerät erkannt.

    Bis jetzt habe ich folgendes versucht.
    – die Festplatte neu Formatiert
    – den Port gewechselt
    – Proxmox von 6.x auf 7 aktualisiert
    – automount unter Proxmox entfernt

    Ich bin mir nicht sicher wo der Fehler liegen könnte ob in Proxmox, an der HDD oder in DSM7.

    Hat hier jemand eine Idee zu meinem Problem?

    Antworten
  11. Thank you for your work. Everything works perfect for DS918+

    I compiled several times for testing and works wonderfully (DS918+) with Proxmox.

    Shutdown button from Proxmox works with DS918+.

    Shutdown button from Proxmox not working DS3515xs. However, the same drivers are installed.

    ./redpill_tool_chain.sh add https://github.com/jumkey/redpill-load/raw/develop/redpill-virtio/rpext-index.json
    ./redpill_tool_chain.sh add https://github.com/jumkey/redpill-load/raw/develop/redpill-acpid/rpext-index.json

    Do you have an idea ?

    Antworten
  12. Bei mir bricht die Installation immer bei 55% ab, DSM konnte nicht installiert werden, Die Datei konnte nicht installiert werden, Die Datei ist wahrscheinlich beschädigt.

    [ 165.707793] EXT4-fs (md0): couldn’t mount as ext3 due to feature incompatibilities
    [ 165.714501] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null)
    [ 178.267810] Handling ioctl(0x1261) for /dev/sdb
    [ 178.268415] sd_ioctl(0x1261) – not a hooked ioctl, noop

    Hat hier noch jemand eine Idee?

    Antworten
  13. Danke für den Tipp, aber das habe ich schon überprüft. Wenn ich das redpill-tool-chain Tool nutze gibt es mir folgendes aus und generiert keine Dateien:

    — SCHNIPP —

    #############################################
    Using user_config.json:
    {
    “extra_cmdline”: {
    “pid”: “0x0001”, # für Proxmox ok
    “vid”: “0x46f4”, # für Proxmox ok
    “sn”: “1234XXX123”, # setzen
    “mac1”: “XXYYXXYYXXYY” # setzen
    },
    “synoinfo”: {},
    “ramdisk_copy”: {},
    “extensions”: []
    }
    #############################################
    /opt/redpill-load /opt
    [#] Checking runtime for required tools… [OK]
    include/json.sh: line 16: 2: unbound variable
    make: *** [Makefile:33: build_redpill_load] Error 1

    Antworten
    • Hast du die apollolake_user_config.json nicht angepasst und einfach übernommen?
      Wenn ja, keine gute Idee, sn und mac ändern und die Kommentare entfernen.

      Antworten
      • Nein, die habe ich angepasst, die SN muss ja nicht jeder sehen. (Diese ist von einer DS1511+)
        Als mac habe ich die Adresse unter ether vom Proxmox host angegeben.

        Antworten
        • Also sieht die dann in etwa so aus?

          {
          “extra_cmdline”: {
          “pid”: “0x0001”,
          “vid”: “0x46f4”,
          “sn”: “deine sn”,
          “mac1”: “deine mac”
          },
          “synoinfo”: {},
          “ramdisk_copy”: {},
          “extensions”: []
          }

          Antworten
    • Überprüf mal die Anführungszeichen. Sind die vielleicht durch copy & paste falsch übernommen worden?
      Setz die mal neu und lass nochmal laufen.

      Oder schau dir mal die Datei an.
      include/json.sh: line 16: 2: unbound variable

      Antworten
  14. Ich habe das jetzt mal auf meinem Linux Laptop probiert und da lief es durch, jedoch schmiert die Installation immernoch bei 55% ab, ich denke das wird an der falschen SN liegen , da diese zu einem anderen Modell gehört.

    Antworten
  15. Ich habe mir jetzt mal eine DS918+ gekauft und deren SN und MAC eingetragen, das Problem ist selbiges.
    Gibt es noch Ideen dazu?

    Danke nochmal für die bis jetzt erhaltenen Tipps

    Antworten
    • Dann liegt es also definitiv nicht an der SN.
      Schau doch mal während der Installation ins Terminal, vielleicht siehst du da ja den Fehler wieso diese abbricht.

      Antworten
  16. Das ist ein guter Tipp, daran habe ich noch garnicht gedacht. Ich werde jedoch nicht schlau aus der Fehlermeldung.
    Bei der MAC Adresse habe ich die Buchstaben groß geschrieben, kann es daran liegen?

    DiskStation login: [ 60.678889] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 60.685029] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 60.687262] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 60.691601] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 67.346696] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 67.354744] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 67.356991] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 67.361189] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 75.828280] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 75.833326] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 75.835447] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 75.839776] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 84.296402] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 84.301701] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 84.303822] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 84.308064] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 90.189600] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 90.194838] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 90.196932] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 90.201460] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 90.266637] MfgCompatTime raw data: sec=55 min=20 hr=12 wkd=6 day=22 mth=0 yr=122
    [ 90.268892] Writing BCD-based RTC
    [ 90.270590] RTC time set to 2022-01-22 12:20:55 (UTC)
    [ 90.329278] md1: detected capacity change from 2147418112 to 0
    [ 90.330545] md: md1: set sdb2 to auto_remap [0]
    [ 90.331511] md: md1 stopped.
    [ 90.332112] md: unbind
    [ 90.332742] md: export_rdev(sdb2)
    [ 93.404731] md: bind
    [ 93.410954] md/raid1:md0: active with 1 out of 16 mirrors
    [ 93.413470] md0: detected capacity change from 0 to 2549940224
    [ 96.425966] md: bind
    [ 96.429545] md/raid1:md1: active with 1 out of 16 mirrors
    [ 96.431971] md1: detected capacity change from 0 to 2147418112
    [ 96.646816] EXT4-fs (md0): couldn’t mount as ext3 due to feature incompatibilities
    [ 96.652060] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null)
    [ 96.670119] Mocking auto-power SET on RTC
    [ 96.971577] Got 2 bytes from PMU: reason=1 hex={2d 72} ascii=”-r”
    [ 96.972004] Executing cmd OUT_SCHED_UP_OFF handler cmd_shim_noop+0x0/0x2d [redpill]
    [ 96.972004] vPMU received OUT_SCHED_UP_OFF using 1 bytes – NOOP
    [ 96.978219] Mocking auto-power GET on RTC
    [ 96.983843] EXT4-fs (md0): couldn’t mount as ext3 due to feature incompatibilities
    [ 96.989572] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null)
    [ 96.997444] EXT4-fs (md0): couldn’t mount as ext3 due to feature incompatibilities
    [ 97.001721] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null)
    [ 215.141689] EXT4-fs (md0): couldn’t mount as ext3 due to feature incompatibilities
    [ 215.147803] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null)
    [ 216.067706] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 216.073053] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 216.075176] ATA_CMD_ID_ATA confirmed SMART support – noop
    [ 216.079666] ATA_CMD_ID_ATA confirmed SMART support – noop

    Antworten
    • Kann ich mir nicht vorstellen, sollte egal sein.

      Die Meldungen sagen mir auch nichts.
      Lösch mal die Festplatte komplett raus und erstell eine neue.

      Antworten
  17. Ich habe jetzt mal eine komplett neue VM erstellt und habe noch selbiges Problem, hat jemand zufällig noch jemand ein altes Backup , was ich bei mir Replizieren kann?

    Antworten
  18. Danke, ich habe es probiert. Ich habe aber immernoch selbigen Error , leider finde ich auch keinen anderen der selbiges Problem hat..

    Antworten
  19. Die Frage ist ja was mache ich falsch, bisher habe ich auch immer alle Services zum laufen bekommen.
    Ich denke ich werde mal abwarten bis ich mal ein Snapshot bekomme, denn sonst fällt mir nichts ein.

    Antworten
  20. Danke für den Tipp, ich habe jetzt alles ausprobiert und komischerweise funktioniert es wenn ich den Maschinentyp auf “q35” ändere.

    Danke nochmal für die Hilfe

    Antworten

Schreibe einen Kommentar