Un disco collegato a un VPS compare come dispositivo e nient'altro. Finché non è formattato e montato non contiene niente e nessuna directory punta a lui: ecco perché un volume appena collegato sembra non aver funzionato.

Guarda che cosa è collegato

lsblk -f

Il dispositivo nuovo non ha né FSTYPE né MOUNTPOINT. È così che lo distingui dal disco di sistema, che un filesystem lo porta già.

Formattalo

sudo mkfs.ext4 -L data /dev/sdb
Se lanci questo comando sul dispositivo sbagliato, i dati che contiene spariscono senza una domanda e senza ritorno. Rileggi l'output di lsblk e verifica che la dimensione corrisponda al volume appena collegato.

Un filesystem su tutto il dispositivo, senza tabella delle partizioni, è normale per un volume in cloud e rende più semplice ingrandirlo in seguito. Partiziona solo se qualcos'altro si aspetta una partizione.

Montalo

sudo mkdir -p /srv/data
sudo mount /dev/sdb /srv/data
df -h /srv/data

Il passo che tutti dimenticano

Un mount fatto a mano sparisce al riavvio successivo e la directory torna a essere una cartella vuota sul disco di sistema — che poi si riempie mentre il volume resta inutilizzato. Scrivilo in fstab tramite UUID, perché i nomi dei dispositivi possono cambiare ordine da un avvio all'altro.

sudo blkid /dev/sdb
# UUID="0a1b2c3d-..." TYPE="ext4"

echo 'UUID=0a1b2c3d-... /srv/data ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab
sudo mount -a
nofail lascia avviare la macchina anche se il volume manca. Senza, un volume scollegato blocca il server all'avvio, e su un VPS senza console questo diventa un ticket di assistenza.

Sposta i dati sul disco nuovo

  1. Ferma ciò che scrive lì — il database o il server web, così nulla cambia a metà copia.
  2. Copia mantenendo i permessisudo rsync -aHAX /var/lib/mysql/ /srv/data/mysql/
  3. Punta il servizio al nuovo percorso — e riavvialo.
  4. Tieni la copia vecchia finché non è provata — rinominala invece di cancellarla, e rimuovila una settimana dopo.