Files
synology-tools/create_syno_vm.sh
james.maes c48a059447
KofTwentyTwo/ci-policy: ci / fork-guard (push) Skipped
KofTwentyTwo/ci-policy: ci / gradle-0 (push) Skipped
KofTwentyTwo/ci-policy: ci / manifests-1 (push) Skipped
KofTwentyTwo/ci-policy: ci / rust-2 (push) Skipped
KofTwentyTwo/ci-policy: ci / rust-3 (push) Skipped
KofTwentyTwo/ci-policy: ci / not-enrolled (push) Skipped
KofTwentyTwo/ci-policy: Shared source and config CI / gate (push) Canceled after 0s
KofTwentyTwo/ci-policy: Shared source and config CI / secrets (push) Canceled after 0s
KofTwentyTwo/ci-policy: Shared source and config CI / verify (push) Canceled after 0s
KofTwentyTwo/ci-policy: ci / source-config-4 (push) Canceled after 0s
KofTwentyTwo/ci-policy: ci / ci-result (push) Canceled after 0s
feat(init): initiial import of some admini scripts
2025-10-07 09:56:51 -05:00

51 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# save as create_syno_vm.sh
# usage: sudo ./create_syno_vm.sh <vmid> "<vmname>" /path/to/export/Queuedl_DSM
set -euo pipefail
# Inputs
if [ $# -lt 4 ]; then
echo "Usage: $0 <vmid> \"<vmname>\" <bridgename> <path_to_disk_dir>"
exit 1
fi
VMID="$1"
VMNAME="$2"
BRIDGE="$3"
DISKDIR="$4"
# Configuration
ARCPATH="./arc.img" # must be in current working directory
STORAGE="local-vmpool-1" # change if using different storage
MEMORY="4096"
CORES="4"
# --- Create VM ---
echo "[INFO] Creating VM $VMID ($VMNAME)"
qm create "$VMID" --name "$VMNAME" --memory "$MEMORY" --cores "$CORES" \
--net0 virtio,bridge="$BRIDGE" --bios seabios --bootdisk sata0 --boot order=sata0
# --- Import Arc boot disk ---
echo "[INFO] Importing ArcLoader boot disk..."
qm importdisk "$VMID" "$ARCPATH" "$STORAGE"
BOOTDISK=$(qm config "$VMID" | grep sata0 | cut -d' ' -f2)
if [ -z "$BOOTDISK" ]; then
qm set "$VMID" --sata0 "${STORAGE}:vm-${VMID}-disk-0"
fi
# --- Import all exported DSM disks ---
echo "[INFO] Importing DSM data disks from $DISKDIR"
INDEX=1
for FILE in "$DISKDIR"/*.qcow2; do
echo " -> Adding $FILE as sata${INDEX}"
qm importdisk "$VMID" "$FILE" "$STORAGE"
qm set "$VMID" --sata${INDEX} "${STORAGE}:vm-${VMID}-disk-${INDEX}"
INDEX=$((INDEX+1))
done
# --- Final settings ---
qm set "$VMID" --vga serial0 --serial0 socket --boot order=sata0
echo "[INFO] VM $VMNAME ($VMID) created successfully."
echo "[INFO] Start it with: qm start $VMID"