ฉันจะขยายพาร์ติชันด้วย LVM และฟิสิคัลวอลุ่มที่มีอยู่และโลจิคัลวอลุ่มที่มีอยู่ได้อย่างไร?


33

ใน 240 GB SSD ของฉันฉันมีสองพาร์ติชั่นแรกหนึ่งอันประกอบด้วย Logical Volume กับ Linux Mint และอีกอันมีพาร์ทิชัน NTFS เพื่อแชร์กับ Windows ตอนนี้ฉันลบพาร์ติชัน NTFS และต้องการขยายกลุ่มโลจิคัลวอลุ่มของฉันเพื่อใช้พื้นที่ดิสก์ที่นำออกใช้

ฉันจะขยายกลุ่มวอลุ่มโลจิคัลวอลุ่มของฉันที่มี / homeและระบบไฟล์ (ext4)บน / home ได้อย่างไร? เป็นไปได้ไหมที่จะออนไลน์

PS: ใช่ฉันรู้ว่าฉันต้องสำรองข้อมูลของฉัน :)

/dev/sdb/  (240GB)
    linuxvg  (160GB) should use 100% of the disk space
        swap
        root
        home (ext4, 128GB) should be extended to use the remaining space

ผลลัพธ์ของsudo vgdisplay:

  --- Volume group ---
  VG Name               linuxvg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               160,00 GiB
  PE Size               4,00 MiB
  Total PE              40959
  Alloc PE / Size       40959 / 160,00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               ...

  --- Logical volume ---
  LV Path                /dev/linuxvg/swap
  LV Name                swap
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:32 +0200
  LV Status              available
  # open                 2
  LV Size                8,00 GiB
  Current LE             2048
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Path                /dev/linuxvg/root
  LV Name                root
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:43 +0200
  LV Status              available
  # open                 1
  LV Size                24,00 GiB
  Current LE             6144
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

  --- Logical volume ---
  LV Path                /dev/linuxvg/home
  LV Name                home
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:57 +0200
  LV Status              available
  # open                 1
  LV Size                128,00 GiB
  Current LE             32767
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2

  --- Physical volumes ---
  PV Name               /dev/sdb1     
  PV UUID               ...
  PV Status             allocatable
  Total PE / Free PE    40959 / 0

ผลลัพธ์ของsudo fdisk -l:

Disk /dev/sdb: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1   468862127   234431063+  ee  GPT

Disk /dev/mapper/linuxvg-swap: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/linuxvg-root: 25.8 GB, 25769803776 bytes
255 heads, 63 sectors/track, 3133 cylinders, total 50331648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/linuxvg-home: 137.4 GB, 137434759168 bytes
255 heads, 63 sectors/track, 16708 cylinders, total 268427264 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

2
วิธีง่าย ๆ ที่จะทำได้คือเพียงสร้าง pvc พาร์ติชันและใช้ NTFS vgextendแทนการลบพาร์ติชันทั้งหมด หากคุณขยายพาร์ติชัน PV ที่มีอยู่แทนคุณอาจต้องรีบูตเนื่องจาก Linux ปฏิเสธที่จะอ่านตารางพาร์ติชันใหม่ในขณะที่ใช้งานดิสก์อยู่ การทำงานกับระบบออนไลน์นี้เป็นเรื่องที่น่าอึดอัด - กรุณาแสดงตารางพาร์ทิชันปัจจุบันของคุณ
frostschutz

ฉันสามารถรีบูตได้ถ้าจำเป็น
klingt.net

คำตอบ:


44

คุณสามารถทำได้ง่ายๆ ค่อนข้างประหลาดใจที่ไม่มีคำตอบสำหรับสิ่งนี้ที่นี่แล้ว

คุณสามารถทำกระบวนการนี้ทั้งหมดในขณะที่ทำงานบนระบบไฟล์ที่คุณต้องการปรับขนาด (ใช่มันปลอดภัยและสนับสนุนอย่างเต็มที่) ไม่จำเป็นต้องใช้ซีดีกู้คืนหรือระบบปฏิบัติการอื่น

  1. ปรับขนาดพาร์ติชัน (อีกครั้งคุณสามารถทำได้เมื่อระบบกำลังทำงาน) GPartedใช้งานง่ายและรองรับการปรับขนาด นอกจากนี้คุณยังสามารถใช้เครื่องมือระดับที่ต่ำกว่าเช่น
    fdiskแต่คุณจะต้องลบพาร์ติชันและสร้างใหม่ เพียงตรวจสอบให้แน่ใจเมื่อทำเช่นนั้นเพื่อให้พาร์ติชันใหม่เริ่มต้นในตำแหน่งเดียวกัน
  2. Reboot เนื่องจากตารางพาร์ติชั่นถูกแก้ไขบนระบบที่รันอยู่มันจะไม่มีผลจนกว่าจะรีบูต
  3. วิ่งpvresize /dev/sdXYเพื่อให้ LVM รับพื้นที่ใหม่
  4. lvextendปรับขนาดปริมาณตรรกะกับ lvextend -r -l +100%FREE /dev/VGNAME/LVNAMEหากคุณต้องการที่จะใช้สิ่งที่ทั้ง -rจะปรับขนาดระบบแฟ้มได้เป็นอย่างดี
    แม้ว่าฉันจะไม่แนะนำให้ใช้กลุ่มวอลุ่มทั้งหมดเสมอ คุณไม่มีทางรู้ว่าคุณต้องการอะไรในอนาคต คุณสามารถขยายได้ในภายหลังคุณไม่สามารถย่อขนาดได้

3
ฉันต้องการยอมรับคำตอบของคุณ แต่ฉันไม่ทำงานตามที่คุณแนะนำเพราะ GParted ไม่สามารถปรับขนาดพาร์ติชันรูทบนระบบที่กำลังรันอยู่ (อย่างน้อยในกรณีของฉัน)
klingt.net

@HalosGhost ฉันยกเลิกการแก้ไขของคุณอีกครั้ง partprobe -sไม่ได้ทำในสิ่งที่คุณคิด เคอร์เนลจะไม่รับการปรับขนาดของพาร์ติชันที่ใช้งานอยู่ partprobe -sใช้งานได้เฉพาะในกรณีที่พาร์ติชั่นนั้นถูกใช้งานในระหว่างการปรับขนาด (ดังนั้นเมื่อ fdisk แจ้งเคอร์เนลว่าล้มเหลว) แต่มันจะไม่ทำงานอีกต่อไป
Patrick

@ แพทริคฉันไม่ได้เพิ่มความคิดสำหรับมัน ฉัน "ปรับปรุง" การแก้ไขโดยการวางคำสั่งใน backticks (สงครามสำหรับรหัสหนีค่าจ้าง!)
HalosGhost

โอ้ขอโทษที่อ่านชื่อจากเหตุการณ์ประวัติศาสตร์ที่ไม่ถูกต้อง @ Qetesh ที่ใช้กับคุณแล้ว :-)
Patrick

1
เป็นไปได้ที่จะไม่รีบูตเลยโดยใช้ "partx -u" สำหรับขั้นตอนที่ 2 เพื่อบอกเคอร์เนลให้อัพเดตขนาดของพาร์ติชัน: ใช้งานได้แม้ในพาร์ติชันที่ใช้งานอยู่และสามารถตรวจสอบได้โดยตรวจสอบ /sys/.../sdXY/size ก่อนและ หลังจาก.
AB

11

ไม่มีคำตอบใดที่ให้ความยุติธรรมต่อพลังของ LVM

(สิ่งนี้อิงจาก @frostchutz แสดงความคิดเห็นกับคำถามข้างต้น)

รับข้อเท็จจริง:

  • OP มีสองพาร์ติชัน sdb1 และ sdb2 เป็นฟิสิคัลวอลุ่มสำหรับ LVM
  • sdb1 คือ ntfs ตอนนี้เราต้องให้พื้นที่นั้นกับโลhomeจิคัลวอลุ่มภายในlinuxvgกลุ่มวอลุ่ม

LVM ขั้นตอนโดยใช้ "วิธีปฏิบัติ":

  • สร้างฟิสิคัลวอลุ่มบน sdb1: pvcreate /dev/sdb1
  • เพิ่ม sdb1 ไปที่linuxvg:vgextend linuxvg /dev/sdb1
  • ขยายโลจิคัลวอลุ่มhomeด้วยพื้นที่ว่างทั้งหมด:lvextend -l +100%FREE /dev/linuxvg/home
  • ขยาย ext4 fs: resize2f /dev/linuxvg/home

LVM ช่วยให้เกิดการอ้อมในระดับที่ยอดเยี่ยม โลจิคัลวอลุ่มอยู่ภายในกลุ่มวอลุ่มซึ่งอาจใช้หลายดิสก์

หน้าแรก -> linuxvg -> (sdb1, sdb2, sdc1)

http://tldp.org/HOWTO/LVM-HOWTO/createvgs.html


10

คำถามที่ได้รับการแก้ไขหลังจากที่ได้อ่านนี้โพสต์บล็อก ฉันจะเขียนวิธีแก้ปัญหาในรูปแบบสั้น ๆ :

  • บูตจากซีดีสดด้วย
  • ใช้gdisk(ถ้าคุณใช้ GPT) มิฉะนั้นคุณสามารถไปด้วยดีfdisk
  • บันทึกการตั้งค่าพาร์ติชันของคุณในกรณีของฉัน gdisk -l /dev/sdb
  • ลบพาร์ติชันของคุณด้วย
  • สร้างพาร์ติชันใหม่ด้วยการจัดตำแหน่งที่แน่นอนเหมือนกับพาร์ทิชันก่อนหน้า (ในตัวอย่างของฉันเริ่มต้นที่บล็อก 2048)
  • เขียนตารางพาร์ทิชันใหม่ของคุณ
  • รันpartprobe -sเพื่อรีเฟรชตารางพาร์ติชันโดยไม่ต้องรีบูต
  • ปรับขนาดฟิสิคัลวอลุ่มของคุณด้วยpvresize /dev/sdb1หรือที่ไหนก็ตามที่เป็น pv ของคุณ (ใช้pvsเพื่อตรวจสอบว่าคุณไม่รู้)
  • ปรับขนาดโลจิคัลวอลุ่มของคุณด้วย lvextend -l +100%FREE /dev/file/of/your/lvในกรณีของฉันsudo lvextend -l +100%FREE /dev/linuxvg/home
  • ปรับขนาดระบบไฟล์ sudo resize2fs /dev/linuxvg/home
  • ก่อนตรวจสอบความสอดคล้อง sudo e2fsck -f /dev/linuxvg/home
  • สนุก :)

จริงๆแล้วคุณสามารถลดขั้นตอนเหล่านั้นได้ครึ่งหนึ่งและทำเพียงรีบูตเพียงครั้งเดียว
Patrick

GParted ปฏิเสธที่จะปรับขนาดพาร์ทิชันเพราะมันถูกล็อค (สัญลักษณ์กุญแจนี้)
klingt.net

4

บางคำตอบที่ยอดเยี่ยมอยู่แล้ว

หากคุณใช้ xfs แสดงว่าคุณใช้คำสั่ง

xfs_growfs /mountpoint

แทนที่จะปรับขนาด 2fs คุณสามารถทำได้ในขณะที่เมานต์พอยต์นั้นเปิดใช้งานอยู่เช่นถ้าคุณขยายพาร์ติชันรูทและคุณไม่จำเป็นต้องรีบูตหลังจากนั้น

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