Come posso spostare la mia partizione radice LVM da 250 GB su un nuovo disco rigido da 120 GB?


18

Ho la seguente situazione:

La mia attuale installazione di Ubuntu (12.04) è in esecuzione da un HDD esterno (250 GB) perché ero troppo pigro per acquistare un nuovo disco fisso interno. Ora ho un nuovo interno (120 GB) e voglio spostare tutto all'interno. L'installazione di Ubuntu new è fuori discussione perché è peronalizzata.

Fortunatamente (lo spero) la partizione di root è partizionata con LVM, quindi spero di poter spostare la partizione sul disco rigido interno più piccolo.

È possibile? E dove trovo aiuto?

EDIT: questa domanda è già piuttosto vecchia e potrebbe essere obsoleta. Ho aggiunto la versione di Ubuntu utilizzata allora.


domanda correlata - le risposte sopra non sono abbastanza chiare ...
MeSo2

le due risposte precedenti non sono abbastanza chiare per me. Quindi un ha iniziato un nuovo post.
MeSo2,

Risposte:


39

Come sospetti, è estremamente elegante fare LVM.

Riduci l'installazione esistente per adattarla al disco più piccolo.

Fisicamente installare il nuovo disco rigido, formato e pvcreateche, utilizzare vgextendper aggiungerlo alla stessa vg come la vostra partizione di root

Utilizzare pvmoveper spostare in modo trasparente tutti i dati dalla vecchia partizione

Usa vgreduceper rimuovere il tuo hd esterno dal tuo vg. Scollegare il vecchio disco / dev / sdOLD.

Nell'esempio seguente:

  • /dev/sdOLD sta per sostituire la vecchia partizione
  • /dev/sdNEW significa che la nuova partizione prenderà il suo posto.
  • vgX sta per il gruppo di volumi

Esempio: certo, devi essere sicuro al 100% di utilizzare i dispositivi giusti. Inoltre, disporre di backup completi e aggiornati, rimossi dal sistema, è essenziale.

pvcreate /dev/sdNEW
vgextend vgX /dev/sdNEW
pvmove /dev/sdOLD
vgreduce vgX /dev/sdOLD

Utilizzare update-grube grub-installper avviare il nuovo disco di root

Fatto.


Sarebbe stato carino se avessi fornito esempi concreti.
Isaaclw,

12
Ah, è bello votare un post accettato valido con informazioni utili. Non ho intenzionalmente dato un esempio concreto, perché il pericolo è che qualcuno lo copi e lo distrutti senza pensarci e distrugga i suoi dati. Se fai qualcosa con lvm, dovresti essere in grado di trovare il tuo orientamento con i puntatori che do.
Floyd,

2
Ha lavorato anche su Cento7. I passaggi forniti qui sono stati sufficienti per imparare un po 'e google un po'. Spot-on
terary

centos: usa grub2-mkconfig -o "$ (readlink -e /etc/grub2.cfg)" ... da qui
terary

21

Innanzitutto, se hai utilizzato l'intero disco da 250 GB per l'installazione corrente, dovrai ridurlo per adattarlo al disco da 120 GB. Puoi ridurre un filesystem ext4 solo quando è smontato, quindi dovrai avviare un sistema live di Ubuntu (CD o USB) o un sistema live di manutenzione specializzato come GParted live . Puoi usare resize2fso GParted per ridimensionare il filesystem esistente.

Dopo aver ridotto i filesystem dell'installazione esistente per adattarli al nuovo disco, è possibile eseguire il resto dello spostamento con il filesystem montato, se lo si desidera. Se il file system esistente si adatta al nuovo disco, è possibile eseguire il trasferimento senza smontare nulla o riavviare.

Nella seguente descrizione, mostrerò come passare dal volume fisico /dev/sdb1al volume fisico /dev/sda1, con un gruppo di volumi esistente chiamato oldvg. Assicurati di regolare le lettere del disco e i numeri di partizione in modo che corrispondano al tuo sistema.

Per effettuare un trasferimento live:

  1. Partizionare il nuovo disco, utilizzando lo strumento di partizionamento di vostra scelta ( cfdisk, fdisk, parted, ...). Vedi ad es. Come posso aggiungere un disco rigido aggiuntivo?
  2. Crea un volume fisico sul nuovo disco: pvcreate /dev/sda1
  3. Aggiungere questo volume fisico al gruppo di volumi esistente contenente i volumi logici che si desidera spostare: vgextend oldvg /dev/sda1
  4. Spostare i volumi logici da un volume fisico a un altro: pvmove /dev/sdb1 /dev/sda1
  5. Dividi il gruppo di volumi esistente in due: vgsplit oldvg newvg /dev/sda1

Un altro metodo consiste nel rendere i volumi logici esistenti un volume mirror con lvconvert --mirror, impostare un mirror sul nuovo disco, quindi dividere i mirror con lvconvert --splitmirrors. In questo modo, finisci con due copie dei tuoi dati e dopo la divisione ogni copia conduce la sua vita.

Dopo aver eseguito la copia, dovrai rendere avviabile il nuovo disco. Montare il filesystem per questo. Supponendo che sia montato /mnt, esegui questi comandi come root:

chroot /mnt
# if the name of the volume group has changed, edit /etc/fstab
update-grub
grub-install /dev/sda

In alternativa, potresti essere in grado di utilizzare Clonezilla . Questo è un potente strumento di manipolazione e clonazione del disco, e penso che copra la tua situazione, ma non ne ho esperienza.


1
Come una risposta che dice sostanzialmente pvadd, pvmove, pvremoveviene accettata su QUESTO è al di là di me ...
ish

Troppo complicato e non quello di cui ha bisogno
Floyd,
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.