mirror of
https://github.com/vdsm/virtual-dsm.git
synced 2025-11-06 18:13:43 +08:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f0ce992a27 | ||
|
|
6334cfc8bc | ||
|
|
451a569617 | ||
|
|
44d82d6544 | ||
|
|
618ec66401 | ||
|
|
d24ae86c12 | ||
|
|
32db74e50d | ||
|
|
503c89f08c |
18
src/disk.sh
18
src/disk.sh
@@ -27,9 +27,7 @@ addDisk () {
|
||||
local GB
|
||||
local DIR
|
||||
local REQ
|
||||
local SIZE
|
||||
local SPACE
|
||||
local MIN_SIZE
|
||||
local CUR_SIZE
|
||||
local DATA_SIZE
|
||||
local DISK_ID=$1
|
||||
@@ -46,8 +44,7 @@ addDisk () {
|
||||
DISK_SPACE=$(echo "${DISK_SPACE}" | sed 's/MB/M/g;s/GB/G/g;s/TB/T/g')
|
||||
DATA_SIZE=$(numfmt --from=iec "${DISK_SPACE}")
|
||||
|
||||
MIN_SIZE=6442450944
|
||||
if (( DATA_SIZE < MIN_SIZE )); then
|
||||
if (( DATA_SIZE < 6442450944 )); then
|
||||
error "Please increase ${DISK_DESC^^}_SIZE to at least 6 GB." && exit 83
|
||||
fi
|
||||
|
||||
@@ -119,19 +116,6 @@ addDisk () {
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Check if file exists
|
||||
if [ ! -f "${DISK_FILE}" ]; then
|
||||
error "File for ${DISK_DESC} ($DISK_FILE) does not exist!" && exit 88
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Check the filesize
|
||||
SIZE=$(stat -c%s "${DISK_FILE}")
|
||||
|
||||
if [[ SIZE -ne DATA_SIZE ]]; then
|
||||
error "File for ${DISK_DESC} (${DISK_FILE}) has the wrong size: ${SIZE} bytes" && exit 89
|
||||
fi
|
||||
|
||||
DISK_OPTS="${DISK_OPTS} \
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
: ${DEV:='Y'} # Controls whether device nodes are created.
|
||||
|
||||
if [ -f "$STORAGE"/dsm.ver ]; then
|
||||
BASE=$(cat "${STORAGE}/dsm.ver")
|
||||
else
|
||||
@@ -107,8 +109,14 @@ if [ -f "${RDC}" ]; then
|
||||
{ xz -dc <"$RDC" >"$TMP/rd" 2>/dev/null; rc=$?; } || :
|
||||
(( rc != 1 )) && error "Failed to unxz $RDC, reason $rc" && exit 91
|
||||
|
||||
if [[ "${DEV}" == [Nn]* ]]; then
|
||||
# Exclude dev/ from cpio extract
|
||||
{ (cd "$TMP" && cpio -it < "$TMP/rd" | grep -Ev 'dev/' | while read -r entry; do cpio -idm "$entry" < "$TMP/rd" 2>/dev/null; done); rc=$?; } || :
|
||||
(( rc != 0 )) && error "Failed to extract $RDC, reason $rc" && exit 92
|
||||
else
|
||||
{ (cd "$TMP" && cpio -idm <"$TMP/rd" 2>/dev/null); rc=$?; } || :
|
||||
(( rc != 0 )) && error "Failed to cpio $RDC, reason $rc" && exit 92
|
||||
fi
|
||||
|
||||
mkdir -p /run/extract
|
||||
for file in $TMP/usr/lib/libcurl.so.4 \
|
||||
@@ -240,7 +248,13 @@ MOUNT="$TMP/system"
|
||||
rm -rf "$MOUNT" && mkdir -p "$MOUNT"
|
||||
|
||||
mv "$HDA.tgz" "$HDA.txz"
|
||||
|
||||
if [[ "${DEV}" == [Nn]* ]]; then
|
||||
# Exclude dev/ from tar extract
|
||||
tar xpfJ "$HDA.txz" --absolute-names --exclude="dev" -C "$MOUNT/"
|
||||
else
|
||||
tar xpfJ "$HDA.txz" --absolute-names -C "$MOUNT/"
|
||||
fi
|
||||
|
||||
[ -d "$PKG" ] && mv "$PKG/" "$MOUNT/.SynoUpgradePackages/"
|
||||
rm -f "$MOUNT/.SynoUpgradePackages/ActiveInsight-"*
|
||||
|
||||
Reference in New Issue
Block a user