diff --git a/src/disk.sh b/src/disk.sh index ab4eebf..9ff3f4f 100644 --- a/src/disk.sh +++ b/src/disk.sh @@ -135,10 +135,12 @@ createDisk() { else # Create an empty file - if ! fallocate -l "$DATA_SIZE" "$DISK_FILE"; then - if ! truncate -s "$DATA_SIZE" "$DISK_FILE"; then - rm -f "$DISK_FILE" - error "$FAIL" && exit 77 + if ! fallocate -l "$DATA_SIZE" "$DISK_FILE" &>/dev/null; then + if ! fallocate -l -x "$DATA_SIZE" "$DISK_FILE"; then + if ! truncate -s "$DATA_SIZE" "$DISK_FILE"; then + rm -f "$DISK_FILE" + error "$FAIL" && exit 77 + fi fi fi @@ -213,9 +215,11 @@ resizeDisk() { else # Resize file by allocating more space - if ! fallocate -l "$DATA_SIZE" "$DISK_FILE"; then - if ! truncate -s "$DATA_SIZE" "$DISK_FILE"; then - error "$FAIL" && exit 75 + if ! fallocate -l "$DATA_SIZE" "$DISK_FILE" &>/dev/null; then + if ! fallocate -l -x "$DATA_SIZE" "$DISK_FILE"; then + if ! truncate -s "$DATA_SIZE" "$DISK_FILE"; then + error "$FAIL" && exit 75 + fi fi fi @@ -290,8 +294,10 @@ convertDisk() { if [[ "$ALLOCATE" != [Nn]* ]]; then # Work around qemu-img bug CUR_SIZE=$(stat -c%s "$TMP_FILE") - if ! fallocate -l "$CUR_SIZE" "$TMP_FILE"; then + if ! fallocate -l "$CUR_SIZE" "$TMP_FILE" &>/dev/null; then + if ! fallocate -l -x "$CUR_SIZE" "$TMP_FILE"; then error "Failed to allocate $CUR_SIZE bytes for $DISK_DESC image $TMP_FILE" + fi fi fi fi diff --git a/src/install.sh b/src/install.sh index ee6a69b..23959d5 100644 --- a/src/install.sh +++ b/src/install.sh @@ -58,7 +58,7 @@ downloadFile() { local url="$1" local base="$2" local name="$3" - local msg rc total total_mb progress name + local msg rc total size progress local dest="$STORAGE/$base.tmp" rm -f "$dest" @@ -88,9 +88,9 @@ downloadFile() { if (( rc == 0 )) && [ -f "$dest" ]; then total=$(stat -c%s "$dest") - total_gb=$(formatBytes "$total") + size=$(formatBytes "$total") if [ "$total" -lt 100000 ]; then - error "Invalid image file: is only $total_gb ?" && return 1 + error "Invalid image file: is only $size ?" && return 1 fi html "Download finished successfully..." mv -f "$dest" "$STORAGE/$base" @@ -173,8 +173,10 @@ convertImage() { # Work around qemu-img bug cur_size=$(stat -c%s "$tmp_file") cur_gb=$(formatBytes "$cur_size") - if ! fallocate -l "$cur_size" "$tmp_file"; then - error "Failed to allocate $cur_gb for image!" + if ! fallocate -l "$cur_size" "$tmp_file" &>/dev/null; then + if ! fallocate -l -x "$cur_size" "$tmp_file"; then + error "Failed to allocate $cur_gb for image!" + fi fi fi fi