diff --git a/scripts/test/vm/synology5.sh b/scripts/test/vm/synology5.sh index 1d282db..cabe457 100644 --- a/scripts/test/vm/synology5.sh +++ b/scripts/test/vm/synology5.sh @@ -918,12 +918,27 @@ function create_vm() { # Check if UEFI (OVMF) is being used =================== -if [[ "$BIOS_TYPE" == *"ovmf"* ]]; then - msg_info "Configuring EFI disk" + if [[ "$BIOS_TYPE" == *"ovmf"* ]]; then - EFI_STORAGE=$(select_efi_storage "$VMID") - EFI_DISK_ID="efidisk0" + msg_info "Configuring EFI disk" + 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}') + EFI_DISK_ID="efidisk0" if [[ "$STORAGE_TYPE" == "btrfs" || "$STORAGE_TYPE" == "dir" || "$STORAGE_TYPE" == "nfs" ]]; then @@ -934,8 +949,11 @@ if [[ "$BIOS_TYPE" == *"ovmf"* ]]; then ERROR_FLAG=true fi else - + 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 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}" @@ -948,8 +966,9 @@ if [[ "$BIOS_TYPE" == *"ovmf"* ]]; then ERROR_FLAG=true fi fi -fi + + fi # ========================================================== @@ -1040,43 +1059,59 @@ if [ "$DISK_TYPE" = "virtual" ]; then for i in "${!VIRTUAL_DISKS[@]}"; do 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)) - SATA_ID="sata$i" + DISK_NAME="vm-${VMID}-disk-${DISK_NUM}${DISK_EXT}" - 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 - - 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 + + # Create virtual disk + #STORAGE_TYPE=$(pvesm status -storage "$STORAGE" | awk 'NR>1 {print $2}') + SATA_ID="sata$i" + DISK_NUM=$((i+1)) - 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 - - DISK_INFO+="
Virtual Disk $DISK_NUM: ${SIZE}GB on ${STORAGE}
" - CONSOLE_DISK_INFO+="- Virtual Disk $DISK_NUM: ${SIZE}GB on ${STORAGE} ($SATA_ID)\n" + 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:${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}Virtual Disk $DISK_NUM: ${SIZE}GB on ${STORAGE}
" + CONSOLE_DISK_INFO="${CONSOLE_DISK_INFO}- Virtual Disk $DISK_NUM: ${SIZE}GB on ${STORAGE} ($SATA_ID)\n" done - -