rezize works part one
This commit is contained in:
@@ -141,11 +141,23 @@ do_resize() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log "Resizing LUKS volume."
|
||||
cryptsetup resize "$mapper_name"
|
||||
|
||||
log "Checking and resizing filesystem."
|
||||
log "Checking filesystem before resize."
|
||||
e2fsck -fy "/dev/mapper/$mapper_name"
|
||||
|
||||
log "Resizing LUKS volume and filesystem."
|
||||
# Re-authenticate for resize, as some cryptsetup versions require it.
|
||||
if [ -n "$LUKSPASS" ]; then
|
||||
log "Resizing with password."
|
||||
echo -n "$LUKSPASS" | cryptsetup resize "$mapper_name" -
|
||||
elif [ -n "$key_file_arg" ]; then
|
||||
log "Resizing with keyfile."
|
||||
cryptsetup resize "$mapper_name" --key-file "$key_file_arg"
|
||||
else
|
||||
# This should not happen if luksOpen succeeded.
|
||||
# Fallback to the previous non-interactive attempt.
|
||||
log "No password or keyfile for resize, trying non-interactively."
|
||||
cryptsetup resize "$mapper_name" < /dev/null
|
||||
fi
|
||||
resize2fs "/dev/mapper/$mapper_name"
|
||||
|
||||
# 4. Mount it again
|
||||
|
||||
@@ -177,9 +177,11 @@ class EncryptionManager:
|
||||
free_space = shutil.disk_usage(mount_point).free
|
||||
required_space = int(source_size * 1.10)
|
||||
|
||||
if required_space > free_space:
|
||||
BUFFER = 4 * 1024 * 1024 * 1024 # 4 GB
|
||||
# Trigger resize if projected free space is less than the buffer
|
||||
if free_space - required_space < BUFFER:
|
||||
self.logger.log(
|
||||
f"Resize needed for {profile_name}. Free: {free_space}, Required: {required_space}")
|
||||
f"Resize needed for {profile_name}. Free: {free_space}, Required: {required_space}, Buffer: {BUFFER}")
|
||||
queue.put(
|
||||
('status_update', f"Container für {profile_name} zu klein. Vergrößere..."))
|
||||
|
||||
@@ -192,8 +194,11 @@ class EncryptionManager:
|
||||
return None
|
||||
|
||||
current_total = shutil.disk_usage(mount_point).total
|
||||
needed_additional = required_space - free_space - \
|
||||
(4 * 1024 * 1024 * 1024) # (4 * 1024 * 1024 * 1024) = 4 GB
|
||||
|
||||
# How much space we need to add to meet the future demand and have the buffer left over.
|
||||
# This is the deficit (required_space - free_space) plus the desired buffer.
|
||||
needed_additional = (required_space - free_space) + BUFFER
|
||||
|
||||
new_total_size = current_total + needed_additional
|
||||
new_total_size = math.ceil(new_total_size / 4096) * 4096
|
||||
|
||||
|
||||
Reference in New Issue
Block a user