Unverified Commit 36d3fca4 authored by Kroese's avatar Kroese Committed by GitHub
Browse files

fix: Fallback to POSIX fallocate (#932)

parent 89b28f36
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -141,12 +141,14 @@ createDisk() {
      else

        # Create an empty file
        if ! fallocate -l "$DATA_SIZE" "$DISK_FILE"; then
        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

      fi
      ;;
@@ -219,11 +221,13 @@ resizeDisk() {
      else

        # Resize file by allocating more space
        if ! fallocate -l "$DATA_SIZE" "$DISK_FILE"; then
        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

      fi
      ;;
@@ -296,11 +300,13 @@ 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

  rm -f "$SOURCE_FILE"
  mv "$TMP_FILE" "$DST_FILE"
+6 −4
Original line number Diff line number Diff line
@@ -328,12 +328,14 @@ if [[ "${FS,,}" == "btrfs" ]]; then
  fi
fi

if ! fallocate -l "$SYSTEM_SIZE" "$SYSTEM"; then
if ! fallocate -l "$SYSTEM_SIZE" "$SYSTEM" &>/dev/null; then
  if ! fallocate -l -x "$SYSTEM_SIZE" "$SYSTEM"; then
    if ! truncate -s "$SYSTEM_SIZE" "$SYSTEM"; then
      rm -f "$SYSTEM"
      error "Could not allocate file $SYSTEM for the system disk." && exit 98
    fi
  fi
fi

PART="$TMP/partition.fdisk"

+1 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ if [ -z "${CPU// /}" ] && grep -qi "model:" <<< "$CPI"; then
fi

CPU="${CPU// CPU/}"
CPU="${CPU// 6 Core/}"
CPU="${CPU// 8 Core/}"
CPU="${CPU// 16 Core/}"
CPU="${CPU// 32 Core/}"