Bagaimana saya bisa mengubah ukuran partisi LVM? (yaitu: volume fisik)

89

Saya ingin mengecilkan partisi (LVM) kedua saya, untuk membuat partisi baru di ruang yang baru dibebaskan. Saya menggunakan Live CD untuk melakukannya, karena saya tahu saya tidak dapat mengubah ukuran / memindahkan partisi ini saat sedang digunakan. Ketika saya membuka GParted di Live CD, saya menyadari bahwa saya tidak dapat mengubah ukuran partisi, karena ketika saya klik kanan, opsi "resize / move" dinonaktifkan.

Saya mencoba meng-unmount, "malas" melepasnya ( umount -l /dev/sda2) tetapi tidak berhasil.

Tangkapan layar dari GParted:

Tangkapan layar GParted

Idan Yadgar
sumber

Jawaban:

49

Tampaknya ada banyak hasil di Google di mana orang memiliki masalah yang sama. Sebuah contoh:

Cadangkan semua data penting Anda sebelum mencoba ini. Selalu berasumsi bahwa Anda dapat kehilangan semua data saat mengubah ukuran partisi.

Kecilkan LVM tanpa dataloss

Utas forum ini menyarankan prosedur berikut, dalam contoh ini kami mengecilkan partisi dari 10G menjadi 9G:

Pertama, kami melepas.

sudo umount /dev/vg_blah/lv_blah

Periksa sistem file.

sudo e2fsck -f /dev/vg_blah/lv_blah

Ubah ukuran sistem file dan volume logis. Melakukan ini dalam satu langkah dapat menghindari kesalahan yang menyebabkan dataloss. (Perhatikan lvreduce parameter -Lmengartikan Gsebagai 2 ^ 30 byte dan g10 ^ 9 byte.)

sudo lvreduce --resizefs -L 9G /dev/vg_blah/lv_blah

(opsional) Hapus drive fisik dari grup volume jika diinginkan (jika sekarang Anda memiliki drive yang tidak digunakan).

sudo vgreduce vg_blah /dev/sdxy

Semua kredit diberikan kepada brianmcgee .

Catatan: vgreduceakan gagal dengan cannot resize to xxxxx extents as later ones are allocatedjika Anda memiliki lv lain di akhir disk - saya punya lv swap, yang saya hapus. Lihat Bagaimana cara mengecilkan volume logis dan fisik LVM Ubuntu? untuk bantuan tentang situasi itu.

pzkpfw
sumber
1
e2fsck -f /dev/vg_blah/lv_blahkembali: "e2fsck: Perangkat atau sumber daya sibuk ketika mencoba untuk membuka / dev / sda2 Filesystem yang dipasang atau dibuka secara eksklusif oleh program lain?", sama dengan resize2fs ...
Idan Yadgar
12
Jawabannya tidak ada cara mengubah ukuran volume fisik. Juga, saya sangat merekomendasikan menggabungkan dua langkah ukuran menjadi satu dengan lvreduce -r.
Flimm
4
Juga, Anda perlu menyadari bahwa 1Gto lvreduceadalah 1000000000 byte, sedangkan untuk resize2fsitu adalah gibibyte. Jika Anda ingin meneruskan 1 gibibyte lvreduce, gunakan 1gsaja.
Flimm
1
Anda tidak menggunakan vgreduce; itu untuk menghapus pv dari grup volume.
psusi
2
Saya sangat curiga lvreducemenggunakan G = gibibyte dalam mode diferensial. Ini tentu saja dalam mode absolut. Halaman manualnya ditulis dengan buruk dan tidak menjelaskan apa arti unit mereka, yang saya anggap berbatasan dengan kelalaian kriminal.
Urhixidur
45

Anda dapat mengecilkan / memperbesar volume logis sangat mudah dengan alat GUI: system-config-lvm. Karena system-config-lvmtidak datang pra-instal, setelah boot dari live-cd, Anda harus menginstalnya:

sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
sudo apt-get update
sudo apt-get install system-config-lvm

Setelah terinstal, jalankan program, pilih volume logis yang ingin Anda ubah di panel kiri, klik 'Edit Properties'.

Program Manajemen Volume Logika Utama GUI

Sekarang ubah parameter sesuai keinginan!

Edit jendela Volume Logis

Satu hal yang baik tentang itu system-config-lvmadalah tidak akan memungkinkan Anda untuk melanjutkan jika ukuran partisi baru lebih kecil dari semua data yang ada digabungkan (saya baru saja mencoba ini dan melihat sendiri).

Referensi:

  1. Tutorial How-To Geek (ini adalah asal-usul gambar).
  2. Panduan lengkap Red Hat untuk program ini.
Cao Minh Tu
sumber
2
GUI jelas merupakan cara untuk melakukannya, namun Anda mungkin harus menjalankannya dari live CD.
Mike
10
mengapa system-config-lvmlebih berisiko daripada lvresizeatau lvresize -r?
Thufir
1
Anda juga bisa mencoba blivet-gui ( github , Ubuntu PPA ), manajer partisi generasi berikutnya yang menangani drive LVM.
bain
5
Berhati-hatilah bahwa sistem-config-lvm menggunakan kekuatan-of-1024 unit, meskipun menggunakan kata-kata 'gigabyte' (salah). Ini benar-benar harus dilakukan seperti palimpsest(alias Disk Utility) dan tentukan artinya dalam byte yang jelas.
Urhixidur
4
@Suncatcher pada 17.10 dan 18.04 Anda harus menambahkan repositori Xenial. sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial universe"
m93a
24

Catatan : Anda harus menjalankan hampir semua perintah berikut menggunakan Live CD. Terkadang, ia ingin Anda melepas partisi yang sudah terpasang pada / (dalam hal ini, Anda tidak dapat melepasnya).

Ini adalah semua langkah yang diperlukan untuk mengubah ukuran partisi LVM atau LVM2:

sudo lvresize --verbose --resizefs -L -150G /dev/mapper/ubuntu

sudo pvresize --setphysicalvolumesize {some-space} /dev/sda5

Jika perintah kedua menghasilkan sesuatu seperti ini:

/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.

Kemudian, Anda harus mengatur ulang ruang yang tidak terisi pada akhir LVM. Itu berarti setelah partisi root dan swap_1. Jadi, pada awalnya, Anda perlu memeriksa informasi volume fisik menggunakan perintah di bawah ini:

sudo pvs -v --segments /dev/sda5

Ini akan menampilkan output seperti:

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g   0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx sss 0 free                          
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g zzz ttt swap 0 linear /dev/sda5:yyy-www

Perhatikan yyy-www . Gunakan perintah berikut untuk menghapus fragmentasi eksternal:

sudo pvmove --alloc anywhere /dev/sda5:yyy-www

Sekarang, mari kita lihat bagaimana kelanjutannya:

sudo pvs -v --segments /dev/sda5

Ini akan menampilkan output seperti (perhatikan perubahan):

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g   0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx ttt swap 0 linear /dev/sda5:xxx-sss
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyy www 0 free

Setelah itu, gunakan GParted dan ubah ukuran LVM ke area yang digunakan maksimum dan sisanya akan berada di ruang yang tidak terisi. Nikmati...

UJJAL
sumber
16

Saya akan merekomendasikan alat GUI lain - KVPM . Ini menggabungkan fungsionalitas GParted dan system-config-lvm. Selain itu, ini memungkinkan beberapa operasi pada partisi live (mount) yang tidak diizinkan oleh sistem-config-lvm Namun, volume harus di-unmount untuk menyusut.

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Itu ada di repositori semesta sejak Ubuntu 12.04, jadi lakukan saja sudo apt-get install kvpm

Catatan: mulai dengan hak root sudo kvpm

Kos
sumber
itu bukan di repositori alam semesta:E: Unable to locate package kvpm
Jeff Puckett
Ini bekerja untuk saya, di mana "system-config-lvm" tidak memuat perangkat / drive / filesystem yang terhubung. Dengan bonus tambahan karena tidak harus mengunduh dan repositori tambahan dan telah dikonfigurasikan sebelumnya pada mesin Ubuntu saya. Juga, bekerja lebih dari Gparted karena itu meludah kesalahan tentang sistem file yang berkurang terlalu banyak. (Saya mengubah ukuran Kartu SD RetroOrangepi turun dari 32GB menjadi 8GB untuk keperluan pencadangan)
BiTinerary
Terlihat bagus, berpikir mungkin butuh tambahan ~ 100 juta untuk semua dependensi K lainnya, jika Anda belum menggunakan KDE
Xen2050
12

Hanya versi terbaru dari Gparted (0.14) yang mendukung pengubahan ukuran volume fisik LVM. Versi yang dikirimkan bersama Ubuntu 12.10 atau 13.04 tidak mendukungnya.

Berikut cara mengubah ukuran volume fisik LVM:

  1. Jika grup volume yang terkait dengan volume fisik LVM tidak memiliki cukup ruang yang tidak terisi, Anda harus membuatnya dengan menyusutkan volume logis. Lihatlah jawaban bigbadonk420 untuk instruksi tentang cara melakukan itu. Anda juga dapat menggunakan Disk GNOME (disertakan dengan Ubuntu) untuk beberapa langkah jika Anda lebih memilih GUI.

  2. Bakar gambar .iso terbaru dari situs web GParted , dan bakar di CD atau letakkan di USB stick. Boot dari CD atau stik USB. Atau, Anda bisa mengkompilasi versi terbaru dari GParted from source.

  3. Gunakan GParted untuk mengubah ukuran volume fisik LVM. GParted tidak akan membiarkan Anda mengecilkan volume fisik LVM ke ukuran yang lebih kecil dari yang dimungkinkan oleh ruang yang tidak terisi.

Flimm
sumber
Terima kasih Flimm. Saya mengharapkan 12.10 memiliki versi gparted yang cukup baru. Jawaban Anda mengarahkan saya ke arah yang benar.
Martijn Heemels
1
Saya mendapatkan gparted terbaru, tetapi tidak akan membiarkan saya mengubah ukuran partisi ... Saya memiliki / dev / sda2 dari tipe ext2 dan di bawah itu, / dev / sda5 dari tipe lvm2. Tapi gparted mengatakan untuk kedua ukuran min dan max itu sama, dan oleh karena itu tidak memungkinkan saya untuk mengubahnya ... :-(
Paul
Atau penggunaan pvresizesuite LVM2, kan?
203967
@ Paul apakah Anda menyelesaikannya? Saya memiliki masalah yang persis sama: S
Castiblanco
@Castiblanco Saya tidak menyelesaikannya, saya akhirnya menghapus semuanya dan menginstal ulang tanpa LVM. Bagi saya, satu pelajaran yang dipetik: Jangan gunakan LVM untuk instalasi desktop standar.
Paul
9

Saya menemukan jawaban ini secara tidak sengaja, tetapi setidaknya ini berhasil bagi saya. Dalam kasus saya, saya sudah memiliki ruang disk yang tidak terisi yang dicadangkan setelah root, jadi saya melewatkan bagian bagaimana Anda mendapatkan lebih banyak ruang dan hanya menjelaskan bagaimana saya menggunakannya pada root tanpa booting.

CATATAN: Daripada menggunakan gparted, Anda mungkin lebih baik menggunakan system-config-lvm. Lain kali saya akan menggunakan yang itu ... Versi gparted saya adalah 0,18.

  1. Pertama saya gunakan gparteduntuk memperluas partisi root sebanyak yang saya bisa. Yang mengejutkan saya itu hanya memperluas ukuran fisik dan tidak melakukan apa pun pada bagian logis. Jadi df -kperintah mengatakan bahwa disk masih penuh.
  2. lvresize -l +100%FREE /dev/ubuntu-vg/rootmemperluas partisi logis sejauh mungkin. Tidak perlu memeriksa dan menghitung GB atau blok dalam berbagai metode.
  3. resize2fs /dev/ubuntu-vg/root kemudian langkah ketiga yang saya lakukan: memperluas sistem file ke ukuran partisi logis.

Langkah terakhir dapat digabungkan menjadi yang kedua:

lvresize -l +100%FREE --resizefs /dev/ubuntu-vg/root

Timo Riikonen
sumber
Ini memungkinkan Anda mengecilkan volume logis, tetapi pertanyaan OP adalah tentang menyusutkan volume fisik.
Stefan
kamu menyelamatkan hidupku
Quang Ha
1

Selain @ bigbadonk420 's jawaban , Daripada melakukan hal berikut:

resize2fs -p /dev/vg_blah/lv_blah 9G
lvreduce -L -1G /dev/vg_blah/lv_blah

Melakukan:

lvreduce -r -L 9G /dev/vg_blah/lv_blah

Perhatikan -ryang mengurangi sistem file secara bersamaan dan aman.

eyeinsky
sumber
Tapi itu tidak mengecilkan volume fisik .
Stefan
0

Peringatan tentang jawaban yang paling banyak dipilih saat ini : Untuk TIDAK menghancurkan instalasi default baru Anda dengan opsi LVM (14,04 Tahr Trusty), 1) membaca seluruh halaman, 2) hapus swap 3) dan mungkin memodifikasi perintah untuk "Mengurangi ukuran logis volume "seperti ini:

lvreduce -L -1g /dev/vg_blah/lv_blah

Saya sangat merekomendasikan system-config-lvm.

user293759
sumber
Sekali lagi, OP ingin mengurangi volume fisik .
Stefan
0

Untuk melakukannya menggunakan GParted, klik kanan pada dev / sda2 (yang ingin Anda susutkan). Pilih 'Nonaktifkan'. Sekarang Anda dapat mengubah ukuran partisi lvm Anda.

Pembaruan: Solusi @Cao Min Tu jauh lebih baik. Saya memiliki beberapa masalah dengan GParted setelah mengubah ukuran

Junaid
sumber