Bagaimana cara memindahkan partisi root LVM 250 GB saya ke hard disk 120GB yang baru?

18

Saya memiliki situasi berikut:

Instalasi Ubuntu saya saat ini (12,04) berjalan dari HDD eksternal (250 GB) karena saya malas membeli hdd internal baru. Sekarang saya punya internal baru (120GB) dan saya ingin memindahkan semuanya ke internal. Menginstal Ubuntu baru tidak dapat didiskusi karena bersifat peronalized.

Untungnya (saya harap begitu) partisi root dipartisi dengan LVM, jadi saya harap saya dapat memindahkan partisi ke HDD internal yang lebih kecil.

Apakah ini mungkin? Dan di mana saya mendapatkan bantuan?

EDIT: Pertanyaan ini sudah cukup lama dan bisa usang. Saya menambahkan versi Ubuntu yang digunakan saat itu.

NotNormalNerd
sumber
pertanyaan terkait - jawaban di atas tidak cukup jelas ...
MeSo2
dua jawaban di atas tidak cukup jelas bagi saya. Jadi mulai posting baru.
MeSo2

Jawaban:

39

Seperti yang Anda duga, ini sangat elegan untuk dilakukan menggunakan LVM.

Kecilkan instalasi yang ada agar sesuai dengan disk yang lebih kecil.

Secara fisik instal harddisk baru, format dan pvcreateitu, gunakan vgextenduntuk menambahkannya ke vg yang sama dengan partisi root Anda

Gunakan pvmoveuntuk memindahkan semua data secara transparan dari partisi lama

Gunakan vgreduceuntuk menghapus hd eksternal Anda dari vg Anda. Cabut disk lama / dev / sdOLD.

Dalam contoh di bawah ini:

  • /dev/sdOLD singkatan partisi lama untuk diganti
  • /dev/sdNEW singkatan partisi baru untuk menggantikannya.
  • vgX singkatan dari grup volume

Contoh: Tentu saja, Anda harus 100% yakin bahwa Anda menggunakan perangkat yang tepat. Juga, memiliki cadangan lengkap dan terbaru, dihapus dari sistem, sangat penting.

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

Gunakan update-grubdan grub-installuntuk membuat disk root baru Anda dapat di-boot

Selesai

Floyd
sumber
Akan lebih baik jika Anda memberikan contoh nyata.
isaaclw
12
Ah, itu bagus memilih posting yang diterima yang valid dengan informasi bermanfaat. Saya sengaja TIDAK memberikan contoh konkret, karena bahayanya seseorang akan secara sembarangan menyalin-menempelkannya dan menghancurkan datanya. Jika Anda melakukan sesuatu dengan lvm, Anda harus dapat menemukan Anda sesuai dengan petunjuk yang saya berikan.
Floyd
2
Bekerja pada Cento7 juga. Langkah-langkah yang disediakan di sini cukup bagi saya untuk belajar sedikit dan sedikit google. Spot-on
terary
CentOS: penggunaan grub2-mkconfig -o "$ (readlink -e /etc/grub2.cfg)" ... dari sini
terary
21

Pertama, jika Anda menggunakan seluruh disk 250GB untuk instalasi Anda saat ini, Anda harus mengecilkannya agar sesuai dengan disk 120GB. Anda hanya dapat mengecilkan sistem file ext4 saat tidak di-mount, jadi Anda harus mem-boot sistem live Ubuntu (CD atau USB), atau sistem live perawatan khusus seperti GParted live . Anda dapat menggunakan resize2fsatau GParted untuk mengubah ukuran sistem file yang ada.

Setelah menyusut filesystem instalasi yang ada agar sesuai dengan disk baru, Anda dapat melakukan langkah selanjutnya dengan menginstal filesystem jika Anda mau. Jika sistem file yang ada cocok dengan disk baru, Anda dapat melakukan transfer tanpa melepas apa pun atau me-reboot.

Dalam uraian berikut, saya akan menunjukkan cara pindah dari volume fisik /dev/sdb1ke volume fisik /dev/sda1, dengan grup volume yang ada dipanggil oldvg. Pastikan untuk menyesuaikan huruf disk dan nomor partisi agar sesuai dengan sistem Anda.

Untuk melakukan transfer langsung:

  1. Partisi disk baru, menggunakan alat partisi pilihan Anda ( cfdisk, fdisk, parted, ...). Lihat misalnya Bagaimana cara menambahkan hard drive tambahan?
  2. Buat volume fisik pada disk baru: pvcreate /dev/sda1
  3. Tambahkan volume fisik ini ke grup volume yang ada yang berisi volume logis yang ingin Anda pindahkan: vgextend oldvg /dev/sda1
  4. Pindahkan volume logis dari satu volume fisik ke volume lain: pvmove /dev/sdb1 /dev/sda1
  5. Membagi grup volume yang ada menjadi dua: vgsplit oldvg newvg /dev/sda1

Metode lain adalah dengan membuat volume logis yang ada dengan volume cermin lvconvert --mirror, mengatur cermin pada disk baru, lalu membaginya dengan cermin lvconvert --splitmirrors. Dengan cara ini, Anda berakhir dengan dua salinan data Anda, dan setelah pemisahan masing-masing salinan mengarah pada kehidupannya sendiri.

Setelah Anda selesai menyalin, Anda harus membuat cakram yang baru dapat di-boot. Pasang sistem file untuk ini. Dengan asumsi sudah terpasang /mnt, jalankan perintah ini sebagai root:

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

Atau, Anda mungkin dapat menggunakan Clonezilla . Ini adalah alat manipulasi dan kloning disk yang kuat, dan saya pikir itu mencakup situasi Anda, tapi saya tidak punya pengalaman dengannya.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
Bagaimana jawaban yang pada dasarnya mengatakan pvadd, pvmove, pvremovediterima atas INI adalah di luar saya ...
ish
Terlalu rumit dan bukan apa yang dia butuhkan
Floyd