Fix parted failing on busy partition in script mode

parted -s answers confirmation prompts with "no" (conservative),
causing resizepart/mkpart to fail on a mounted partition. Pipe
"Yes" to parted stdin instead so busy-partition warnings are
confirmed and the operation proceeds.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-27 16:30:19 +02:00
parent bf71540f66
commit 5c2182a1c9
+3 -2
View File
@@ -377,14 +377,15 @@ if [[ "$MODE" == "shrink" ]]; then
fi fi
info "Shrinking partition $S_PNUM to ${NEW_END} MiB in partition table..." info "Shrinking partition $S_PNUM to ${NEW_END} MiB in partition table..."
parted -s "$S_DISK" resizepart "$S_PNUM" "${NEW_END}MiB" \ # Use printf instead of -s so parted's "partition is busy" confirmation is answered Yes
printf 'Yes\n' | parted "$S_DISK" resizepart "$S_PNUM" "${NEW_END}MiB" \
|| die "parted resizepart failed." || die "parted resizepart failed."
fi fi
# ── Create OEMDRV partition ─────────────────────────────────────────────────── # ── Create OEMDRV partition ───────────────────────────────────────────────────
info "Creating new OEMDRV partition (${OEMDRV_START}${OEMDRV_END} MiB) on $WORK_DISK..." info "Creating new OEMDRV partition (${OEMDRV_START}${OEMDRV_END} MiB) on $WORK_DISK..."
parted -s "$WORK_DISK" mkpart primary btrfs "${OEMDRV_START}MiB" "${OEMDRV_END}MiB" \ printf 'Yes\n' | parted "$WORK_DISK" mkpart primary btrfs "${OEMDRV_START}MiB" "${OEMDRV_END}MiB" \
|| die "parted mkpart failed. Check that the target area is free space on $WORK_DISK." || die "parted mkpart failed. Check that the target area is free space on $WORK_DISK."
partprobe "$WORK_DISK" partprobe "$WORK_DISK"