From 570fb981eb713645268fabac68dc956e6db99fda Mon Sep 17 00:00:00 2001 From: Kroese Date: Sun, 2 Apr 2023 08:28:31 +0200 Subject: [PATCH] Download extractor --- Dockerfile | 6 ++---- install.sh | 23 ++++++++++++++++++++++- run.sh | 4 ++-- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 50259c6..bd89d27 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,6 +10,8 @@ FROM debian:bookworm-20230320-slim RUN apt-get update && apt-get -y upgrade && \ apt-get --no-install-recommends -y install \ jq \ + curl \ + cpio \ wget \ unzip \ procps \ @@ -45,10 +47,6 @@ RUN ["chmod", "+x", "/run/qemu-ifup"] RUN ["chmod", "+x", "/run/qemu-ifdown"] RUN ["chmod", "+x", "/run/generate-dhcpd-conf"] -COPY extract/lib* /run/extract/ -COPY extract/scemd /run/extract/syno_extract_system_patch -RUN ["chmod", "+x", "/run/extract/syno_extract_system_patch"] - COPY disks/template.img.xz /data/ VOLUME /storage diff --git a/install.sh b/install.sh index fb8da60..f4b1e1f 100644 --- a/install.sh +++ b/install.sh @@ -8,9 +8,30 @@ IMG="/storage" [ ! -f "$IMG/boot.img" ] && rm -f $IMG/system.img [ -f "$IMG/system.img" ] && exit 0 +TMP="$IMG/tmp" + +echo "Install: Downloading extractor..." + +rm -rf $TMP && mkdir -p $TMP + +FILE="$TMP/rd.gz" +curl -r 64493568-69886247 -s -o "$FILE" https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_VirtualDSM_42218.pat + +set +e +xz -dc <$TMP/rd.gz >$TMP/rd 2>/dev/null +(cd $TMP && cpio -idm <$TMP/rd 2>/dev/null) +set -e + +mkdir -p /run/extract +for file in $TMP/usr/lib/libcurl.so.4 $TMP/usr/lib/libmbedcrypto.so.5 $TMP/usr/lib/libmbedtls.so.13 $TMP/usr/lib/libmbedx509.so.1 $TMP/usr/lib/libmsgpackc.so.2 $TMP/usr/lib/libsodium.so $TMP/usr/lib/libsynocodesign-ng-virtual-junior-wins.so.7 $TMP/usr/syno/bin/scemd; do + cp $file /run/extract/ +done + +mv /run/extract/scemd /run/extract/syno_extract_system_patch +chmod +x /run/extract/syno_extract_system_patch + echo "Install: Downloading $URL..." -TMP="$IMG/tmp" FILE="$TMP/dsm.pat" rm -rf $TMP && mkdir -p $TMP diff --git a/run.sh b/run.sh index 343a8d9..d97b531 100755 --- a/run.sh +++ b/run.sh @@ -16,7 +16,7 @@ FILE="$IMG/boot.img" FILE="$IMG/system.img" [ ! -f "$FILE" ] && echo "ERROR: Synology DSM system-image does not exist ($FILE)" && exit 82 -FILE="$IMG/data.img" +FILE="$IMG/data$DISK_SIZE.img" if [ ! -f "$FILE" ]; then truncate -s "$DISK_SIZE" "$FILE" mkfs.btrfs -q -L data -d single -m single "$FILE" > /dev/null @@ -154,7 +154,7 @@ exec qemu-system-x86_64 -name Synology -m "$RAM_SIZE" -enable-kvm -cpu host -nog -drive file="$IMG"/system.img,if=none,id=drive-synosys,format=raw,cache=none,aio=native,detect-zeroes=on \ -device scsi-hd,bus=hw-synosys.0,channel=0,scsi-id=0,lun=0,drive=drive-synosys,id=synosys0,bootindex=2 \ -device virtio-scsi-pci,id=hw-userdata,bus=pci.0,addr=0xc \ - -drive file="$IMG"/data.img,if=none,id=drive-userdata,format=raw,cache=none,aio=native,detect-zeroes=on \ + -drive file="$IMG"/data"$DISK_SIZE".img,if=none,id=drive-userdata,format=raw,cache=none,aio=native,detect-zeroes=on \ -device scsi-hd,bus=hw-userdata.0,channel=0,scsi-id=0,lun=0,drive=drive-userdata,id=userdata0,bootindex=3 & wait $!