Abarone.it Logo

Linux - Come aumentare l'HDD senza perdere dati

Assegnare Maggiore Spazio di archiviazione senza perdita di dati

In questo articolo andiamo a vedere come aumentare lo spazio di archiviazione del nostro VPS (Virtual Private Server) con sistema operativo Linux.
Capita molti infatti che acquistando un server VPS, quest'ultimo si acquisti nella versione basilare, sia per risparmiare , sia perché se in futuro si avrà bisogno di maggiore hardware i VPS permettono di essere upgradati.

Ma vediamo come effettuare l'upgrade dello spazio di archiviazione senza tuttavia perdere i dati presenti nel nostro server. Nel mio caso passero da un VPS SSD1 con 10 gb di archiviazine a un VPS SSD2 con 20 GB di archiviazione.
Questa guida è valida per qualsiasi sistema operativo Linux.

Nel mio caso, avevo raggiunto la dimensione massima di archiviazione in un VPS ssd di livello 1 acquistato su ovh.com.
Per risolvere il problema ho prima acquistato il servizio Snapshot. Lo snapshot permette di effettuare il salvataggio di tutta la macchina virtuale così com'è comprendente quindi:
- Lo stato di tutti i dischi della macchina virtuale
- Il contenuto della memoria della macchina virtuale
Lo snapshop è consigliato a tutti, ci mette al riparo da qualsiasi perdita di dati causati da un nostro errore o da un guasto, in quanto il backup non sarà fatto sul nostro stesso ssd.

Procediamo, colleghiamoci al nostro VPS tramite terminale ssh, e assegniamoci i comandi di root per farlo bisogna effettuare l'accesso come root, oppure far diventare il nostri user root con il comando:

  1. sudo su

La prima cosa da fare è controllare le partizioni presenti sul disco:

  1. [root]# fdisk -l

L’output del precedente comando dovrebbe essere simile al seguente:
Qui vediamo la dimensione e il partizionamento del disco:

  1. Filesystem Size Used Avail Use% Mounted on
  2. /dev/vda1 24G 1008M 22G 5% /
  1. root@test:~# fdisk -l /dev/vda
  1. Disk /dev/vda: 53.7 GB, 53687091200 bytes
  2. 255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
  3. Units = sectors of 1 * 512 = 512 bytes
  4. Sector size (logical/physical): 512 bytes / 512 bytes
  5. I/O size (minimum/optimal): 512 bytes / 512 bytes
  6. Disk identifier: 0x0009256d
  7. Device Boot Start End Blocks Id System
  8. /dev/vda1 * 2048 50329215 25163584 83 Linux
  9. /dev/vda2 50329216 52426367 1048576 82 Linux swap / Solaris

Prima di tutto è necessario assicurarsi di disabilitare lo swap:

  1. root@test:~# swapoff -a
  2. root@test:~# free -m
  3. total used free shared buffers cached
  4. Mem: 1024 324 700 0 10 120
  5. -/+ buffers/cache: 46 715
  6. Swap: 0 0 0

Ora rimuoviamo la partizione di swap e si estendono partizione root. Dal comando precedente fdisk possiamo vedere che la nostra partizione di swap è seconda (/ dev / vda2).
Nei seguenti passi andremo a rimuovere la partizione di swap e la partizione di root, creare la partizione di root con il nuovo formato.

  1. root@test:~# fdisk /dev/vda

Il risultato

  1. Command (m for help): p
  2. Disk /dev/vda: 53.7 GB, 53687091200 bytes
  3. 255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
  4. Units = sectors of 1 * 512 = 512 bytes
  5. Sector size (logical/physical): 512 bytes / 512 bytes
  6. I/O size (minimum/optimal): 512 bytes / 512 bytes
  7. Disk identifier: 0x0009256d
  8. Device Boot Start End Blocks Id System
  9. /dev/vda1 * 2048 50329215 25163584 83 Linux
  10. /dev/vda2 50329216 52426367 1048576 82 Linux swap / Solaris
  11. Command (m for help): d
  12. Partition number (1-4): 2
  13. Command (m for help): d
  14. Selected partition 1
  15. Command (m for help): n
  16. Partition type:
  17. p primary (0 primary, 0 extended, 4 free)
  18. e extended
  19. Select (default p):
  20. Using default response p
  21. Partition number (1-4, default 1):
  22. Using default value 1
  23. First sector (2048-104857599, default 2048):
  24. Using default value 2048
  25. Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): +103809023
  26. Command (m for help): n
  27. Partition type:
  28. p primary (1 primary, 0 extended, 3 free)
  29. e extended
  30. Select (default p):
  31. Using default response p
  32. Partition number (1-4, default 2):
  33. Using default value 2
  34. First sector (103811072-104857599, default 103811072):
  35. Using default value 103811072
  36. Last sector, +sectors or +size{K,M,G} (103811072-104857599, default 104857599):
  37. Using default value 104857599
  38. Command (m for help): p
  39. Disk /dev/vda: 53.7 GB, 53687091200 bytes
  40. 255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
  41. Units = sectors of 1 * 512 = 512 bytes
  42. Sector size (logical/physical): 512 bytes / 512 bytes
  43. I/O size (minimum/optimal): 512 bytes / 512 bytes
  44. Disk identifier: 0x0009256d
  45. Device Boot Start End Blocks Id System
  46. /dev/vda1 2048 103811071 51904512 83 Linux
  47. /dev/vda2 103811072 104857599 523264 83 Linux

Prima di scrivere le modifiche su disco dobbiamo impostare tipo di partizione appropriato e fare partizione root avviabile:

  1. Command (m for help): t
  2. Partition number (1-4): 1
  3. Hex code (type L to list codes): 83
  4. Command (m for help): t
  5. Partition number (1-4): 2
  6. Hex code (type L to list codes): 82
  7. Changed system type of partition 2 to 82 (Linux swap / Solaris)
  8. Command (m for help): a
  9. Partition number (1-4): 1
  10. Command (m for help): p
  11. Disk /dev/vda: 53.7 GB, 53687091200 bytes
  12. 255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
  13. Units = sectors of 1 * 512 = 512 bytes
  14. Sector size (logical/physical): 512 bytes / 512 bytes
  15. I/O size (minimum/optimal): 512 bytes / 512 bytes
  16. Disk identifier: 0x0009256d
  17. Device Boot Start End Blocks Id System
  18. /dev/vda1 * 2048 103811071 51904512 83 Linux
  19. /dev/vda2 103811072 104857599 523264 82 Linux swap / Solari

Ora scriviamo le modifiche sul disco e tabella delle partizioni (tabella delle partizioni per rileggere è possibile che sia necessario riavviare la VM) in modo che il sistema possa vedere nuove dimensioni:

  1. Command (m for help): w
  2. The partition table has been altered!
  3. Calling ioctl() to re-read partition table.
  4. WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
  5. The kernel still uses the old table. The new table will be used at
  6. the next reboot or after you run partprobe(8) or kpartx(8)
  7. Syncing disks.
  8. root@test:~# partprobe
  9. root@test:~# fdisk -l

Il risultato:

  1. Disk /dev/vda: 53.7 GB, 53687091200 bytes
  2. 16 heads, 63 sectors/track, 104025 cylinders, total 104857600 sectors
  3. Units = sectors of 1 * 512 = 512 bytes
  4. Sector size (logical/physical): 512 bytes / 512 bytes
  5. I/O size (minimum/optimal): 512 bytes / 512 bytes
  6. Disk identifier: 0x0009256d
  7. Device Boot Start End Blocks Id System
  8. /dev/vda1 * 2048 103811071 51904512 83 Linux
  9. /dev/vda2 103811072 104857599 523264 82 Linux swap / Solaris

Ora possiamo vedere le partizioni ridimensionate, ma il filesystem della partizione di root deve essere ridimensionata.

  1. root@test:~# resize2fs /dev/vda1

Il risultato sarà:

  1. resize2fs 1.42.9 (4-Feb-2014)
  2. Filesystem at /dev/vda1 is mounted on /; on-line resizing required
  3. old_desc_blocks = 2, new_desc_blocks = 4
  4. The filesystem on /dev/vda1 is now 12976128 blocks long.
  5. root@test:~# df -h /
  6. Filesystem Size Used Avail Use% Mounted on
  7. /dev/vda1 49G 1009M 46G 3% /

barone.antonio@libero.it