From 206cc09551e45a2284e10c5ed0c2f5abae35db05 Mon Sep 17 00:00:00 2001 From: Francesco Picone Date: Tue, 3 Feb 2026 10:59:47 +0100 Subject: [PATCH] ++ fix claude --- exportdisk.sh | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/exportdisk.sh b/exportdisk.sh index ac1a840..a8e1d79 100644 --- a/exportdisk.sh +++ b/exportdisk.sh @@ -55,52 +55,57 @@ fi # Funzione per rilevare i dischi detect_disks() { local disks=() - - # Scansiona tutti i device da sda a sdz - for device in /sys/block/sd*; do + + # Scansiona tutti i tipi di device: sd* (SCSI/SATA), vd* (virtio), xvd* (Xen), nvme* (NVMe) + for device in /sys/block/sd* /sys/block/vd* /sys/block/xvd* /sys/block/nvme*; do if [[ ! -d "$device" ]]; then continue fi - + disk_name=$(basename "$device") - + # Esclude dispositivi specifici if echo "$disk_name" | grep -qE "$EXCLUDE_DEVICES"; then continue fi - + + # Per NVMe, considera solo i namespace principali (nvme0n1, nvme1n1, ecc.) + if [[ "$disk_name" == nvme* ]] && [[ ! "$disk_name" =~ ^nvme[0-9]+n[0-9]+$ ]]; then + continue + fi + # Verifica se il disco è removibile (esclude USB, ecc.) if [[ -f "$device/removable" ]] && [[ $(cat "$device/removable") -eq 1 ]]; then continue fi - + # Ottieni dimensione del disco if [[ -f "$device/size" ]]; then sectors=$(cat "$device/size") # Calcola dimensione in GB (settori * 512 byte / 1024^3) size_gb=$(awk "BEGIN {printf \"%.2f\", $sectors * 512 / 1024 / 1024 / 1024}") - + # Verifica dimensione minima if (( $(echo "$size_gb >= $MIN_DISK_SIZE_GB" | bc -l) )); then disks+=("/dev/$disk_name:$size_gb") - echo -e " ${GREEN}✓${NC} Rilevato: /dev/$disk_name (${size_gb} GB)" >&2 + echo " [OK] Rilevato: /dev/$disk_name (${size_gb} GB)" >&2 fi fi done - + if [[ ${#disks[@]} -eq 0 ]]; then - echo -e "${RED}Errore: Nessun disco rilevato${NC}" >&2 + echo "Errore: Nessun disco rilevato" >&2 exit 1 fi - + echo "" >&2 - echo -e "${BLUE}Dischi da esportare: ${#disks[@]}${NC}" >&2 + echo "Dischi da esportare: ${#disks[@]}" >&2 printf '%s\n' "${disks[@]}" } # Rileva i dischi echo -e "${YELLOW}[1/6] Rilevamento dischi...${NC}" -DISKS=($(detect_disks)) +mapfile -t DISKS < <(detect_disks) # Verifica se pv è installato echo -e "${YELLOW}[2/6] Verifica dipendenze...${NC}"