Una volta ottenuto un VPS presso un provider di hosting come DigitalOcean o OVH, potresti voler personalizzare il layout della partizione. Tuttavia, spesso non hai scelta:selezioni il sistema operativo desiderato e poi viene installato su un'unica partizione, occupando tutto lo spazio disponibile su disco.
Tuttavia, i VPS non sono solo per server Web a partizione singola! A seconda delle tue esigenze, potresti voler aggiungere una partizione di swap, un'altra per i tuoi dati...
Fortunatamente, la maggior parte dei provider di hosting offre una modalità di salvataggio , un sistema operativo alternativo su un altro disco rigido, dal quale puoi modificare il sistema operativo normale e il disco rigido "normale".
Il resto di questa guida presuppone che l'unica partizione esistente sia di tipo Ext4 (o Ext2/3); è il caso se hai installato Debian o Ubuntu.
Non provare questo metodo dall'interno del sistema, usa la modalità di ripristino. Se non sei sicuro, controlla il tuo provider VPS se dà accesso alla console di ripristino. Il ridimensionamento del filesystem e della partizione non cancella i dati, dato che la nuova dimensione desiderata è maggiore della quantità attuale di dati. Tuttavia, fai un backup su disco/dispositivo/server esterno.Diciamo che devi ridurre la partizione da 40 GiB a 2 GiB (a partire dall'inizio del disco), in modo da creare altre partizioni dopo di essa.
Passaggio 1:passa alla modalità di ripristino e identifica il disco
La prima cosa da fare è riavviare in modalità di ripristino, che di solito è un sistema Debian GNU/Linux. Ti verrà assegnata una root temporanea password per questo sistema temporaneo, solo SSH per esso.
Quindi, identifica il disco utilizzato dal tuo sistema normale; puoi usare fdisk -l
.
Qui /dev/sdb
è il disco su cui vogliamo modificare lo schema di partizione e /dev/sdb1
l'unica partizione per ora. /dev/sda
è il disco in cui risiede il sistema di salvataggio temporaneo. Ovviamente, nel resto di questo tutorial, sostituisci sdb1
se non è il nome del dispositivo corretto.
Fase 2:riduci il filesystem
Controlla il filesystem con e2fsck -f /dev/sdb1
(altrimenti il comando successivo, resize2fs
, potrebbe non funzionare):
Inoltre, assicurati che la dimensione del filesystem non superi i 2 GiB. Fornire /mnt
è vuoto, monta il filesystem con mount /dev/sdb1 /mnt
e controlla le sue dimensioni con df
:
Smonta il filesystem:umount /dev/sdb1
.
Andiamo:esegui resize2fs /dev/sdb1 2G
.
"2G" significa 2 GiB, puoi anche scriverlo "2048M". Quando ho fatto lo screenshot qui sotto, ho pensato erroneamente a resize2fs
inteso come 2000M, quindi invece ho fornito un numero di settori (4194304 * 512 byte per settore =2GiB). Il risultato è esattamente lo stesso.
Qui il programma riporta "524288 (4k) blocchi". 524288 * 4096 B =2 GiB, quindi va bene.
4k è la dimensione dell'unità (blocco) a livello di filesystem, mentre 512 è la dimensione dell'unità (settore) a livello di disco. Come faccio a sapere che è 512? Guarda lo screenshot "fdisk" qui sopra!
Passaggio 3:riduci la partizione
Finora, hai ridotto il filesystem, il che significa che non puoi aggiungere dati che non rientrano nella sua dimensione logica di 2 GiB. Ma la partizione, su cui si trova il filesystem, occupa ancora tutto lo spazio su disco.
Consiglio parted
per la gestione delle partizioni in Linux. Su Debian, scaricalo con apt install parted
. Questo strumento può essere utilizzato in modo interattivo. Avvialo con /dev/sdb
come argomento:
Usa unit s
, quindi tutte le dimensioni vengono visualizzate come numero di settori (anziché MiB, GiB, ecc.), utile per controllare le cose con precisione. In caso contrario, potresti riscontrare problemi come "La partizione risultante non è allineata correttamente per prestazioni ottimali" . Il print free
il comando ti consente di vedere lo stato del disco:
Vuoi che la partizione 1 sia lunga 2 GiB, che equivale a 2*1024*1024*1024/512 =4194304 settori.
Esegui resizepart 1
. Viene quindi richiesta la posizione sul disco, espressa in settori dall'inizio del disco, in cui deve terminare la partizione. Poiché esiste un'area riservata , prima della partizione, che termina al settore 2047, devi inserire 4194304 + 2047 =4196351s
.
Rispondi "Sì" dopo il messaggio di avviso, quindi print free
di nuovo per confermare che la partizione è stata ridimensionata.
Dalla mia esperienza, fermarsi qui e riavviare potrebbe "ripristinare" il layout della partizione nello stato precedente, ovvero come se non avessi mai ridotto la partizione!
Per "convalidare" le modifiche, è meglio aggiungere almeno una partizione nello spazio libero, ora.
Passaggio 4:aggiungi altre partizioni
Supponiamo di voler aggiungere una partizione Ext4 da 12 GiB dopo quella presa dal sistema operativo.
Innanzitutto, devi "dichiarare" la partizione, quindi viene aggiunta una voce nella tabella delle partizioni (da qualche parte nella zona riservata). Usa mkpart primary ext4
:
Come in questo esempio, avvia la partizione un settore dopo la fine di quello precedente, in modo da non sprecare spazio. Ecco 4196351 + 1 =4196352s
.
La fine è a 12*1024*1024*1024/512 settori (la dimensione desiderata per questa partizione) + 4196351 settori (l'offset per essere la seconda partizione) =29362175s
.
Quindi, esci da parted (C^d) e crea effettivamente un filesystem Ext4 su sdb2. Per applicare le impostazioni predefinite di Ext4, il comando è:
mkfs.ext4 /dev/sdb2
La fine
Questo articolo era solo un'introduzione su come manipolare partizioni e filesystem sulla riga di comando, concentrandosi sul caso pratico dei server che hanno una grande partizione per impostazione predefinita (e dove potresti volerla dividere). Spero sia stato utile.
Informazioni sull'autore:Paul Desplanque è autodidatta al 100% in cose relative ai computer. Con 8 anni di esperienza nello sviluppo di PHP alle spalle, Paul è piuttosto abile nell'auto-hosting.