Centos 7 ขยายพาร์ติชั่นด้วยพื้นที่ที่ไม่ได้จัดสรร


16

ฉันมีเซิร์ฟเวอร์ centos 7 (CentOS Linux release 7.3.1611 (Core))เมื่อฉันอัพเดทเซิร์ฟเวอร์ฉันเห็นข้อผิดพลาดคุณต้องการพื้นที่เพิ่มเติม แต่ฉันมีดิสก์ 20GB บนเซิร์ฟเวอร์เมื่อฉันตรวจสอบพื้นที่ว่างในดิสก์ที่ฉันเห็นเฉพาะพาร์ทิชัน 4.5GB ที่สร้างขึ้นและพาร์ทิชัน 16GB เป็นพื้นที่ว่างไม่มีการจัดสรร ฉันจะขยายพาร์ติชันจากพื้นที่ว่าง 16GB ได้อย่างไร

lsblk:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0               2:0    1    4K  0 disk
sda               8:0    0   20G  0 disk
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0  4.5G  0 part
  ├─centos-root 253:0    0    4G  0 lvm  /
  └─centos-swap 253:1    0  512M  0 lvm  [SWAP]
sr0              11:0    1 1024M  0 rom

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


ทำman lvmหรือtldp.org/HOWTO/LVM-HOWTO
alexus

คำตอบ:


22

มีสามขั้นตอนในการทำ:

  1. แก้ไขตารางพาร์ติชันของคุณเพื่อsda2สิ้นสุดที่ส่วนท้ายของดิสก์
  2. อ่านตารางพาร์ติชันอีกครั้ง (จะต้องรีบู๊ต)
  3. ปรับขนาด LVM ของคุณโดยใช้ pvresize

ขั้นตอนที่ 1 - ตารางพาร์ทิชัน

fdisk /dev/sdaวิ่ง ปัญหาpในการพิมพ์ตารางพาร์ทิชันปัจจุบันของคุณและคัดลอกผลลัพธ์นั้นไปยังที่ปลอดภัย ตอนนี้ปัญหาdตามด้วย2การลบพาร์ติชันที่สอง ปัญหาnในการสร้างพาร์ติชันที่สองใหม่ ตรวจสอบให้แน่ใจว่าการเริ่มต้นเท่ากับจุดเริ่มต้นของตารางพาร์ติชันที่คุณพิมพ์ก่อนหน้านี้ ตรวจสอบให้แน่ใจว่าจุดสิ้นสุดอยู่ที่ท้ายดิสก์ (โดยปกติจะเป็นค่าเริ่มต้น)

ปัญหาtตามด้วย2ตามด้วย8eเพื่อสลับประเภทพาร์ติชันของพาร์ติชันที่สองของคุณใหม่เป็น 8e (Linux LVM)

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

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

รีบูตระบบของคุณ

ขั้นตอนนี้เป็นสิ่งจำเป็นเพื่อให้ตารางพาร์ติชันอ่านซ้ำได้

ปรับขนาด LVM PV

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


ทางออกที่ดีมันทำงานได้อย่างสมบูรณ์ ยังคงเป็นเพียงส่วนหนึ่งของวิธีการขยายโลจิคัลวอลุ่ม
Mimouni

1
คำตอบที่ยอดเยี่ยมนี้หยุดเพียงแค่ไม่ถึงเส้นชัย! ฉันหาวิธีทำให้เสร็จ ตัวอย่างที่ใช้ร่วมกันในคำถามที่แสดงให้เห็นว่าสองเล่มตรรกะ underneith sda2: และcentos-root centos-swapในกรณีนี้กลุ่มปริมาณcentosและทั้งสองไดรฟ์ตรรกะภายในกลุ่มที่มีและroot swapถ้าเราต้องการที่จะขยายcentos-rootปริมาณในตัวอย่างนี้ 50% ของพื้นที่ที่มีอยู่ในสดใหม่ของเราขยายพาร์ทิชันที่เราจะใช้sda2 ปรับขนาดระบบแฟ้มต้นแบบเพื่อให้ตรงกับปริมาณตรรกะขยาย lvextend -r -l +50%FREE /dev/centos/root-r
Shadoninja

@Shadoninja ไม่อยู่ในขอบเขตของคำถามเดิม ดังนั้นฉันไม่ได้เพิ่มและจะไม่เพิ่มลงในคำถามนี้ในอนาคต
Andreas Rogge

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

14

คุณสามารถทำได้โดยไม่ต้องรีบู๊ตใน CentOS 7 สมมติว่าดิสก์ของคุณคือ / dev / vda และการแบ่งพาร์ติชัน RHEL / CentOS มาตรฐาน:

ขยายพาร์ติชัน

# fdisk /dev/vda

ป้อนpเพื่อพิมพ์ตารางพาร์ติชันเริ่มต้นของคุณ

ป้อนd(ลบ) ตามด้วย2เพื่อลบคำจำกัดความของพาร์ติชันที่มีอยู่ (พาร์ติชัน 1 ปกติ / boot และพาร์ติชัน 2 มักเป็นพาร์ติชันรูท)

ป้อนn(ใหม่) ตามด้วยp(หลัก) ตามด้วย2อีกครั้งเพื่อสร้างหมายเลขพาร์ติชัน 2 อีกครั้งและenterเพื่อยอมรับการเริ่มต้นบล็อกและenterอีกครั้งเพื่อยอมรับการสิ้นสุดบล็อกที่เริ่มต้นไปยังจุดสิ้นสุดของดิสก์

ป้อนt(ชนิด) จาก2นั้น8eเปลี่ยนประเภทพาร์ติชันใหม่เป็น "Linux LVM"

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

ป้อนwเพื่อเขียนตารางพาร์ติชันลงดิสก์ คุณจะเห็นข้อผิดพลาดเกี่ยวกับDevice or resource busyสิ่งที่คุณสามารถละเว้น

อัพเดตตารางพาร์ติชันในหน่วยความจำเคอร์เนล

หลังจากเปลี่ยนตารางพาร์ติชั่นของคุณแล้วให้รันคำสั่งต่อไปนี้เพื่ออัพเดตตารางพาร์ติชั่นเคอร์เนลในหน่วยความจำ:

# partx -u /dev/vda

ปรับขนาดฟิสิคัลวอลุ่ม

ปรับขนาด PV เพื่อรับรู้พื้นที่พิเศษ

# pvresize /dev/vda2

ปรับขนาด LV และระบบไฟล์

ในคำสั่งนี้centosคือ PV rootคือ LV และ/dev/vda2พาร์ติชันที่ถูกขยาย ใช้pvsและlvsคำสั่งเพื่อดูชื่อฟิสิคัลและโลจิคัลวอลุ่มของคุณหากคุณไม่รู้จัก -rตัวเลือกในคำสั่งนี้ปรับขนาดระบบแฟ้มอย่างเหมาะสมเพื่อให้คุณไม่ต้องโทรresize2fsหรือxfs_growfsแยกต่างหาก

# lvextend -r centos/root /dev/vda2

คำตอบที่ซับซ้อนกว่านั้นคือ "เลือกคำตอบ" ที่หนึ่ง!
Furkat U.

อันนี้ยอดเยี่ยม ขอขอบคุณ! นี่ควรเป็นคำตอบที่ยอมรับได้ ฉันพลาดขั้นตอนสุดท้ายในการปรับขนาด lv และระบบไฟล์!
Skinner927

4

สำหรับผู้ที่มีปัญหาในการขยายโลจิคัลวอลุ่มอย่างฉันการอ่านโพสต์นี้อาจช่วยได้ สรุปคุณสามารถใช้lvextendเพื่อขยายปริมาณตรรกะของคุณ: lvextend -l +<PE> <LV_PATH> คุณสามารถได้รับจำนวนที่เหลือ PE (คน<PE>) โดยvgdisplayและได้รับเส้นทางของปริมาณตรรกะของคุณ ( LV_PATH) lvdisplayโดย

จากนั้นขึ้นอยู่กับการกระจายของคุณคุณต้องการxfs_growfs <LV_PATH>(Centos 7) หรือresize2fs <LV_PATH>ปรับขนาดในที่สุด


0

ลองใช้งานได้เลย - ทุกอย่างในบรรทัดเดียวไม่มีคำถาม:

parted —pretend-input-tty /dev/vda resizepart 2 100%;
partx -u /dev/vda; pvresize /dev/vda2;
lvextend -r centos/var /dev/vda2

คุณควรพิจารณาเพิ่มคำอธิบายและสภาพแวดล้อมของคุณ ตัวอย่างเช่น partx ของฉันไม่มีตัวเลือก-u(Centos6.7 util-linux-ng-2.17.2-12.28.el6)
Boop

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