Centos 7 Estende la partizione con spazio non allocato


14

Ho un server centos 7 (CentOS Linux release 7.3.1611 (Core))Quando ho aggiornato il mio server ho visto un errore, hai bisogno di spazio extra. Ma avevo un disco da 20 GB sul server quando controllo gli spazi su disco ho visto solo la partizione da 4,5 GB creata e la partizione da 16 GB è spazio libero non allocato. Come posso estendere la partizione da 16 GB di spazio libero?

lsblk:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0               2:0    1    4K  0 disk
sda               8:0    0   20G  0 disk
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0  4.5G  0 part
  ├─centos-root 253:0    0    4G  0 lvm  /
  └─centos-swap 253:1    0  512M  0 lvm  [SWAP]
sr0              11:0    1 1024M  0 rom

inserisci qui la descrizione dell'immagine


Risposte:


20

Sono necessari tre passaggi:

  1. modifica la tabella delle partizioni in modo che termini sda2alla fine del disco
  2. rileggi la tabella delle partizioni (richiederà un riavvio)
  3. ridimensiona il tuo pv LVM usando pvresize

Passaggio 1: tabella delle partizioni

Corri fdisk /dev/sda. Problema pper stampare la tabella delle partizioni corrente e copia che l'uscita in qualche luogo sicuro. Ora problema dseguito da 2per rimuovere la seconda partizione. Problema nper creare una nuova seconda partizione. Assicurarsi che l'inizio sia uguale all'inizio della tabella delle partizioni stampata in precedenza. Assicurarsi che la fine sia alla fine del disco (in genere l'impostazione predefinita).

Problema tseguito da 2seguito da 8eAttiva / Disattiva il tipo di partizione della nuova seconda partizione su 8e (Linux LVM).

Emetti un problema pper rivedere il tuo nuovo layout di partizione e assicurarti che l'inizio della nuova seconda partizione sia esattamente dove si trovava la seconda seconda partizione.

Se tutto sembra a posto, emetti wper scrivere la tabella delle partizioni sul disco. Riceverai un messaggio di errore da partprobe che la tabella delle partizioni non può essere riletta (perché il disco è in uso).

Riavvia il tuo sistema

Questo passaggio è necessario, quindi la tabella delle partizioni viene riletta.

Ridimensionare il PV LVM

Dopo il riavvio del sistema, richiamare pvresize /dev/sda2. Il volume LVM fisico ora si estenderà al resto dell'unità e sarà possibile creare o estendere volumi logici in quello spazio.


un'ottima soluzione, funziona perfettamente. ancora solo la parte su come estendere i volumi logici.
Mimouni,

Questa eccellente risposta si è fermata poco prima del traguardo! Ho capito come finirlo. L'esempio condiviso nella domanda mostrava due volumi logici sottostanti sda2: centos-roote centos-swap. In questo caso, il gruppo di volumi è centose i due volumi logici all'interno di quel gruppo sono roote swap. Se volessimo estendere il centos-rootvolume in questo esempio con il 50% dello spazio disponibile nella nostra sda2partizione appena estesa , utilizzeremmo lvextend -r -l +50%FREE /dev/centos/root. Il -rridimensiona il file system sottostante in modo che corrisponda al volume logico esteso.
Shadoninja,

@Shadoninja non rientra nell'ambito della domanda originale. Quindi non l'ho aggiunto e non lo aggiungerò a questa domanda in futuro.
Andreas Rogge,

@AndreasRogge Direi che rientra interamente nell'ambito di questa domanda in quanto la terminologia in questo spazio può essere confusa e facile da confondere. Vale la pena pubblicare un riepilogo completo di come ottenere spazio su disco non allocato utilizzabile dal file system poiché questo sarà un motivo estremamente comune per le persone a trovare questa domanda.
Shadoninja,

13

Puoi farlo senza riavviare in CentOS 7. Supponendo che il tuo disco sia / dev / vda e il partizionamento standard RHEL / CentOS:

Estendi partizione

# fdisk /dev/vda

Invio pper stampare la tabella delle partizioni iniziale.

Immettere d(elimina) seguito da 2per eliminare la definizione di partizione esistente (la partizione 1 in genere è / boot e la partizione 2 in genere è la partizione root).

Immettere n(nuovo) seguito da p(primario) seguito da 2ricreare la partizione numero 2 e enterper accettare il blocco iniziale e di enternuovo per accettare il blocco finale predefinito alla fine del disco.

Enter t(tipo) quindi 2poi 8edi cambiare il nuovo tipo di partizione a "Linux LVM".

Invio pper stampare la nuova tabella delle partizioni e assicurarsi che il blocco iniziale corrisponda a quello che era nella tabella delle partizioni iniziale stampata sopra.

Invio wper scrivere la tabella delle partizioni sul disco. Vedrai un errore su Device or resource busycui puoi ignorare.

Aggiorna la tabella delle partizioni in memoria del kernel

Dopo aver modificato la tabella delle partizioni, eseguire il comando seguente per aggiornare la tabella delle partizioni in memoria del kernel:

# partx -u /dev/vda

Ridimensiona il volume fisico

Ridimensiona il PV per riconoscere lo spazio extra

# pvresize /dev/vda2

Ridimensiona LV e filesystem

In questo comando centosè PV, rootè LV ed /dev/vda2è la partizione che è stata estesa. Usa pvse lvscomandi per vedere i nomi dei tuoi volumi fisici e logici se non li conosci. L' -ropzione in questo comando ridimensiona il filesystem in modo appropriato in modo da non dover chiamare resize2fso xfs_growfsseparatamente.

# lvextend -r centos/root /dev/vda2

Risposta più complicata di quella "risposta selezionata"!
Furkat U.

È brillante. Grazie! Questa dovrebbe essere la risposta accettata. Mi mancava l'ultimo passaggio per ridimensionare il file lv e il file system!
Skinner927,

4

Per coloro che hanno problemi ad estendere volumi logici come me, leggere questo post potrebbe essere d'aiuto. In breve, è possibile utilizzare lvextendper estendere il volume logico: lvextend -l +<PE> <LV_PATH> è possibile ottenere il numero di PE ( <PE>) rimanenti vgdisplaye ottenere il percorso del volume logico ( LV_PATH) di lvdisplay.

Quindi, a seconda della tua distribuzione, vuoi xfs_growfs <LV_PATH>(Centos 7) o resize2fs <LV_PATH>ridimensionare finalmente.


0

Dai un'occhiata: tutto su un'unica riga, senza domande:

parted —pretend-input-tty /dev/vda resizepart 2 100%;
partx -u /dev/vda; pvresize /dev/vda2;
lvextend -r centos/var /dev/vda2

Dovresti considerare di aggiungere spiegazioni e il tuo ambiente. Ad esempio, il mio partx non ha l'opzione -u(Centos6.7 util-linux-ng-2.17.2-12.28.el6).
Boop,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.