mirror of
https://github.com/vdsm/virtual-dsm.git
synced 2025-02-24 21:40:01 +08:00
Storage
Storage
This commit is contained in:
commit
42a456224d
14
run/disk.sh
14
run/disk.sh
@ -1,17 +1,17 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
BOOT="$IMG/$BASE.boot.img"
|
BOOT="$STORAGE/$BASE.boot.img"
|
||||||
SYSTEM="$IMG/$BASE.system.img"
|
SYSTEM="$STORAGE/$BASE.system.img"
|
||||||
|
|
||||||
[ ! -f "$BOOT" ] && echo "ERROR: Virtual DSM boot-image does not exist ($BOOT)" && exit 81
|
[ ! -f "$BOOT" ] && echo "ERROR: Virtual DSM boot-image does not exist ($BOOT)" && exit 81
|
||||||
[ ! -f "$SYSTEM" ] && echo "ERROR: Virtual DSM system-image does not exist ($SYSTEM)" && exit 82
|
[ ! -f "$SYSTEM" ] && echo "ERROR: Virtual DSM system-image does not exist ($SYSTEM)" && exit 82
|
||||||
|
|
||||||
DATA="${IMG}/data.img"
|
DATA="${STORAGE}/data.img"
|
||||||
|
|
||||||
if [[ ! -f "${DATA}" ]] && [[ -f "$IMG/data$DISK_SIZE.img" ]]; then
|
if [[ ! -f "${DATA}" ]] && [[ -f "$STORAGE/data$DISK_SIZE.img" ]]; then
|
||||||
# Fallback for legacy installs
|
# Fallback for legacy installs
|
||||||
DATA="$IMG/data$DISK_SIZE.img"
|
DATA="$STORAGE/data$DISK_SIZE.img"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DISK_SIZE=$(echo "${DISK_SIZE}" | sed 's/MB/M/g;s/GB/G/g;s/TB/T/g')
|
DISK_SIZE=$(echo "${DISK_SIZE}" | sed 's/MB/M/g;s/GB/G/g;s/TB/T/g')
|
||||||
@ -32,7 +32,7 @@ if [ -f "${DATA}" ]; then
|
|||||||
REQ=$((DATA_SIZE-OLD_SIZE))
|
REQ=$((DATA_SIZE-OLD_SIZE))
|
||||||
|
|
||||||
# Check free diskspace
|
# Check free diskspace
|
||||||
SPACE=$(df --output=avail -B 1 "${IMG}" | tail -n 1)
|
SPACE=$(df --output=avail -B 1 "${STORAGE}" | tail -n 1)
|
||||||
|
|
||||||
if (( REQ > SPACE )); then
|
if (( REQ > SPACE )); then
|
||||||
echo "ERROR: Not enough free space to resize virtual disk." && exit 84
|
echo "ERROR: Not enough free space to resize virtual disk." && exit 84
|
||||||
@ -58,7 +58,7 @@ fi
|
|||||||
if [ ! -f "${DATA}" ]; then
|
if [ ! -f "${DATA}" ]; then
|
||||||
|
|
||||||
# Check free diskspace
|
# Check free diskspace
|
||||||
SPACE=$(df --output=avail -B 1 "${IMG}" | tail -n 1)
|
SPACE=$(df --output=avail -B 1 "${STORAGE}" | tail -n 1)
|
||||||
|
|
||||||
if (( DATA_SIZE > SPACE )); then
|
if (( DATA_SIZE > SPACE )); then
|
||||||
echo "ERROR: Not enough free space to create virtual disk." && exit 86
|
echo "ERROR: Not enough free space to create virtual disk." && exit 86
|
||||||
|
@ -16,14 +16,14 @@ fi
|
|||||||
|
|
||||||
BASE=$(basename "$URL" .pat)
|
BASE=$(basename "$URL" .pat)
|
||||||
|
|
||||||
rm -f "$IMG"/"$BASE".pat
|
rm -f "$STORAGE"/"$BASE".pat
|
||||||
rm -f "$IMG"/"$BASE".agent
|
rm -f "$STORAGE"/"$BASE".agent
|
||||||
rm -f "$IMG"/"$BASE".boot.img
|
rm -f "$STORAGE"/"$BASE".boot.img
|
||||||
rm -f "$IMG"/"$BASE".system.img
|
rm -f "$STORAGE"/"$BASE".system.img
|
||||||
|
|
||||||
echo "Install: Downloading extractor..."
|
echo "Install: Downloading extractor..."
|
||||||
|
|
||||||
TMP="$IMG/tmp"
|
TMP="$STORAGE/tmp"
|
||||||
RD="$TMP/rd.gz"
|
RD="$TMP/rd.gz"
|
||||||
rm -rf $TMP && mkdir -p $TMP
|
rm -rf $TMP && mkdir -p $TMP
|
||||||
|
|
||||||
@ -160,7 +160,7 @@ cp /agent/service.sh $LOC/agent.sh
|
|||||||
chmod +x $LOC/agent.sh
|
chmod +x $LOC/agent.sh
|
||||||
|
|
||||||
# Store agent version
|
# Store agent version
|
||||||
echo "2" > "$IMG"/"$BASE".agent
|
echo "2" > "$STORAGE"/"$BASE".agent
|
||||||
|
|
||||||
echo "Install: Installing system partition..."
|
echo "Install: Installing system partition..."
|
||||||
|
|
||||||
@ -172,9 +172,9 @@ mke2fs -q -t ext4 -b 4096 -d $MOUNT/ -L $LABEL -F -E offset=$OFFSET $SYSTEM $NUM
|
|||||||
|
|
||||||
rm -rf $MOUNT
|
rm -rf $MOUNT
|
||||||
|
|
||||||
echo "$BASE" > "$IMG"/dsm.ver
|
echo "$BASE" > "$STORAGE"/dsm.ver
|
||||||
mv -f "$PAT" "$IMG"/"$BASE".pat
|
mv -f "$PAT" "$STORAGE"/"$BASE".pat
|
||||||
mv -f "$BOOT" "$IMG"/"$BASE".boot.img
|
mv -f "$BOOT" "$STORAGE"/"$BASE".boot.img
|
||||||
mv -f "$SYSTEM" "$IMG"/"$BASE".system.img
|
mv -f "$SYSTEM" "$STORAGE"/"$BASE".system.img
|
||||||
|
|
||||||
rm -rf $TMP
|
rm -rf $TMP
|
||||||
|
@ -43,7 +43,7 @@ _graceful_shutdown(){
|
|||||||
echo
|
echo
|
||||||
echo "Could not send shutdown command to guest, error: $RESPONSE"
|
echo "Could not send shutdown command to guest, error: $RESPONSE"
|
||||||
|
|
||||||
FILE="${IMG}/${BASE}.agent"
|
FILE="${STORAGE}/${BASE}.agent"
|
||||||
[ ! -f "$FILE" ] && echo "1" > "$FILE"
|
[ ! -f "$FILE" ] && echo "1" > "$FILE"
|
||||||
AGENT_VERSION=$(cat "${FILE}")
|
AGENT_VERSION=$(cat "${FILE}")
|
||||||
|
|
||||||
|
12
run/run.sh
12
run/run.sh
@ -3,20 +3,20 @@ set -eu
|
|||||||
|
|
||||||
echo "Starting Virtual DSM..."
|
echo "Starting Virtual DSM..."
|
||||||
|
|
||||||
IMG="/storage"
|
STORAGE="/storage"
|
||||||
[ ! -d "$IMG" ] && echo "Storage folder (${IMG}) not found!" && exit 69
|
[ ! -d "$STORAGE" ] && echo "Storage folder (${STORAGE}) not found!" && exit 69
|
||||||
[ ! -f "/run/run.sh" ] && echo "Script must run inside Docker container!" && exit 60
|
[ ! -f "/run/run.sh" ] && echo "Script must run inside Docker container!" && exit 60
|
||||||
|
|
||||||
if [ -f "$IMG"/dsm.ver ]; then
|
if [ -f "$STORAGE"/dsm.ver ]; then
|
||||||
BASE=$(cat "${IMG}/dsm.ver")
|
BASE=$(cat "${STORAGE}/dsm.ver")
|
||||||
else
|
else
|
||||||
# Fallback for old installs
|
# Fallback for old installs
|
||||||
BASE="DSM_VirtualDSM_42962"
|
BASE="DSM_VirtualDSM_42962"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -n $URL ] && BASE=$(basename "$URL" .pat)
|
[ -n "$URL" ] && BASE=$(basename "$URL" .pat)
|
||||||
|
|
||||||
if [[ ! -f "$IMG/$BASE.boot.img" ]] || [[ ! -f "$IMG/$BASE.system.img" ]]; then
|
if [[ ! -f "$STORAGE/$BASE.boot.img" ]] || [[ ! -f "$STORAGE/$BASE.system.img" ]]; then
|
||||||
. /run/install.sh
|
. /run/install.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user