วิธีการปรับขนาดพาร์ติชัน LVM รูทใน Fedora โดยไม่ต้อง LiveCD หรือรีบูต


24

ฉันมีเครื่องเสมือนที่เพิ่งเพิ่มอิมเมจของดิสก์จาก 20GB เป็น 50GB และfdisk -lตรวจสอบว่า VM สามารถเห็นขนาดใหม่นี้ ตอนนี้ฉันจำเป็นต้องปรับขนาดพาร์ติชัน LVM ของฉันเพื่อเติม 30GB พิเศษ

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

แก้ไข: ผลลัพธ์ของfdisk -l:

[root@fedora-host ~]# sudo fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 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: 0x00097c90

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    83886079    41430016   8e  Linux LVM

Disk /dev/mapper/VolGroup-lv_root: 36.1 GB, 36104568832 bytes
255 heads, 63 sectors/track, 4389 cylinders, total 70516736 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/VolGroup-lv_root doesn't contain a valid partition table

Disk /dev/mapper/VolGroup-lv_swap: 6308 MB, 6308233216 bytes
255 heads, 63 sectors/track, 766 cylinders, total 12320768 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/VolGroup-lv_swap doesn't contain a valid partition table

แก้ไข: ฉันจะปรับขนาดฟิสิคัลพาร์ติชันได้อย่างไร fdisk สามารถดูพื้นที่ว่างได้ แต่ฉันไม่รู้วิธีการปรับขนาดพาร์ติชัน LVM หลักเพื่อใช้งาน ฉันพยายามบูทเข้า LiveCD และใช้resizeคำสั่งแบบแยกส่วน แต่ทั้งหมดนั้นให้ฉันคือข้อผิดพลาด "ไม่สามารถตรวจจับระบบไฟล์" ฉันพบคู่มือนี้ซึ่งบอกว่าฉันต้องลบพาร์ติชันและสร้างพาร์ติชันใหม่ที่มีขนาดที่ถูกต้อง แต่ฟังดูอันตรายมาก

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


แสดงให้เราเห็นผลลัพธ์ของ fdisk - l คุณปรับขนาดพาร์ติชั่นไม่ใช่แค่ระดับเสียงใช่มั้ย
Zoredache

@Zoredache ฉันเพิ่มผลลัพธ์นั้นให้กับคำถาม
Cerin

คำตอบ:


32

คุณสามารถเติบโตปริมาณตรรกะออนไลน์ คุณต้องยกเลิกการต่อเชื่อมเพื่อย่อขนาด (ซึ่งต้องใช้โหมด LiveCD / Rescue)

  1. pvresize /dev/sda2(สมมติว่าพาร์ติชัน LVM ของคุณคือsda2แทนที่ตามต้องการ)
  2. lvextend /dev/mapper/root -l+100%FREE (หรืออะไรก็ตามที่เรียกว่าโลจิคัลวอลุ่ม root ของคุณ)
  3. resize2fs /dev/mapper/root (สมมติว่า ext2 / 3/4)

1
โดยส่วนตัวแล้วฉันชอบlvextend -L [size][unit] /dev/group/volumeถ้าเพียงเพราะฉันสามารถขยายไดรฟ์ข้อมูล 10 กิกะไบต์โดยระบุ-L +10G
Hubert Kario

ใช่แล้ว แต่ OP ถามว่า Now I need to resize my root LVM partition to fill the extra 30GB.(ซึ่งจะเพิ่มปริมาณตรรกะด้วยพื้นที่ว่างที่มีอยู่)
Aaron Copley

"ขนาดใหม่ (1,076 extents) ตรงกับขนาดที่มีอยู่ (1,076 extents)"
Cerin

7
ฉันคิดว่าเคล็ดลับนี้เป็นระเบียบ: ถ้าคุณเพิ่ม-rตัวเลือกให้lvextendมันจะขอfsadmปรับขนาด FS สิ่งนี้จะทำให้ขั้นตอนที่ 3 ซ้ำซ้อน
Jodie C

3
หมายเหตุคำตอบนี้ถือว่าพาร์ติชั่นนั้นได้รับการขยายเพื่อเติมพื้นที่ว่างและจำเป็นต้องอัพเดตโลจิคัลวอลุ่มเท่านั้น pvresize /dev/sda2คำสั่งไม่ทำอะไรเลยจนกระทั่งพาร์ทิชัน / dev / sda2 ได้รับการปรับขนาดด้วยการแยกหรือ fdisk ฉันต้องปรับขนาดของฉันด้วย fdisk ที่แยกส่วนในระบบของฉันจะไม่แสดงหรือไม่มีคำสั่งปรับขนาด การปรับขนาด Fdisk เกี่ยวข้องกับการลบและสร้างพาร์ติชันใหม่
Jason

2

ระบบของคุณเปลี่ยนจาก 20 เป็น 50 GB จริงๆหรือ ดูเหมือนจะแปลกจริง ๆ เนื่องจากอุปกรณ์ sda2 ของคุณคือ ~ 40GB, lv_root แสดง 36GB และ swap แสดง 6GB

การส่งออกของคุณfdisk -lแสดงให้เห็นว่าภาครวมของการมี/dev/sda 104857600ภาคที่ผ่านมาใช้โดยมี/dev/sda2 83886079สิ่งนี้บอกฉันว่าคุณยังไม่ได้ปรับขนาดพาร์ติชั่นเพื่อใช้พื้นที่ทั้งหมดบนไดรฟ์ คำสั่ง pvresize ไม่เปลี่ยนตารางพาร์ติชัน คุณต้องเปลี่ยนตารางพาร์ทิชันก่อน


1

ติดตั้ง gparted เรียกใช้เป็นรูท (ใช้ ssh -X หรือ x2go หากรีโมต) เลือกพาร์ติชัน มันควรจะแสดงพื้นที่ว่างในตอนท้าย (ทางขวา) หากไม่เป็นเช่นนั้นคุณต้องรีบูตเครื่องเสมือนเพื่อดูขนาดใหม่ของอุปกรณ์เสมือน ที่ควรจะหยุดทำงานน้อยที่สุดด้วย systemd

คลิกขวาและเลือกปรับขนาด ลากปลายไปยังจุดสิ้นสุดของดิสก์ ตรวจสอบให้แน่ใจว่าคุณไม่ได้สัมผัสจุดเริ่มต้น gparted สามารถย้ายพาร์ติชันระหว่างการปรับขนาดได้ แต่แน่นอนว่าจะทำลายระบบที่กำลังทำงานอยู่ แต่การย้ายจุดจบนั้นเป็นเรื่องปกติ ตรวจสอบการดำเนินการที่รอดำเนินการ gparted จะดำเนินการเพื่อให้แน่ใจว่าคุณกำลังขยายและไม่ย้ายพาร์ติชัน คลิกใช้ gparted จะเปลี่ยนพาร์ติชันบนดิสก์จากนั้นออกเคอร์เนล ioctl เพื่ออ่านตารางพาร์ติชันใหม่เปลี่ยนขนาดของอุปกรณ์บล็อกสดเช่นกัน จากนั้นเมื่อเห็นว่าเป็น LVM PV ระบบจะเรียกใช้ pvresize ให้คุณ ออกจาก gparted และ vgs จะแสดงพื้นที่ใหม่ของคุณ

ฉันได้ยินข่าวลือว่าแยกกันทำทุกอย่างโดยไม่มีค่าใช้จ่ายของ GUI แต่ฉันไม่เคยคิดว่าจะใช้วูดู ต้องแยกเป็นส่วนหนึ่งของส่วนต่อประสาน CLI ที่แย่ที่สุดที่ฉันเคยลองใช้มา

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

คุณสามารถลอง cfdisk (curses fdisk) อาจมีการปรับขนาดพาร์ติชันที่ใช้งานได้ มันง่ายพอที่จะรัน pvresize ด้วยตนเองและมีคำสั่งให้เคอร์เนลอ่านตารางพาร์ติชันซ้ำอีกครั้ง แต่ฉันต้องทดสอบเพื่อให้แน่ใจว่าไม่ได้เช็ดลายเซ็น LVM เช่น fdisk


0

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

คุณสามารถแก้ไขตารางพาร์ติชันบนไดรฟ์ได้ แต่ Linux จะปฏิเสธที่จะใช้จนกว่าคุณจะรีบูท

หากคุณกำลังใช้ XFS สลับไปresize2fsxfs_growfs

คุณสามารถแสดงเพจวิวที่คุณใช้และ LVs ในกลุ่มปริมาณการใช้และpvslvs

PV บนดิสก์ดิบ

pvresize /dev/sda
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

PV บนพาร์ติชัน

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

pvresize /dev/sda2
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

เมื่อใช้ Gparted Live CD จะsudo pvresize /dev/sda2รายงาน "1 ฟิสิคัลวอลุ่มที่ปรับขนาดแล้ว" แต่sudo lvextend /dev/mapper/VolGroup-lv_root -L +10Gล้มเหลวเนื่องจากข้อผิดพลาด "พื้นที่ว่างไม่เพียงพอ: ต้องการขอบเขตเพิ่ม 320 เท่า แต่มีเพียง 0 ตัวเท่านั้น" sudo fdisk -lรายงานที่ฉันมี 54G พร้อมใช้งานในขณะที่sudo pvdisplayรายงานใช้ 40G เท่านั้น ทำไม lvextend จึงล้มเหลว
Cerin

1
@Cerin คุณพลาดคำสั่งแรกของ Huberts สำหรับ PV บนพาร์ติชัน แรกที่คุณต้องปรับขนาดพาร์ทิชันที่ใช้แยก fdisk หรือเครื่องมือที่คล้ายกันว่า
Zoredache

@Zoredache โอเคนั่นเป็นคำถามทั้งหมดของฉัน ฉันไม่รู้จะทำยังไง ฉันเพิ่งบูทเข้าไปใน Gparted LiveCD และพยายามใช้resizeคำสั่งของพาร์ติชันเพื่อเพิ่มขนาดพาร์ติชันหลัก แต่มันทำให้ฉันมีข้อผิดพลาด "ไม่สามารถตรวจพบระบบไฟล์" คุณจะลดขนาดพาร์ติชันโดยใช้ parted หรือ fdisk ได้อย่างไร?
Cerin

@Cerin: ค้นหา SF หรือถามคำถามอื่น
Hubert Kario

0

ฉันจะลองตรวจสอบ ssm (system-storage-manager) ถ้ามันมีอยู่ใน distro ของคุณ

ตรวจสอบสิ่งนี้เพื่อรับข้อมูลเพิ่มเติม: /unix//a/293173

ssm ดูเหมือนจะทำให้การปรับขนาดโลจิคัลวอลุ่มง่ายขึ้นโดยไม่ต้องทำทุกอย่างด้วยตัวเอง

ฉันสามารถใช้เพื่อขยายพาร์ติชันที่บ้านของฉันด้วยหลังจากรีบูตระบบปฏิบัติการของฉันและเข้าสู่ระบบครั้งแรกในฐานะที่เป็นราก (ต้องรีบู๊ตรวมสองครั้ง แต่มันใช้งานได้ในตอนท้ายและตอนนี้ฉันมี 50G พิเศษให้ใช้ในการแบ่งพาร์ติชัน / โฮมของฉัน)


0

หลังจากรวม 25 howto เข้าด้วยกันในที่สุดฉันก็มีทางออกนี้ มันไม่จำเป็นต้องมีซีดีสดมันสมบูรณ์แบบทันที

ขั้นตอน 1. จัดรูปแบบพาร์ติชันด้วยการแยก (ไม่มีกุย) ในตัวอย่างนี้ขนาดสูงสุดของดิสก์เพิ่มขึ้นจาก 8BG เป็น 32 GB ในกล่องเสมือน

    # parted
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
       ....
    (parted) mkpart primary ext2 8590 100%
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
         3      8590MB  34,4GB  25,8GB   primary  ext2             lba
       ....
    (parted) set 3 lvm on
    (parted) set 3 lba off
    (parted) print
       ....
         3      8590MB  34,4GB  25,8GB   primary  ext2             lvm
       ....
    (parted) quit

ขั้นตอนที่ 2 สร้างฟิสิคัลวอลุ่มที่อ้างอิงตามพาร์ติชันใหม่

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

ขั้นตอนที่ 3 เพิ่มฟิสิคัลวอลุ่มในกลุ่มวอลุ่ม ในเซิร์ฟเวอร์ fedora 28 แบบธรรมดาติดตั้งกลุ่มวอลุ่มชื่อ fedora

# vgextend fedora /dev/sda3
  Volume group "fedora" successfully extended

ขั้นตอนที่ 4 เพิ่มพื้นที่ว่างในกลุ่มวอลุ่มให้กับโลจิคัลวอลุ่ม ในเซิร์ฟเวอร์ fedora 28 แบบธรรมดาการติดตั้งโลจิคัลวอลุ่มเรียกว่ารูท

# lvextend -l+100%FREE /dev/fedora/root
  Size of logical volume fedora/root changed from <6,20 GiB (1586 extents) to 30,19 GiB (7729 extents).
  Logical volume fedora/root successfully resized.

ขั้นตอนที่ 5. บอกระบบไฟล์ในโลจิคัลวอลุ่มเพื่อใช้พื้นที่ว่างเพิ่มเติม ใน fedora ระบบไฟล์คือ xfs

ความสนใจ! xfs_growfs ใช้จุดเชื่อมต่อเพื่อระบุระบบไฟล์ไม่ใช่ชื่อของระบบไฟล์ที่คุณพบในเอาต์พุต df !!!!!!!

คำสั่ง 'xfs_growfs / dev / mapper / fedora-root' จะบอกคุณ / dev / mapper / fedora-root ไม่ใช่ระบบไฟล์ XFS ที่เมาท์ หากคุณใช้ระบบไฟล์อื่นโปรดดูที่https://www.tldp.org/HOWTO/LVM-HOWTO/extendlv.html

# xfs_growfs /
    data blocks changed from 1624064 to 7914496

ขั้นตอน 6. เพลิดเพลิน

# df
FileSystem               1K-blocks      Used   Available used% Mounted on
....
/dev/mapper/fedora-root   31647744   6492840    25154904  21% /
/dev/sda1                   999320    125576      804932  14% /boot
....

-1

ลอง testdisk

sudo dnf ติดตั้ง testdisk

sudo testdisk

เพียงแค่สร้างไฟล์บันทึกจากนั้นมันจะแสดงรายการพาร์ติชั่น - เลือกมีเดีย / พาร์ติชั่น - จากนั้นพิมพ์ - และวิเคราะห์ - ค้นหาอย่างรวดเร็ว - เลือกและเขียน

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