Skip to content

Commit

Permalink
Fix issue #281 and #283
Browse files Browse the repository at this point in the history
Fix issue #281 and #283
  • Loading branch information
kroese committed Jul 3, 2023
2 parents 2c66258 + eef3d55 commit ceb144e
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 7 deletions.
2 changes: 2 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ docker run -it --rm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-ti
environment:
DISK_SIZE: "256G"
```

This can also be used to resize the existing disk to a larger capacity without data loss.

* ### How do I change the location of the virtual disk?

Expand Down
19 changes: 14 additions & 5 deletions run/disk.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@ if [ -f "${DATA}" ]; then
if [[ "${ALLOCATE}" == [Nn]* ]]; then

# Resize file by changing its length
truncate -s "${DATA_SIZE}" "${DATA}";
if ! truncate -s "${DATA_SIZE}" "${DATA}"; then
error "Could not resize the file for the virtual disk." && exit 85
fi

else

Expand All @@ -55,7 +57,9 @@ if [ -f "${DATA}" ]; then

# Resize file by allocating more space
if ! fallocate -l "${DATA_SIZE}" "${DATA}"; then
error "Could not allocate a file for the virtual disk." && exit 85
if ! truncate -s "${DATA_SIZE}" "${DATA}"; then
error "Could not resize the file for the virtual disk." && exit 85
fi
fi

if [[ "${ALLOCATE}" == [Zz]* ]]; then
Expand Down Expand Up @@ -84,7 +88,10 @@ if [ ! -f "${DATA}" ]; then
if [[ "${ALLOCATE}" == [Nn]* ]]; then

# Create an empty file
truncate -s "${DATA_SIZE}" "${DATA}"
if ! truncate -s "${DATA_SIZE}" "${DATA}"; then
rm -f "${DATA}"
error "Could not create a file for the virtual disk." && exit 87
fi

else

Expand All @@ -98,8 +105,10 @@ if [ ! -f "${DATA}" ]; then

# Create an empty file
if ! fallocate -l "${DATA_SIZE}" "${DATA}"; then
rm -f "${DATA}"
error "Could not allocate a file for the virtual disk." && exit 87
if ! truncate -s "${DATA_SIZE}" "${DATA}"; then
rm -f "${DATA}"
error "Could not create a file for the virtual disk." && exit 87
fi
fi

if [[ "${ALLOCATE}" == [Zz]* ]]; then
Expand Down
4 changes: 3 additions & 1 deletion run/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,9 @@ SPACE=$(df --output=avail -B 1 "$TMP" | tail -n 1)
(( SYSTEM_SIZE > SPACE )) && error "Not enough free space to create a 4 GB system disk." && exit 87

if ! fallocate -l "${SYSTEM_SIZE}" "${SYSTEM}"; then
rm -f "${SYSTEM}" && error "Could not allocate a file for the system disk." && exit 88
if ! truncate -s "${SYSTEM_SIZE}" "${SYSTEM}"; then
rm -f "${SYSTEM}" && error "Could not allocate a file for the system disk." && exit 88
fi
fi

if [[ "${ALLOCATE}" == [Zz]* ]]; then
Expand Down
3 changes: 2 additions & 1 deletion run/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ trap 'error "Status $? while: ${BASH_COMMAND} (line $LINENO/$BASH_LINENO)"' ERR

STORAGE="/storage"
KERNEL=$(uname -r | cut -b 1)
MINOR=$(uname -r | cut -d '.' -f2)
ARCH=$(dpkg --print-architecture)
VERS=$(qemu-system-x86_64 --version | head -n 1 | cut -d '(' -f 1)

Expand Down Expand Up @@ -92,7 +93,7 @@ set -m
)
set +m

if (( KERNEL > 4 )); then
if (( KERNEL > 5 )) || ( (( KERNEL == 5 )) && (( MINOR > 2 )) ); then
pidwait -F "${_QEMU_PID}" & wait $!
else
tail --pid "$(cat "${_QEMU_PID}")" --follow /dev/null & wait $!
Expand Down

0 comments on commit ceb144e

Please sign in to comment.