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.