From fd1a950a5886b1863d767a34ba62183d95dd152a Mon Sep 17 00:00:00 2001 From: Kroese Date: Sun, 2 Apr 2023 21:43:28 +0200 Subject: [PATCH] Refactor --- Dockerfile | 4 ++-- disk.sh | 32 ++++++++++++++++++++++++++++++++ serial/serial.sh => serial.sh | 0 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 disk.sh rename serial/serial.sh => serial.sh (100%) diff --git a/Dockerfile b/Dockerfile index aa710e8..915c727 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,12 +29,12 @@ RUN apt-get update && apt-get -y upgrade && \ && apt-get clean COPY run.sh /run/ +COPY disk.sh /run/ COPY power.sh /run/ +COPY serial.sh /run/ COPY server.sh /run/ COPY install.sh /run/ COPY network.sh /run/ -COPY disks/disk.sh /run/ -COPY serial/serial.sh /run/ COPY agent/agent.sh /agent/ COPY agent/service.sh /agent/ diff --git a/disk.sh b/disk.sh new file mode 100644 index 0000000..6468606 --- /dev/null +++ b/disk.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +set -eu + +IMG="/storage" +BASE=$(basename "$URL" .pat) + +FILE="$IMG/$BASE.boot.img" +[ ! -f "$FILE" ] && echo "ERROR: Virtual DSM boot-image does not exist ($FILE)" && exit 81 + +FILE="$IMG/$BASE.system.img" +[ ! -f "$FILE" ] && echo "ERROR: Virtual DSM system-image does not exist ($FILE)" && exit 82 + +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 + #qemu-img convert -f raw -O qcow2 -o extended_l2=on,cluster_size=128k,compression_type=zstd,preallocation=metadata "$TMP" "$FILE" +fi + +[ ! -f "$FILE" ] && echo "ERROR: Virtual DSM data-image does not exist ($FILE)" && exit 83 + +KVM_DISK_OPTS="\ + -device virtio-scsi-pci,id=hw-synoboot,bus=pci.0,addr=0xa \ + -drive file="$IMG"/"$BASE".boot.img,if=none,id=drive-synoboot,format=raw,cache=none,aio=native,detect-zeroes=on \ + -device scsi-hd,bus=hw-synoboot.0,channel=0,scsi-id=0,lun=0,drive=drive-synoboot,id=synoboot0,bootindex=1 \ + -device virtio-scsi-pci,id=hw-synosys,bus=pci.0,addr=0xb \ + -drive file="$IMG"/"$BASE".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"$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" diff --git a/serial/serial.sh b/serial.sh similarity index 100% rename from serial/serial.sh rename to serial.sh