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?
- Spazio libero ma "no space left on device": perché?
- Come trovo cosa occupa spazio sul disco?
- Come vedo dischi e partizioni?
- Come monto un disco al volo?
- "Target is busy" allo smontaggio: chi sta usando il disco?
- Come monto un disco in automatico al boot (fstab)?
- Come controllo e riparo un filesystem (fsck)?
- Come controllo la salute SMART di un disco?
- Come misuro la velocità di un disco?
- Come creo uno swapfile?
- Come vedo quanta swap sto usando (e chi la usa)?
- Come controllo un RAID mdadm (e sostituisco un disco)?
- Come controllo un pool ZFS (e lancio uno scrub)?
- Come creo (e ripristino) uno snapshot ZFS?
- Cosa fa rm -rf / (e perché non va MAI lanciato)?
- Come si usa dd senza distruggere il disco sbagliato?
# 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