F FabGPT-FAQ

Dischi e filesystem

Spazio, inode, mount, fstab, SMART, swap, mdadm e snapshot ZFS. Ogni comando è verificato e copiabile; in chat basta descrivere cosa vuoi fare.

17 comandi in questa pagina

# Come vedo quanto spazio disco resta?

df -h

Guarda Use% e il mountpoint giusto: il 100% su / spegne i servizi in modi creativi.

Approfondisci: Storage pieno su Proxmox: come liberare spazio senza disastri

# Spazio libero ma "no space left on device": perché?

df -i

Con IUse% al 100% gli inode sono finiti (milioni di file piccoli): lo spazio c'è, i "posti" no.

Approfondisci: Storage pieno su Proxmox: come liberare spazio senza disastri

# Come trovo cosa occupa spazio sul disco?

du -xhd1 / | sort -h | tail -20
# interattivo: ncdu -x /

-x non attraversa altri filesystem: eviti di contare due volte i mount.

Approfondisci: Storage pieno su Proxmox: come liberare spazio senza disastri

# Come vedo dischi e partizioni?

lsblk -f

-f aggiunge filesystem, etichette e UUID: quelli che servono per fstab.

Approfondisci: Storage pieno su Proxmox: come liberare spazio senza disastri

# Come monto un disco al volo?

mount /dev/sdb1 /mnt/dati

Montaggio temporaneo: sparisce al riavvio. Per quello stabile c'è fstab (scheda dopo).

Approfondisci: Storage pieno su Proxmox: come liberare spazio senza disastri

# "Target is busy" allo smontaggio: chi sta usando il disco?

fuser -vm /mnt/dati    # o: lsof +f -- /mnt/dati

Vedi i PID che tengono aperto il mount; anche una shell con la cwd lì dentro conta.

Approfondisci: Storage pieno su Proxmox: come liberare spazio senza disastri

# Come monto un disco in automatico al boot (fstab)?

blkid /dev/sdb1     # prendi l'UUID
# /etc/fstab:
UUID=xxxx-xxxx  /mnt/dati  ext4  defaults,nofail  0 2
mount -a            # test SENZA riavviare

Sempre per UUID (i nomi /dev/sdX ballano) e con nofail: un disco assente non deve bloccare il boot.

Approfondisci: Storage pieno su Proxmox: come liberare spazio senza disastri

# Come controllo e riparo un filesystem (fsck)?

umount /dev/sdb1
fsck -f /dev/sdb1

MAI su un filesystem montato in scrittura: peggiora le cose. Per la root: da initramfs o live USB.

Approfondisci: Storage pieno su Proxmox: come liberare spazio senza disastriCome si monitora lo stato dei dischi (SMART) e si prevengono i guasti?

# Come controllo la salute SMART di un disco?

smartctl -a /dev/sda | grep -Ei 'reallocated|pending|health'

Reallocated e Current_Pending_Sector sopra lo zero = pianifica la sostituzione, non sperarci.

Approfondisci: Come si monitora lo stato dei dischi (SMART) e si prevengono i guasti?RAID e RAIDZ: quali livelli scegliere (e cosa NON sono)?

# Come misuro la velocità di un disco?

# lettura sequenziale rapida:
hdparm -t /dev/sda
# test serio (random 4k):
fio --name=t --filename=/mnt/dati/t --size=1G --rw=randread --bs=4k --numjobs=4 --runtime=30 --group_reporting

dd misura solo il sequenziale con cache di mezzo: per i numeri veri serve fio.

Approfondisci: I/O delay alto su Proxmox: da dove viene?

# Come creo uno swapfile?

fallocate -l 2G /swapfile && chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile
# persistente: /swapfile none swap sw 0 0  in /etc/fstab

Su btrfs e ZFS lo swapfile richiede accorgimenti (o va evitato): lì meglio una partizione o zram.

Approfondisci: Storage pieno su Proxmox: come liberare spazio senza disastri

# Come vedo quanta swap sto usando (e chi la usa)?

swapon --show && free -h
# per processo: smem -s swap -r | head

Swap usata con RAM libera = pagine fredde parcheggiate, non un problema; swap che CRESCE sotto pressione sì.

Approfondisci: Storage pieno su Proxmox: come liberare spazio senza disastri

# Come controllo un RAID mdadm (e sostituisco un disco)?

cat /proc/mdstat
mdadm --detail /dev/md0
# sostituzione:
mdadm --manage /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1
mdadm --manage /dev/md0 --add /dev/sdc1

Dopo l'add parte il rebuild (progresso in mdstat): è il momento più fragile dell'array – backup prima.

Approfondisci: RAID e RAIDZ: quali livelli scegliere (e cosa NON sono)?Come si monitora lo stato dei dischi (SMART) e si prevengono i guasti?

# Come controllo un pool ZFS (e lancio uno scrub)?

zpool status -v
zpool scrub tank

Lo scrub mensile è il momento in cui i checksum fruttano: errori CKSUM su un disco = indiziato numero uno.

Approfondisci: Perché usare ZFS su Proxmox?Come si monitora lo stato dei dischi (SMART) e si prevengono i guasti?

# Come creo (e ripristino) uno snapshot ZFS?

zfs snapshot tank/dati@pre-upgrade
zfs rollback tank/dati@pre-upgrade   # distrugge cio' che e' successo dopo!

Il rollback butta tutto ciò che è successo dopo lo snapshot; per un singolo file: .zfs/snapshot/ in sola lettura.

Approfondisci: Perché usare ZFS su Proxmox?Che differenza c'è tra snapshot e backup?Come funziona la replica incrementale asincrona di snapshot ZFS con Sanoid e Syncoid?

# Cosa fa rm -rf / (e perché non va MAI lanciato)?

# NON eseguirlo. Per capirlo:
#   -r  ricorsivo (scende in ogni directory)
#   -f  forzato (niente conferme, ignora gli errori)
#   /   la radice: TUTTO il sistema
# GNU rm rifiuta '/' nudo (--preserve-root), ma 'rm -rf /*' o un path
# sbagliato in uno script non hanno rete di protezione.

Il disastro reale è la variabile vuota: rm -rf "$DIR/"* con $DIR non definita diventa /*. Antidoti: set -u negli script, path assoluti quotati, e backup testati – perché prima o poi succede.

Approfondisci: Come si fa un backup con la regola 3-2-1?Bash scripting: le basi che servono (e le trappole)Che differenza c'è tra snapshot e backup?

# Come si usa dd senza distruggere il disco sbagliato?

lsblk -f                       # PRIMA: identifica il device giusto
dd if=debian.iso of=/dev/sdX bs=4M status=progress conv=fsync

of= sbagliato = disco sovrascritto senza domande ("disk destroyer"). Regole: mai un device montato, sempre lsblk un secondo prima, e per le USB c'è cp o Etcher che il device lo verificano.

Approfondisci: Come si fa un backup con la regola 3-2-1?Come si monitora lo stato dei dischi (SMART) e si prevengono i guasti?Storage pieno su Proxmox: come liberare spazio senza disastri

Chiedi in chat