diff --git a/src/disk.sh b/src/disk.sh index 6002ddf..c930835 100644 --- a/src/disk.sh +++ b/src/disk.sh @@ -8,7 +8,7 @@ set -Eeuo pipefail : "${DISK_TYPE:=""}" # Device type to be used, "sata", "nvme", "blk" or "scsi" : "${DISK_FLAGS:=""}" # Specifies the options for use with the qcow2 disk format : "${DISK_CACHE:="none"}" # Caching mode, can be set to 'writeback' for better performance -: "${DISK_DISCARD:="on"}" # Controls whether unmap (TRIM) commands are passed to the host. +: "${DISK_DISCARD:="unmap"}" # Controls whether unmap (TRIM) commands are passed to the host. : "${DISK_ROTATION:="1"}" # Rotation rate, set to 1 for SSD storage and increase for HDD # Sanitize all variables @@ -663,6 +663,23 @@ if [[ "${DISK_IO,,}" == "native" && "${DISK_CACHE,,}" != "none" && "${DISK_CACHE DISK_IO="threads" fi +case "${DISK_DISCARD,,}" in + "y" | "yes" | "true" | "1" | "on" | "unmap" ) + DISK_DISCARD="unmap" ;; + + "n" | "no" | "false" | "0" | "off" | "ignore" ) + DISK_DISCARD="ignore" ;; + + * ) + warn "Invalid DISK_DISCARD value '$DISK_DISCARD', using 'unmap'." + DISK_DISCARD="unmap" ;; +esac + +if [[ ! "$DISK_ROTATION" =~ ^[0-9]+$ ]]; then + warn "Invalid DISK_ROTATION value '$DISK_ROTATION', using 1." + DISK_ROTATION="1" +fi + case "${DISK_TYPE,,}" in "ide" | "sata" | "nvme" | "usb" | "scsi" | "blk" | "auto" | "none" ) ;; * ) error "Invalid DISK_TYPE specified, value \"$DISK_TYPE\" is not recognized!" && exit 80 ;;