From e3fc2c212bedc66a5dba4e779ed8e77a83674d15 Mon Sep 17 00:00:00 2001 From: MacRimi Date: Thu, 3 Apr 2025 20:17:36 +0200 Subject: [PATCH] Update --- scripts/test/debug_disks.sh | 24 ++++++++++++++++++++++++ scripts/test/debug_disks1.sh | 24 ++++++++++++++++++++++++ scripts/test/id.sh | 25 +++++++++++++------------ 3 files changed, 61 insertions(+), 12 deletions(-) create mode 100644 scripts/test/debug_disks.sh create mode 100644 scripts/test/debug_disks1.sh diff --git a/scripts/test/debug_disks.sh b/scripts/test/debug_disks.sh new file mode 100644 index 0000000..a1e57dd --- /dev/null +++ b/scripts/test/debug_disks.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +VMID="105" + +echo -e "\n=== 📦 Discos físicos detectados (lsblk) ===" +lsblk -dn -o PATH,TYPE | awk '$2 == "disk" {print $1}' + +echo -e "\n=== 📌 Discos montados ===" +mount | grep /dev/sd || echo "Ninguno" + +echo -e "\n=== 🧱 Discos en uso por LVM (pvs) ===" +pvs --noheadings -o pv_name | xargs -n1 readlink -f | sort -u || echo "Ninguno" + +echo -e "\n=== ⚠ RAID activos (mdstat) ===" +awk '/^md/ {for (i=4; i<=NF; i++) print $i}' /proc/mdstat || echo "Ninguno" + +echo -e "\n=== 💻 Discos ya asignados a la VM ID $VMID ===" +qm config "$VMID" | grep -E '^(scsi|sata|virtio|ide)[0-9]+:' | awk -F ':' '{print $2}' | cut -d',' -f1 + +echo -e "\n=== 🧪 FSTYPE de cada disco ===" +for disk in $(lsblk -dn -o PATH,TYPE | awk '$2 == "disk" {print $1}'); do + echo -e "\n→ $disk" + lsblk -ln -o NAME,FSTYPE "$disk" | tail -n +2 +done diff --git a/scripts/test/debug_disks1.sh b/scripts/test/debug_disks1.sh new file mode 100644 index 0000000..a1e57dd --- /dev/null +++ b/scripts/test/debug_disks1.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +VMID="105" + +echo -e "\n=== 📦 Discos físicos detectados (lsblk) ===" +lsblk -dn -o PATH,TYPE | awk '$2 == "disk" {print $1}' + +echo -e "\n=== 📌 Discos montados ===" +mount | grep /dev/sd || echo "Ninguno" + +echo -e "\n=== 🧱 Discos en uso por LVM (pvs) ===" +pvs --noheadings -o pv_name | xargs -n1 readlink -f | sort -u || echo "Ninguno" + +echo -e "\n=== ⚠ RAID activos (mdstat) ===" +awk '/^md/ {for (i=4; i<=NF; i++) print $i}' /proc/mdstat || echo "Ninguno" + +echo -e "\n=== 💻 Discos ya asignados a la VM ID $VMID ===" +qm config "$VMID" | grep -E '^(scsi|sata|virtio|ide)[0-9]+:' | awk -F ':' '{print $2}' | cut -d',' -f1 + +echo -e "\n=== 🧪 FSTYPE de cada disco ===" +for disk in $(lsblk -dn -o PATH,TYPE | awk '$2 == "disk" {print $1}'); do + echo -e "\n→ $disk" + lsblk -ln -o NAME,FSTYPE "$disk" | tail -n +2 +done diff --git a/scripts/test/id.sh b/scripts/test/id.sh index eb3a912..4f81310 100644 --- a/scripts/test/id.sh +++ b/scripts/test/id.sh @@ -148,32 +148,32 @@ ACTIVE_MD_DEVICES=$(awk '/^md/ {for (i=4; i<=NF; i++) print $i}' /proc/mdstat) LVM_DEVICES=$(pvs --noheadings -o pv_name | xargs -n1 readlink -f | sed 's/ *$//' | sort -u) while read -r DISK; do - + # Ocultar discos virtuales (como ZVOLs) y LVM completos if echo "$LVM_DEVICES" | grep -Fxq "$DISK"; then continue fi - if qm config "$VMID" | grep -q "$DISK"; then - continue - fi - IS_MOUNTED=false IS_RAID=false IS_RAID_ACTIVE=false IS_ZFS=false TAG="" + # Verificar si ya está en la VM seleccionada + if qm config "$VMID" | grep -q "$DISK"; then + continue + fi while read -r part fstype; do full_path="/dev/$part" real_path=$(readlink -f "$full_path") - + # Si está montado if echo "$MOUNTED_DISKS" | grep -q "$full_path"; then IS_MOUNTED=true fi - + # Si está en LVM (volumen lógico) if echo "$LVM_DEVICES" | grep -Fxq "$real_path"; then IS_MOUNTED=true fi @@ -191,27 +191,28 @@ while read -r DISK; do esac done < <(lsblk -ln -o NAME,FSTYPE "$DISK" | tail -n +2) - + # Si está montado, lo descartamos if $IS_MOUNTED; then continue fi - + # Obtener info para mostrar en el menú INFO=($(get_disk_info "$DISK")) MODEL="${INFO[@]::${#INFO[@]}-1}" SIZE="${INFO[-1]}" - + # Etiqueta RAID/ZFS if $IS_RAID; then TAG=" ⚠ RAID" - $IS_RAID_ACTIVE && TAG=" ⚠ with partitions" + $IS_RAID_ACTIVE && TAG=" ⚠ RAID (activo)" elif $IS_ZFS; then TAG=" ⚠ ZFS" fi DESCRIPTION=$(printf "%-30s %10s%s" "$MODEL" "$SIZE" "$TAG") FREE_DISKS+=("$DISK" "$DESCRIPTION" "OFF") -done < <(lsblk -dn -e 7,11 -o PATH) +done < <(lsblk -dn -o PATH,TYPE | awk '$2 == "disk" {print $1}') +