Update synology5.sh

This commit is contained in:
MacRimi 2025-05-09 18:39:06 +02:00
parent dd44e320b6
commit 75d3b30a26

View File

@ -918,12 +918,27 @@ function create_vm() {
# Check if UEFI (OVMF) is being used =================== # Check if UEFI (OVMF) is being used ===================
if [[ "$BIOS_TYPE" == *"ovmf"* ]]; then if [[ "$BIOS_TYPE" == *"ovmf"* ]]; then
msg_info "Configuring EFI disk"
EFI_STORAGE=$(select_efi_storage "$VMID") msg_info "Configuring EFI disk"
EFI_DISK_ID="efidisk0" EFI_STORAGE=$(select_efi_storage $VMID)
EFI_DISK_NAME="vm-${VMID}-disk-efivars"
# Determine storage type and extension
STORAGE_TYPE=$(pvesm status -storage $EFI_STORAGE | awk 'NR>1 {print $2}')
case $STORAGE_TYPE in
nfs | dir)
EFI_DISK_EXT=".raw"
EFI_DISK_REF="$VMID/"
;;
*)
EFI_DISK_EXT=""
EFI_DISK_REF=""
;;
esac
STORAGE_TYPE=$(pvesm status -storage "$EFI_STORAGE" | awk 'NR>1 {print $2}') STORAGE_TYPE=$(pvesm status -storage "$EFI_STORAGE" | awk 'NR>1 {print $2}')
EFI_DISK_ID="efidisk0"
if [[ "$STORAGE_TYPE" == "btrfs" || "$STORAGE_TYPE" == "dir" || "$STORAGE_TYPE" == "nfs" ]]; then if [[ "$STORAGE_TYPE" == "btrfs" || "$STORAGE_TYPE" == "dir" || "$STORAGE_TYPE" == "nfs" ]]; then
@ -934,8 +949,11 @@ if [[ "$BIOS_TYPE" == *"ovmf"* ]]; then
ERROR_FLAG=true ERROR_FLAG=true
fi fi
else else
EFI_DISK_NAME="vm-${VMID}-disk-efivars" EFI_DISK_NAME="vm-${VMID}-disk-efivars"
EFI_DISK_EXT=""
EFI_DISK_REF=""
if pvesm alloc "$EFI_STORAGE" "$VMID" "$EFI_DISK_NAME" 4M >/dev/null 2>&1; then if pvesm alloc "$EFI_STORAGE" "$VMID" "$EFI_DISK_NAME" 4M >/dev/null 2>&1; then
if qm set "$VMID" -$EFI_DISK_ID "$EFI_STORAGE:${EFI_DISK_NAME},pre-enrolled-keys=0" >/dev/null 2>&1; then if qm set "$VMID" -$EFI_DISK_ID "$EFI_STORAGE:${EFI_DISK_NAME},pre-enrolled-keys=0" >/dev/null 2>&1; then
msg_ok "EFI disk created and configured on ${CL}${BL}$EFI_STORAGE${GN}${CL}" msg_ok "EFI disk created and configured on ${CL}${BL}$EFI_STORAGE${GN}${CL}"
@ -948,8 +966,9 @@ if [[ "$BIOS_TYPE" == *"ovmf"* ]]; then
ERROR_FLAG=true ERROR_FLAG=true
fi fi
fi fi
fi
fi
# ========================================================== # ==========================================================
@ -1040,43 +1059,59 @@ if [ "$DISK_TYPE" = "virtual" ]; then
for i in "${!VIRTUAL_DISKS[@]}"; do for i in "${!VIRTUAL_DISKS[@]}"; do
IFS=':' read -r STORAGE SIZE <<< "${VIRTUAL_DISKS[$i]}" IFS=':' read -r STORAGE SIZE <<< "${VIRTUAL_DISKS[$i]}"
STORAGE_TYPE=$(pvesm status -storage "$STORAGE" | awk 'NR>1 {print $2}')
STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}')
case $STORAGE_TYPE in
nfs | dir)
DISK_EXT=".raw"
DISK_REF="$VMID/"
;;
*)
DISK_EXT=""
DISK_REF=""
;;
esac
DISK_NUM=$((i+1)) DISK_NUM=$((i+1))
SATA_ID="sata$i" DISK_NAME="vm-${VMID}-disk-${DISK_NUM}${DISK_EXT}"
if [[ "$STORAGE_TYPE" == "btrfs" || "$STORAGE_TYPE" == "dir" || "$STORAGE_TYPE" == "nfs" ]]; then
# Create virtual disk
msg_info "Creating virtual disk (format=raw) for $STORAGE_TYPE..." #STORAGE_TYPE=$(pvesm status -storage "$STORAGE" | awk 'NR>1 {print $2}')
if ! qm set "$VMID" -$SATA_ID "$STORAGE:$SIZE,format=raw" >/dev/null 2>&1; then SATA_ID="sata$i"
msg_error "Failed to assign disk $DISK_NUM ($SATA_ID) on $STORAGE" DISK_NUM=$((i+1))
ERROR_FLAG=true
continue
fi
else
DISK_NAME="vm-${VMID}-disk-${DISK_NUM}"
msg_info "Allocating virtual disk for $STORAGE_TYPE..."
if ! pvesm alloc "$STORAGE" "$VMID" "$DISK_NAME" "${SIZE}G" >/dev/null 2>&1; then
msg_error "Failed to allocate virtual disk $DISK_NUM"
ERROR_FLAG=true
continue
fi
if ! qm set "$VMID" -$SATA_ID "$STORAGE:$VMID/$DISK_NAME" >/dev/null 2>&1; then
msg_error "Failed to configure virtual disk as $SATA_ID"
ERROR_FLAG=true
continue
fi
fi
msg_ok "Configured virtual disk as $SATA_ID, ${SIZE}GB on ${CL}${BL}$STORAGE${CL} ${GN}" if [[ "$STORAGE_TYPE" == "btrfs" || "$STORAGE_TYPE" == "dir" || "$STORAGE_TYPE" == "nfs" ]]; then
msg_info "Creating virtual disk (format=raw) for $STORAGE_TYPE..."
if ! qm set "$VMID" -$SATA_ID "$STORAGE:$SIZE,format=raw" >/dev/null 2>&1; then
msg_error "Failed to assign disk $DISK_NUM ($SATA_ID) on $STORAGE"
ERROR_FLAG=true
continue
fi
else
msg_info "Allocating virtual disk for $STORAGE_TYPE..."
DISK_INFO+="<p>Virtual Disk $DISK_NUM: ${SIZE}GB on ${STORAGE}</p>" if ! pvesm alloc "$STORAGE" "$VMID" "$DISK_NAME" "$SIZE"G >/dev/null 2>&1; then
CONSOLE_DISK_INFO+="- Virtual Disk $DISK_NUM: ${SIZE}GB on ${STORAGE} ($SATA_ID)\n" msg_error "Failed to allocate virtual disk $DISK_NUM"
ERROR_FLAG=true
continue
fi
if ! qm set "$VMID" -$SATA_ID "$STORAGE:${DISK_REF}$DISK_NAME" >/dev/null 2>&1; then
msg_error "Failed to configure virtual disk as $SATA_ID"
ERROR_FLAG=true
continue
fi
fi
msg_ok "Configured virtual disk as $SATA_ID, ${SIZE}GB on ${CL}${BL}$STORAGE${CL} ${GN}"
# Add information to the description
DISK_INFO="${DISK_INFO}<p>Virtual Disk $DISK_NUM: ${SIZE}GB on ${STORAGE}</p>"
CONSOLE_DISK_INFO="${CONSOLE_DISK_INFO}- Virtual Disk $DISK_NUM: ${SIZE}GB on ${STORAGE} ($SATA_ID)\n"
done done