ฉันจะปรับขนาดพาร์ติชัน LVM ได้อย่างไร (เช่น: ปริมาณทางกายภาพ)


89

ฉันต้องการลดขนาดพาร์ติชันที่สอง (LVM) เพื่อสร้างพาร์ติชันใหม่ในพื้นที่ว่างที่เพิ่งเพิ่มใหม่ ฉันใช้ Live CD เพื่อทำเช่นนั้นเพราะฉันรู้ว่าฉันไม่สามารถปรับขนาด / ย้ายพาร์ติชันนี้ในขณะที่ใช้งานอยู่ เมื่อฉันเปิด GParted ใน Live CD ฉันรู้ว่าฉันไม่สามารถปรับขนาดพาร์ติชันได้เนื่องจากเมื่อฉันคลิกขวามันตัวเลือก "resize / move" จะถูกปิดการใช้งาน

ฉันพยายามเลิกเมานท์เพื่อ "ขี้เกียจ" เลิกเมานท์ ( umount -l /dev/sda2) แต่มันไม่ทำงาน

ภาพหน้าจอจาก GParted:

ภาพหน้าจอ GParted

คำตอบ:


49

ดูเหมือนว่ามีผลลัพธ์มากมายใน Google ที่ผู้คนมีปัญหาคล้ายกัน ตัวอย่าง:

สำรองข้อมูลสำคัญทั้งหมดของคุณก่อนที่จะลองทำสิ่งนี้ สมมติว่าคุณอาจสูญเสียข้อมูลทั้งหมดของคุณเมื่อปรับขนาดพาร์ติชัน

ลดขนาด LVM โดยไม่มีดาต้ารอส

กระทู้ฟอรัมนี้แสดงขั้นตอนต่อไปนี้ในตัวอย่างนี้เราย่อขนาดพาร์ติชันจาก 10G เป็น 9G:

ก่อนอื่นเรายกเลิกการต่อเชื่อม

sudo umount /dev/vg_blah/lv_blah

ตรวจสอบระบบไฟล์

sudo e2fsck -f /dev/vg_blah/lv_blah

ปรับขนาดระบบไฟล์และโลจิคัลวอลุ่ม การทำเช่นนี้ในขั้นตอนเดียวสามารถหลีกเลี่ยงข้อผิดพลาดที่ทำให้เกิดดาต้าเซลล์ (หมายเหตุพารามิเตอร์ lvreduce -LตีความGเป็น 2 ^ 30 ไบต์และg10 ^ 9 ไบต์)

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

(ทางเลือก) ลบฟิสิคัลไดร์ฟออกจากกลุ่มวอลุ่มหากต้องการ (ถ้าคุณมีไดรฟ์ที่ไม่ได้ใช้)

sudo vgreduce vg_blah /dev/sdxy

เครดิตทั้งหมดไปที่brianmcgee

หมายเหตุ: vgreduceจะล้มเหลวcannot resize to xxxxx extents as later ones are allocatedหากคุณมี lv อื่นที่ท้ายดิสก์ - ฉันมี swap lv ซึ่งฉันลบ ดูวิธีลดขนาดโลจิคัลและฟิสิคัลวอลุ่มของ Ubuntu LVM? สำหรับความช่วยเหลือเกี่ยวกับสถานการณ์นั้น


1
e2fsck -f /dev/vg_blah/lv_blahคืนค่า: "e2fsck: อุปกรณ์หรือทรัพยากรไม่ว่างในขณะที่พยายามเปิด / dev / sda2 ระบบไฟล์ที่เมานต์หรือเปิดโดยโปรแกรมอื่นหรือไม่" เช่นเดียวกันกับ resize2fs ...
Idan Yadgar

12
คำตอบขาดวิธีปรับขนาดฟิสิคัลวอลุ่ม lvreduce -rนอกจากนี้ผมขอแนะนำให้รวมสองขั้นตอนการปรับขนาดเป็นหนึ่งด้วย
Flimm

4
นอกจากนี้คุณจำเป็นต้องรู้ว่า1Gจะlvreduceเป็น 1000000000 ไบต์ขณะที่ไปresize2fsก็เป็น gibibyte หากคุณต้องการส่ง 1 gibibyte ให้lvreduceใช้1gแทน
Flimm

1
คุณไม่ได้ใช้vgreduce; นั่นคือเพื่อลบ pv ออกจากกลุ่มวอลุ่ม
psusi

2
ฉันสงสัยอย่างยิ่งว่าlvreduceจะใช้ G = gibibyte ในโหมดส่วนต่าง มันทำในโหมดสัมบูรณ์ หน้า man ของมันเขียนได้ไม่ดีและไม่ได้อธิบายความหมายของหน่วยซึ่งฉันคิดว่าติดกับความประมาททางอาญา
Urhixidur

45

คุณสามารถหด / ขยายปริมาณตรรกะอย่างง่ายดายด้วยเครื่องมือแบบ system-config-lvmGUI: เนื่องจากsystem-config-lvmไม่ได้ติดตั้งไว้ล่วงหน้าเมื่อบูตจาก live-cd คุณต้องติดตั้ง:

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

เมื่อติดตั้งแล้วให้เรียกใช้โปรแกรมเลือกโลจิคัลวอลุ่มที่คุณต้องการเปลี่ยนในแผงด้านซ้ายคลิก 'แก้ไขคุณสมบัติ'

โปรแกรมจัดการโลจิคัลวอลุ่มหลัก

ตอนนี้เปลี่ยนพารามิเตอร์ตามที่คุณต้องการ!

แก้ไขหน้าต่างโลจิคัลวอลุ่ม

สิ่งหนึ่งที่ดีเกี่ยวกับsystem-config-lvmคือมันจะไม่อนุญาตให้คุณไปข้างหน้าถ้าขนาดพาร์ติชันใหม่เล็กกว่าข้อมูลที่มีอยู่ทั้งหมดของคุณรวมกัน (ฉันเพิ่งลองและเห็นด้วยตัวเอง)

อ้างอิง:

  1. วิธีการสอน Geek (นี่คือที่มาของภาพ)
  2. คู่มือที่สมบูรณ์ของ Red Hatสำหรับโปรแกรม

2
GUI เป็นวิธีที่จะไปอย่างแน่นอนอย่างไรก็ตามคุณอาจต้องเรียกใช้จากซีดีสด
Mike

10
ทำไมsystem-config-lvmมีความเสี่ยงสูงกว่าlvresizeหรือlvresize -r?
Thufir

1
คุณสามารถลองblivet-gui ( gitub , Ubuntu PPA ), ตัวจัดการพาร์ติชั่นถัดไปที่จัดการไดรฟ์ LVM
bain

5
ระวังว่า system-config-lvm ใช้ powers-of-1024 units แม้จะใช้ถ้อยคำ 'กิกะไบต์' ไม่ถูกต้อง มันควรจะชอบpalimpsest(aka Disk Utility) และระบุความหมายเป็นไบต์ที่ไม่คลุมเครือ
Urhixidur

4
@Suncatcher ในวันที่ 17.10 และ 18.04 คุณต้องเพิ่มที่เก็บ Xenial sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial universe"
m93a

24

หมายเหตุ : คุณควรเรียกใช้คำสั่งต่อไปนี้เกือบทั้งหมดโดยใช้ Live CD บางครั้งมันต้องการให้คุณยกเลิกการต่อเชื่อมพาร์ติชั่นที่เมาท์บน / (ในกรณีนี้คุณไม่สามารถถอดมัน)

นี่คือขั้นตอนทั้งหมดที่จำเป็นในการปรับขนาดพาร์ติชัน LVM หรือ LVM2:

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

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

หากคำสั่งที่สองผลิตสิ่งนี้:

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

จากนั้นคุณต้องจัดเรียงพื้นที่ที่ไม่ได้ปันส่วนใหม่ในตอนท้ายของ LVM ซึ่งหมายความว่าหลังจากพาร์ทิชัน root และ swap_1 ดังนั้นในตอนแรกคุณต้องตรวจสอบข้อมูลฟิสิคัลวอลุ่มโดยใช้คำสั่งด้านล่าง:

sudo pvs -v --segments /dev/sda5

นี่จะแสดงผลลัพธ์เช่น:

/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

หมายเหตุyyy-www ใช้คำสั่งต่อไปนี้เพื่อลบการแตกแฟรกเมนต์ภายนอก:

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

ตอนนี้ให้เราดูว่ามันไป:

sudo pvs -v --segments /dev/sda5

สิ่งนี้จะแสดงผลลัพธ์เช่น (สังเกตการเปลี่ยนแปลง):

/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

หลังจากนั้นใช้ GParted และปรับขนาด LVM เป็นพื้นที่ที่ใช้สูงสุดและส่วนที่เหลือจะอยู่ในพื้นที่ที่ไม่ได้ถูกจัดสรร สนุก...


16

ฉันจะแนะนำเครื่องมือ GUI ที่อื่น - KVPM มันรวมฟังก์ชั่นของ GParted และ system-config-lvm นอกจากนี้ยังช่วยให้การดำเนินการบางอย่างในพาร์ติชันที่อยู่ (เมาท์) ที่ system-config-lvm ไม่อนุญาต อย่างไรก็ตามจะต้องยกเลิกการต่อเชื่อมวอลุ่มสำหรับการย่อขนาด

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

มันอยู่ในพื้นที่เก็บข้อมูลของจักรวาลตั้งแต่ Ubuntu 12.04 ดังนั้นให้ทำ sudo apt-get install kvpm

หมายเหตุ: เริ่มต้นด้วยสิทธิ์รูท sudo kvpm


มันไม่ได้อยู่ในพื้นที่เก็บข้อมูลของจักรวาล:E: Unable to locate package kvpm
Jeff Puckett


สิ่งนี้ใช้ได้สำหรับฉันโดยที่ "system-config-lvm" ไม่ได้โหลดอุปกรณ์ / ไดรฟ์ / ระบบไฟล์ใด ๆ ที่เชื่อมต่อ ด้วยโบนัสที่เพิ่มขึ้นโดยไม่ต้องดาวน์โหลดและที่เก็บเพิ่มเติมและถูกกำหนดไว้ล่วงหน้าในเครื่อง Ubuntu ของฉัน นอกจากนี้ยังทำงานกับ Gparted ตั้งแต่ที่ได้พ่นข้อผิดพลาดเกี่ยวกับระบบไฟล์ที่ถูกลดลงมากเกินไป (ฉันปรับขนาดการ์ด SD RetroOrangepi ลดลงจาก 32GB เป็น 8GB เพื่อการสำรองข้อมูล)
BiTinerary

ดูดีคิดว่าอาจต้องเพิ่มอีก ~ 100M สำหรับการอ้างอิง K อื่น ๆ หากคุณยังไม่ได้ใช้ KDE
Xen2050

12

เฉพาะเวอร์ชันล่าสุดของ Gparted (0.14) รองรับการปรับขนาดฟิสิคัลวอลุ่ม LVM รุ่นที่มาพร้อมกับ Ubuntu 12.10 หรือ 13.04 ไม่รองรับ

นี่คือวิธีปรับขนาดฟิสิคัลวอลุ่ม LVM:

  1. หากกลุ่มวอลุ่มที่เชื่อมโยงกับฟิสิคัลวอลุ่ม LVM ไม่มีพื้นที่ที่ไม่ได้จัดสรรเพียงพอคุณจะต้องสร้างกลุ่มโดยการลดขนาดโลจิคัลวอลุ่ม ดูคำตอบของ bigbadonk420สำหรับคำแนะนำเกี่ยวกับวิธีการทำเช่นนั้น คุณยังสามารถใช้ดิสก์ GNOME (รวมอยู่ใน Ubuntu) สำหรับบางขั้นตอนหากคุณต้องการ GUI

  2. เขียนภาพ. iso ล่าสุดจากเว็บไซต์ของ GPartedและเขียนลงบนแผ่นซีดีหรือวางลงบนแท่ง USB บูตจากซีดีหรือ USB stick หรือคุณสามารถรวบรวม GParted เวอร์ชันล่าสุดจากแหล่งที่มา

  3. ใช้ GParted เพื่อปรับขนาดฟิสิคัลวอลุ่ม LVM GParted จะไม่อนุญาตให้คุณลดขนาดฟิสิคัลวอลุ่ม LVM ให้เล็กกว่าขนาดที่ไม่ได้จัดสรรพื้นที่ได้


ขอบคุณ Flimm ฉันคาดหวังว่า 12.10 จะมี gparted รุ่นล่าสุดเพียงพอ คำตอบของคุณชี้ให้ฉันในทิศทางที่ถูกต้อง
Martijn Heemels

1
ฉันได้รับล่าสุด gparted แต่จะไม่ให้ฉันเปลี่ยนขนาดพาร์ติชัน ... ฉันมี / dev / sda2 ของประเภท ext2 และภายใต้ที่ / dev / sda5 ของประเภท lvm2 แต่ gparted บอกว่าทั้งขนาด min และ max นั้นเท่ากันดังนั้นจึงไม่อนุญาตให้ฉันเปลี่ยน ... :-(
Paul

หรือใช้pvresizeชุด LVM2 ใช่มั้ย
203967

@ พอลคุณแก้มันได้หรือไม่ ฉันมีปัญหาเดียวกันทั้งหมด: S
Castiblanco

@Castiblanco ฉันไม่ได้แก้ปัญหาฉันลงเอยด้วยการเช็ดทุกอย่างและติดตั้งใหม่โดยไม่ต้องใช้ LVM สำหรับฉันหนึ่งบทเรียนเรียนรู้: อย่าใช้ LVM สำหรับการติดตั้งเดสก์ท็อปมาตรฐาน
พอล

9

ฉันพบคำตอบนี้โดยไม่ตั้งใจ แต่สิ่งนี้ใช้ได้ผลกับฉันอย่างน้อย ในกรณีของฉันฉันมีพื้นที่ว่างในดิสก์ที่ไม่ได้ปันส่วนหลังจากรูทดังนั้นฉันข้ามส่วนที่คุณได้รับพื้นที่เพิ่มเติมและเพียงอธิบายว่าฉันใช้มันในรูทอย่างไรโดยไม่ต้องบูท

หมายเหตุ: แทนที่จะใช้gpartedคุณน่าจะใช้งานsystem-config-lvmได้ดีกว่า ครั้งต่อไปที่ฉันจะใช้อันนั้นแทน ... เวอร์ชันที่อัปโหลดของฉันคือ 0.18

  1. ครั้งแรกฉันเคยgpartedขยายพาร์ติชันรูทมากที่สุดเท่าที่จะทำได้ ฉันประหลาดใจที่มันขยายเฉพาะขนาดร่างกายและไม่ได้ทำอะไรกับส่วนตรรกะ ดังนั้นdf -kคำสั่งบอกว่าดิสก์ยังเต็ม
  2. lvresize -l +100%FREE /dev/ubuntu-vg/rootขยายโลจิคัลพาร์ติชันเท่าที่จะทำได้ ไม่จำเป็นต้องตรวจสอบและคำนวณ GB หรือบล็อกในวิธีการต่าง ๆ
  3. resize2fs /dev/ubuntu-vg/root เป็นขั้นตอนที่สามที่ฉันทำ: ขยายระบบไฟล์ไปจนถึงขนาดของโลจิคัลพาร์ติชัน

ขั้นตอนสุดท้ายสามารถรวมเข้ากับขั้นตอนที่สอง:

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


สิ่งนี้ช่วยให้คุณลดขนาดโลจิคัลวอลุ่ม แต่คำถามของ OP คือการลดขนาดฟิสิคัลวอลุ่ม
Stefan

คุณช่วยชีวิตฉันไว้
Quang Hà

1

นอกจากคำตอบของ@ bigbadonk420แทนที่จะทำดังต่อไปนี้:

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

ทำ:

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

โปรดสังเกตว่าสิ่ง-rใดที่ลดระบบไฟล์พร้อมกันและปลอดภัย


แต่นั่นไม่ได้หดทางกายภาพปริมาณ
Stefan

0

คำเตือนเกี่ยวกับคำตอบที่ได้รับการโหวตมากที่สุดในปัจจุบัน: เพื่อไม่ทำลายการติดตั้งเริ่มต้นใหม่ของคุณด้วยตัวเลือก LVM (14.04 Trusty Tahr), 1) อ่านทั้งหน้า 2) ลบ swap 3) และอาจแก้ไขคำสั่งสำหรับ "ลดขนาดของตรรกะ ปริมาณ "เช่นนี้:

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

system-config-lvmผมขอแนะนำให้


อีกครั้ง OP ต้องการลดปริมาณทางกายภาพ
Stefan

0

ในการทำเช่นนั้นโดยใช้ GParted ให้คลิกขวาที่ dev / sda2 (ซึ่งคุณต้องการย่อขนาด) เลือก 'เลิกใช้งาน' ตอนนี้คุณจะสามารถปรับขนาดพาร์ทิชัน LVM ของคุณ

Update: @Cao Min Tu ทางออกดีกว่ามาก ฉันมีปัญหาเล็กน้อยกับ GParted หลังจากปรับขนาด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.