mirror of
https://github.com/dockur/windows.git
synced 2026-08-24 07:39:00 +01:00
fix: Improve extracted ISO size estimation (#2133)
This commit is contained in:
+22
-7
@@ -437,12 +437,8 @@ extractImage() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
required="$size"
|
getArchiveSize "$iso" archiveSize || return
|
||||||
|
required=$((archiveSize + (archiveSize + 99) / 100))
|
||||||
if enabled "${UNPACK:-}"; then
|
|
||||||
getArchiveSize "$iso" archiveSize || return
|
|
||||||
required="$archiveSize"
|
|
||||||
fi
|
|
||||||
|
|
||||||
checkFreeSpace "$target" "$required" || return 1
|
checkFreeSpace "$target" "$required" || return 1
|
||||||
|
|
||||||
@@ -451,7 +447,7 @@ extractImage() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
/run/progress.sh "$target" "$size" "$msg ([P])..." &
|
/run/progress.sh "$target" "$required" "$msg ([P])..." &
|
||||||
|
|
||||||
7z x "$iso" -o"$target" > /dev/null || {
|
7z x "$iso" -o"$target" > /dev/null || {
|
||||||
rc=$?
|
rc=$?
|
||||||
@@ -631,6 +627,7 @@ createSetupImage() {
|
|||||||
local target="::/\$OEM\$/\$1/OEM"
|
local target="::/\$OEM\$/\$1/OEM"
|
||||||
local install="$stage/.overlay-install.bat"
|
local install="$stage/.overlay-install.bat"
|
||||||
local folder size sectors entry find_pid
|
local folder size sectors entry find_pid
|
||||||
|
local fs attributes
|
||||||
local entries=()
|
local entries=()
|
||||||
|
|
||||||
folder=$(getOemFolder) || return 1
|
folder=$(getOemFolder) || return 1
|
||||||
@@ -651,6 +648,17 @@ createSetupImage() {
|
|||||||
|
|
||||||
checkFreeSpace "$(dirname "$image")" "$size" || return 1
|
checkFreeSpace "$(dirname "$image")" "$size" || return 1
|
||||||
|
|
||||||
|
fs=$(stat -f -c %T "$(dirname "$tmp")") || return 1
|
||||||
|
|
||||||
|
if [[ "${fs,,}" == "btrfs" ]]; then
|
||||||
|
touch "$tmp" || return 1
|
||||||
|
{ chattr +C "$tmp"; } || :
|
||||||
|
attributes=$(lsattr "$tmp") || return 1
|
||||||
|
if [[ "$attributes" != *"C"* ]]; then
|
||||||
|
error "Failed to disable COW for setup image $tmp on ${fs^^} filesystem!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if ! mformat -i "$tmp" -C -F -T "$sectors" -v "SETUP" ::; then
|
if ! mformat -i "$tmp" -C -F -T "$sectors" -v "SETUP" ::; then
|
||||||
rm -f -- "$tmp"
|
rm -f -- "$tmp"
|
||||||
error "Failed to format setup image!"
|
error "Failed to format setup image!"
|
||||||
@@ -757,6 +765,13 @@ createSetupImage() {
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "${fs,,}" == "btrfs" ]]; then
|
||||||
|
attributes=$(lsattr "$tmp") || return 1
|
||||||
|
if [[ "$attributes" != *"C"* ]]; then
|
||||||
|
warn "COW (copy on write) is not disabled for setup image $tmp on ${fs^^} filesystem!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if ! mv -f -- "$tmp" "$image"; then
|
if ! mv -f -- "$tmp" "$image"; then
|
||||||
rm -f -- "$tmp"
|
rm -f -- "$tmp"
|
||||||
error "Failed to save setup image: $image"
|
error "Failed to save setup image: $image"
|
||||||
|
|||||||
Reference in New Issue
Block a user