++ fix claude

This commit is contained in:
2026-02-03 10:59:47 +01:00
parent 4cb5c592b0
commit 206cc09551

View File

@@ -55,52 +55,57 @@ fi
# Funzione per rilevare i dischi # Funzione per rilevare i dischi
detect_disks() { detect_disks() {
local disks=() local disks=()
# Scansiona tutti i device da sda a sdz # Scansiona tutti i tipi di device: sd* (SCSI/SATA), vd* (virtio), xvd* (Xen), nvme* (NVMe)
for device in /sys/block/sd*; do for device in /sys/block/sd* /sys/block/vd* /sys/block/xvd* /sys/block/nvme*; do
if [[ ! -d "$device" ]]; then if [[ ! -d "$device" ]]; then
continue continue
fi fi
disk_name=$(basename "$device") disk_name=$(basename "$device")
# Esclude dispositivi specifici # Esclude dispositivi specifici
if echo "$disk_name" | grep -qE "$EXCLUDE_DEVICES"; then if echo "$disk_name" | grep -qE "$EXCLUDE_DEVICES"; then
continue continue
fi 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.) # Verifica se il disco è removibile (esclude USB, ecc.)
if [[ -f "$device/removable" ]] && [[ $(cat "$device/removable") -eq 1 ]]; then if [[ -f "$device/removable" ]] && [[ $(cat "$device/removable") -eq 1 ]]; then
continue continue
fi fi
# Ottieni dimensione del disco # Ottieni dimensione del disco
if [[ -f "$device/size" ]]; then if [[ -f "$device/size" ]]; then
sectors=$(cat "$device/size") sectors=$(cat "$device/size")
# Calcola dimensione in GB (settori * 512 byte / 1024^3) # Calcola dimensione in GB (settori * 512 byte / 1024^3)
size_gb=$(awk "BEGIN {printf \"%.2f\", $sectors * 512 / 1024 / 1024 / 1024}") size_gb=$(awk "BEGIN {printf \"%.2f\", $sectors * 512 / 1024 / 1024 / 1024}")
# Verifica dimensione minima # Verifica dimensione minima
if (( $(echo "$size_gb >= $MIN_DISK_SIZE_GB" | bc -l) )); then if (( $(echo "$size_gb >= $MIN_DISK_SIZE_GB" | bc -l) )); then
disks+=("/dev/$disk_name:$size_gb") 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
fi fi
done done
if [[ ${#disks[@]} -eq 0 ]]; then if [[ ${#disks[@]} -eq 0 ]]; then
echo -e "${RED}Errore: Nessun disco rilevato${NC}" >&2 echo "Errore: Nessun disco rilevato" >&2
exit 1 exit 1
fi fi
echo "" >&2 echo "" >&2
echo -e "${BLUE}Dischi da esportare: ${#disks[@]}${NC}" >&2 echo "Dischi da esportare: ${#disks[@]}" >&2
printf '%s\n' "${disks[@]}" printf '%s\n' "${disks[@]}"
} }
# Rileva i dischi # Rileva i dischi
echo -e "${YELLOW}[1/6] Rilevamento dischi...${NC}" echo -e "${YELLOW}[1/6] Rilevamento dischi...${NC}"
DISKS=($(detect_disks)) mapfile -t DISKS < <(detect_disks)
# Verifica se pv è installato # Verifica se pv è installato
echo -e "${YELLOW}[2/6] Verifica dipendenze...${NC}" echo -e "${YELLOW}[2/6] Verifica dipendenze...${NC}"