Jak przenieść moją partycję główną LVM 250 GB na nowy dysk twardy 120 GB?

18

Mam następującą sytuację:

Moja obecna instalacja Ubuntu (12.04) jest uruchamiana z zewnętrznego dysku twardego (250 GB), ponieważ byłem leniwy, aby kupić nowy wewnętrzny dysk twardy. Teraz mam nowy wewnętrzny (120 GB) i chcę przenieść wszystko do wewnętrznego. Instalowanie nowego systemu Ubuntu nie jest dyskutowane, ponieważ jest on peronalizowany.

Na szczęście (mam nadzieję) partycja główna jest podzielona na partycje za pomocą LVM, więc mam nadzieję, że mogę przenieść partycję na mniejszy wewnętrzny dysk twardy.

czy to możliwe? A gdzie znajdę pomoc?

EDYCJA: To pytanie jest już dość stare i może być nieaktualne. Dodałem używaną wówczas wersję Ubuntu.

NotANormalNerd
źródło
powiązane pytanie - powyższe odpowiedzi nie są wystarczająco jasne ...
MeSo2
powyższe dwie odpowiedzi nie są dla mnie wystarczająco jasne. Więc zaczął nowy post.
MeSo2

Odpowiedzi:

39

Jak podejrzewasz, jest to niezwykle eleganckie przy użyciu LVM.

Zmniejsz istniejącą instalację, aby zmieściła się na mniejszym dysku.

Zainstaluj fizycznie nowy dysk twardy, sformatuj pvcreatego i użyj, vgextendaby dodać go do tego samego vg, co partycja root

Służy pvmovedo przezroczystego przenoszenia wszystkich danych ze starej partycji

Służy vgreducedo usuwania zewnętrznego dysku twardego z vg. Odłącz stary dysk / dev / sdOLD.

W poniższym przykładzie:

  • /dev/sdOLD oznacza starą partycję do zastąpienia
  • /dev/sdNEW oznacza zastąpienie nowej partycji.
  • vgX oznacza grupę woluminów

Przykład: Oczywiście musisz być w 100% pewien, że używasz odpowiednich urządzeń. Niezbędne jest także posiadanie kompletnych i aktualnych kopii zapasowych, które zostały usunięte z systemu.

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

Użyj update-grubi, grub-installaby uruchomić nowy dysk root

Gotowy.

Floyd
źródło
Byłoby miło, gdybyś przedstawił konkretne przykłady.
isaaclw
12
Ach, miło jest głosować na prawidłowy zaakceptowany post z pomocnymi informacjami. Celowo NIE podałem konkretnego przykładu, ponieważ istnieje niebezpieczeństwo, że ktoś bezmyślnie skopiuje to i wklei i zniszczy jego dane. Jeśli robisz cokolwiek z lvm, powinieneś być w stanie znaleźć swoje wskazówki na podstawie podanych przeze mnie wskazówek.
Floyd
2
Pracował również na Cento7. Podane tu kroki wystarczyły, żebym trochę się nauczył i trochę google. Spot-on
terary
centos: użyj grub2-mkconfig -o "$ (readlink -e /etc/grub2.cfg)" ... stąd
terary
21

Po pierwsze, jeśli wykorzystałeś cały dysk 250 GB do bieżącej instalacji, musisz go zmniejszyć, aby zmieścił się na dysku 120 GB. Możesz zminimalizować system plików ext4 tylko wtedy, gdy jest on odmontowany, więc musisz uruchomić system Ubuntu na żywo (CD lub USB) lub specjalistyczny system konserwacji na żywo, taki jak GParted Live . Możesz użyć resize2fslub GParted, aby zmienić rozmiar istniejącego systemu plików.

Po zmniejszeniu systemu plików istniejącej instalacji, aby zmieściły się na nowym dysku, możesz wykonać resztę ruchu z zamontowanym systemem plików, jeśli chcesz. Jeśli istniejący system plików mieści się na nowym dysku, możesz wykonać transfer bez odłączania czegokolwiek lub restartowania.

W poniższym opisie pokażę, jak przejść z woluminu fizycznego /dev/sdb1do woluminu fizycznego /dev/sda1przy użyciu istniejącej grupy woluminów oldvg. Dostosuj litery dysku i numery partycji do swojego systemu.

Aby wykonać transfer na żywo:

  1. Rozdzielić nowy dysk, przy użyciu narzędzia do partycjonowania do wyboru ( cfdisk, fdisk, parted, ...). Zobacz np. Jak dodać dodatkowy dysk twardy?
  2. Utwórz wolumin fizyczny na nowym dysku: pvcreate /dev/sda1
  3. Dodaj ten wolumin fizyczny do istniejącej grupy woluminów zawierającej woluminy logiczne, które chcesz przenieść: vgextend oldvg /dev/sda1
  4. Przenieś woluminy logiczne z jednego woluminu fizycznego do drugiego: pvmove /dev/sdb1 /dev/sda1
  5. Podziel istniejącą grupę woluminów na dwie części: vgsplit oldvg newvg /dev/sda1

Inną metodą jest uczynienie istniejących woluminów logicznych woluminami lustrzanymi lvconvert --mirror, skonfigurowanie kopii lustrzanej na nowym dysku, a następnie podział kopii lustrzanych za pomocą lvconvert --splitmirrors. W ten sposób powstają dwie kopie danych, a po podziale każda kopia prowadzi własne życie.

Po utworzeniu kopii nowy dysk będzie rozruchowy. Zamontuj w tym celu system plików. Zakładając, że jest on zamontowany /mnt, uruchom następujące polecenia jako root:

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

Alternatywnie możesz użyć Clonezilli . To potężne narzędzie do manipulacji dyskami i klonowania i myślę, że obejmuje twoją sytuację, ale nie mam z tym doświadczenia.

Gilles „SO- przestań być zły”
źródło
1
Jak odpowiedź, że w zasadzie mówi pvadd, pvmove, pvremovezostanie zaakceptowana przez to jest poza mną ...
owski
Zbyt skomplikowane, a nie to, czego potrzebuje
Floyd