++ fix claude
This commit is contained in:
@@ -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}"
|
||||||
|
|||||||
Reference in New Issue
Block a user