From 5da579e66934185dc9b99972243d31847ff9db3b Mon Sep 17 00:00:00 2001 From: chasqui Date: Tue, 6 Oct 2026 17:21:02 -0600 Subject: [PATCH] =?UTF-8?q?Permitir=20borrar=20particiones=20existentes=20?= =?UTF-8?q?con=20confirmaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- huerta-init.sh | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/huerta-init.sh b/huerta-init.sh index 7b7c12b..92bd10f 100755 --- a/huerta-init.sh +++ b/huerta-init.sh @@ -45,12 +45,36 @@ fi disk=$1 -for part in ${disk}?; do - if test -b "$part"; then - not_ok "El disco ${disk} contiene particiones, la instalación destruirá datos" +# Si el disco contiene particiones, ofrecer borrarlas +if lsblk -nr -o TYPE "$disk" | grep -q '^part$'; then + not_ok "El disco ${disk} contiene particiones, la instalación destruirá datos" + + echo + lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS "$disk" + echo + + read -r -p "¿Quieres borrar todas las particiones de ${disk}? Escribe SI para continuar: " respuesta + + if [ "$respuesta" != "SI" ]; then + not_ok "Operación cancelada" exit 1 fi -done + + ok "Preparando ${disk} para ser borrado" + + sync + + swapoff "$disk"* 2>/dev/null || true + + lsblk -nrpo NAME,MOUNTPOINT "$disk" | awk '$2 != "" {print $1}' | while read -r part; do + umount "$part" || true + done + + ok "Borrando particiones existentes de ${disk}" + + wipefs --all --force "$disk" + blockdev --rereadpt "$disk" 2>/dev/null || true +fi apt update apt install -y dropbear-initramfs busybox-initramfs smartmontools git rsync make tinc dialog locales bash-completion gnutls-bin nano -- 2.54.0