Làm cách nào để thay đổi kích thước phân vùng LVM? (tức là: khối lượng vật lý)


89

Tôi muốn thu nhỏ phân vùng thứ hai (LVM) của mình để tạo phân vùng mới trong không gian mới được giải phóng. Tôi đang sử dụng Live CD để làm như vậy, vì tôi biết tôi không thể thay đổi kích thước / di chuyển phân vùng này trong khi nó đang được sử dụng. Khi tôi mở GParted trong Live CD, tôi nhận ra rằng tôi không thể thay đổi kích thước phân vùng, vì khi tôi nhấp chuột phải vào nó, tùy chọn "thay đổi kích thước / di chuyển" bị vô hiệu hóa.

Tôi đã cố gắng để ngắt kết nối nó, để "lười biếng" tháo gỡ nó ( umount -l /dev/sda2) nhưng nó không hoạt động.

Ảnh chụp màn hình từ GParted:

Ảnh chụp màn hình GParted

Câu trả lời:


49

Dường như có rất nhiều kết quả trên Google nơi mọi người gặp vấn đề tương tự. Một ví dụ:

Sao lưu tất cả dữ liệu quan trọng của bạn trước khi thử điều này. Luôn cho rằng bạn có thể mất tất cả dữ liệu khi thay đổi kích thước phân vùng.

Thu nhỏ LVM mà không cần dataloss

Chủ đề diễn đàn này đề xuất quy trình sau, trong ví dụ này, chúng tôi thu nhỏ phân vùng từ 10G xuống 9G:

Đầu tiên, chúng tôi tháo gỡ.

sudo umount /dev/vg_blah/lv_blah

Kiểm tra hệ thống tập tin.

sudo e2fsck -f /dev/vg_blah/lv_blah

Thay đổi kích thước hệ thống tập tin và khối lượng logic. Làm điều này trong một bước có thể tránh những sai lầm gây ra dataloss. (Lưu ý thông số lvreduce -Ldiễn giải Glà 2 ^ 30 byte và g10 ^ 9 byte.)

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

(tùy chọn) Xóa ổ đĩa vật lý khỏi nhóm âm lượng nếu muốn (nếu bây giờ bạn có ổ đĩa không sử dụng).

sudo vgreduce vg_blah /dev/sdxy

Tất cả tín dụng vào brianmcgee .

Lưu ý: vgreducesẽ thất bại cannot resize to xxxxx extents as later ones are allocatednếu bạn có một lv khác ở cuối đĩa - Tôi đã có một lv trao đổi, mà tôi đã xóa. Xem Làm thế nào để thu nhỏ khối lượng vật lý và logic của Ubuntu LVM? để được giúp đỡ về tình huống đó.


1
e2fsck -f /dev/vg_blah/lv_blahtrả về: "e2fsck: Thiết bị hoặc tài nguyên bận trong khi cố gắng mở / dev / sda2 Hệ thống tập tin được gắn hoặc mở độc quyền bởi một chương trình khác?", giống với resize2fs ...
Idan Yadgar

12
Câu trả lời là thiếu làm thế nào để thay đổi kích thước âm lượng vật lý. Ngoài ra, tôi đặc biệt khuyên bạn nên kết hợp hai bước thay đổi kích thước thành một với lvreduce -r.
Flimm

4
Ngoài ra, bạn cần phải nhận ra rằng 1Gđể lvreducelà 1000000000 byte, trong khi để resize2fsnó là một Gibibyte. Nếu bạn muốn truyền 1 gibibyte cho lvreduce, hãy sử dụng 1gthay thế.
Flimm

1
Bạn không sử dụng vgreduce; đó là để loại bỏ một pv từ một nhóm âm lượng.
psusi

2
Tôi nghi ngờ mạnh mẽ lvreducesử dụng G = gibibyte trong chế độ khác biệt. Nó chắc chắn làm trong chế độ tuyệt đối. Các trang của nó được viết kém và không giải thích ý nghĩa của các đơn vị của chúng, mà tôi cho là giáp với sơ suất của tội phạm.
Urhixidur

45

Bạn có thể thu nhỏ / mở rộng âm lượng logic rất dễ dàng bằng công cụ GUI : system-config-lvm. Vì system-config-lvmkhông được cài đặt sẵn, nên khi đã khởi động từ đĩa cd trực tiếp, bạn phải cài đặt nó:

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

Sau khi được cài đặt, hãy chạy chương trình, chọn âm lượng logic bạn muốn thay đổi trong bảng điều khiển bên trái, nhấp vào 'Chỉnh sửa thuộc tính'.

GUI chương trình quản lý khối lượng logic chính

Bây giờ thay đổi các tham số như bạn muốn!

Chỉnh sửa cửa sổ khối lượng logic

Một điều tốt system-config-lvmlà nó sẽ không cho phép bạn đi trước nếu kích thước phân vùng mới nhỏ hơn tất cả dữ liệu hiện có của bạn kết hợp (Tôi đã thử điều này và tự mình nhìn thấy).

Người giới thiệu:

  1. Hướng dẫn How-To Geek (đây là nguồn gốc của hình ảnh).
  2. Hướng dẫn đầy đủ của Red Hat cho chương trình.

2
GUI chắc chắn là con đường để đi, tuy nhiên bạn có thể sẽ cần phải chạy nó từ đĩa CD trực tiếp.
Mike

10
Tại sao system-config-lvmrủi ro hơn lvresizehoặc lvresize -r?
Thufir

1
Bạn cũng có thể thử blivet-gui ( github , Ubuntu PPA ), trình quản lý phân vùng thế hệ tiếp theo xử lý các ổ đĩa LVM.
Bain

5
Coi chừng hệ thống-config-lvm sử dụng đơn vị lũy thừa 1024, mặc dù sử dụng từ ngữ 'gigabyte' (không chính xác). Nó thực sự nên làm như palimpsest(hay còn gọi là Disk Utility) và chỉ định ý nghĩa của nó trong các byte rõ ràng.
Urhixidur

4
@Suncatcher ngày 17.10 và 18.04 bạn phải thêm kho Xenial. sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial universe"
m93a

24

Lưu ý : Bạn nên chạy gần như tất cả các lệnh sau bằng Live CD. Đôi khi, nó muốn bạn ngắt kết nối phân vùng đã được gắn trên / (trong trường hợp này, bạn không thể ngắt kết nối nó).

Đây là tất cả các bước cần thiết để thay đổi kích thước phân vùng LVM hoặc LVM2:

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

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

Nếu lệnh thứ hai tạo ra một cái gì đó như thế này:

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

Sau đó, bạn phải sắp xếp lại không gian chưa phân bổ ở cuối LVM. Điều đó có nghĩa là sau phân vùng root và exchange_1. Vì vậy, ban đầu, bạn cần kiểm tra thông tin của khối lượng vật lý bằng cách sử dụng lệnh bên dưới:

sudo pvs -v --segments /dev/sda5

Điều này sẽ hiển thị đầu ra như:

/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

Lưu ý yyy-www . Sử dụng lệnh sau để loại bỏ phân mảnh bên ngoài:

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

Bây giờ, chúng ta hãy xem nó diễn ra như thế nào:

sudo pvs -v --segments /dev/sda5

Điều này sẽ hiển thị đầu ra như (lưu ý các thay đổi):

/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

Sau đó, sử dụng GParted và thay đổi kích thước LVM thành diện tích sử dụng tối đa và phần còn lại sẽ ở trong không gian chưa phân bổ. Thưởng thức...


16

Tôi muốn giới thiệu một công cụ GUI khác - KVPM . Nó kết hợp chức năng của GParted và system-config-lvm. Hơn nữa, nó cho phép một số thao tác trên các phân vùng (gắn kết) trực tiếp mà system-config-lvm không cho phép Tuy nhiên, âm lượng phải được ngắt để thu hẹp.

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Nó nằm trong kho vũ trụ kể từ Ubuntu 12.04, vì vậy hãy làm sudo apt-get install kvpm

Lưu ý: bắt đầu với quyền root sudo kvpm


nó không có trong kho vũ trụ:E: Unable to locate package kvpm
Jeff Puckett


Điều này làm việc cho tôi, trong đó "system-config-lvm" không tải bất kỳ thiết bị / ổ đĩa / hệ thống tập tin nào được kết nối. Với phần thưởng bổ sung là không phải tải xuống và thêm kho lưu trữ và được cấu hình sẵn trên máy Ubuntu của tôi. Ngoài ra, đã làm việc trên Gparted vì đó là lỗi phun ra về hệ thống tệp bị giảm quá nhiều. (Tôi đang thay đổi kích thước Thẻ SD RetroOrangepi xuống từ 32 GB xuống 8GB cho mục đích sao lưu)
BiTinerary

Có vẻ tốt, nghĩ rằng nó có thể muốn thêm ~ 100M cho tất cả các phụ thuộc K khác, nếu bạn chưa sử dụng KDE
Xen2050

12

Chỉ phiên bản mới nhất của Gparted (0.14) hỗ trợ thay đổi kích thước khối lượng vật lý LVM. Phiên bản đi kèm với Ubuntu 12.10 hoặc 13.04 không hỗ trợ.

Dưới đây là cách thay đổi kích thước âm lượng vật lý LVM:

  1. Nếu nhóm âm lượng được liên kết với âm lượng vật lý LVM không có đủ không gian chưa phân bổ, bạn sẽ cần thực hiện một số bằng cách thu nhỏ âm lượng hợp lý. Nhìn vào câu trả lời của bigbadonk420 để được hướng dẫn cách làm điều đó. Bạn cũng có thể sử dụng Đĩa Gnome (có trong Ubuntu) cho một số bước nếu bạn thích GUI.

  2. Ghi hình ảnh .iso mới nhất từ ​​trang web của GParted và ghi nó vào đĩa CD hoặc đặt nó vào thẻ nhớ USB. Khởi động từ đĩa CD hoặc thanh USB. Ngoài ra, bạn có thể biên dịch phiên bản GParted mới nhất từ ​​nguồn.

  3. Sử dụng GParted để thay đổi kích thước âm lượng vật lý LVM. GParted sẽ không cho phép bạn thu nhỏ âm lượng vật lý LVM xuống kích thước nhỏ hơn không gian chưa phân bổ cho phép.


Cảm ơn Flimm. Tôi đã mong đợi 12.10 để có một phiên bản gparted đủ gần đây. Câu trả lời của bạn chỉ cho tôi đi đúng hướng.
Martijn Heemels

1
Tôi đã nhận được gparted mới nhất, nhưng nó sẽ không cho phép tôi thay đổi kích thước phân vùng ... Tôi có / dev / sda2 loại ext2 và theo đó, / dev / sda5 của loại lvm2. Nhưng gparted nói cho cả hai kích thước tối thiểu và tối đa là như nhau, và do đó không cho phép tôi thay đổi nó ... :-(
Paul

Hoặc sử dụng pvresizebộ LVM2, phải không?
203967

@Paul bạn đã giải quyết nó? Tôi có cùng một vấn đề chính xác: S
Castiblanco

@Castiblanco Tôi không giải quyết được, cuối cùng tôi đã xóa sạch mọi thứ và cài đặt lại mà không cần LVM. Đối với tôi, một bài học kinh nghiệm: Đừng sử dụng LVM để cài đặt máy tính để bàn tiêu chuẩn.
Paul

9

Tôi đã tìm thấy câu trả lời này một cách tình cờ, nhưng điều này ít nhất có hiệu quả với tôi. Trong trường hợp của tôi, tôi đã có một không gian đĩa chưa được dành riêng sau khi root, vì vậy tôi bỏ qua phần làm thế nào bạn có thêm dung lượng và chỉ giải thích cách tôi sử dụng nó trên root mà không cần khởi động.

LƯU Ý: Thay vì sử dụng gparted, có lẽ bạn nên sử dụng system-config-lvm. Lần tới tôi sẽ sử dụng cái đó thay thế ... Phiên bản gparted của tôi là 0.18.

  1. Đầu tiên tôi sử dụng gpartedđể mở rộng phân vùng gốc nhiều nhất có thể. Thật ngạc nhiên, nó chỉ mở rộng kích thước vật lý và không làm gì cho phần logic. Vì vậy, df -klệnh nói rằng đĩa vẫn còn đầy.
  2. lvresize -l +100%FREE /dev/ubuntu-vg/rootmở rộng phân vùng logic xa nhất có thể. Không cần kiểm tra và tính toán GB hoặc khối trong các phương pháp khác nhau.
  3. resize2fs /dev/ubuntu-vg/root Sau đó, bước thứ ba tôi đã làm: nó mở rộng hệ thống tệp theo kích thước của phân vùng logic.

Bước cuối cùng có thể được hợp nhất thành bước thứ hai:

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


Điều này cho phép bạn thu nhỏ âm lượng hợp lý, nhưng câu hỏi của OP là về việc thu nhỏ âm lượng vật lý.
Stefan

bạn đã cứu mạng tôi
Quang Hà

1

Ngoài câu trả lời của @ bigbadonk420 , Thay vì làm như sau:

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

Làm:

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

Lưu ý rằng -rlàm giảm hệ thống tập tin đồng thời và an toàn.


Nhưng điều đó không làm giảm khối lượng vật lý .
Stefan

0

Cảnh báo về câu trả lời được bình chọn nhiều nhất hiện nay : Để KHÔNG phá hủy cài đặt mặc định mới của bạn với tùy chọn LVM (14.04 Trusty Tahr), 1) đọc toàn bộ trang, 2) xóa trao đổi 3) và có thể sửa đổi lệnh cho "Giảm kích thước của logic âm lượng "như thế này:

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

Tôi đề nghị system-config-lvm.


Một lần nữa, OP muốn giảm âm lượng vật lý .
Stefan

0

Để làm điều đó bằng cách sử dụng GParted, nhấp chuột phải vào dev / sda2 (mà bạn muốn thu nhỏ). Chọn 'Hủy kích hoạt'. Bây giờ bạn sẽ có thể thay đổi kích thước phân vùng lvm của bạn.

Cập nhật: Giải pháp @Cao Min Tu tốt hơn nhiều. Tôi đã có một vài vấn đề với GParted sau khi thay đổi kích thước

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.