วิธีการปรับขนาด / ขยาย / ขยายพาร์ติชันที่ไม่ใช่ LVM ext4


20

ฉันได้ค้นหาฟอรัมแล้ว แต่ไม่สามารถหาคำตอบที่เหมาะสมได้:

ฉันมี Ubuntu Server 10.04 เป็น KVM Host และระบบแขกที่ทำงาน 10.04 ระบบโฮสต์ใช้ LVM และมีโลจิคัลวอลุ่มสามตัวซึ่งจัดให้กับผู้เยี่ยมชมเป็นอุปกรณ์บล็อกเสมือน - หนึ่งสำหรับ / หนึ่งสำหรับ / home และหนึ่งสำหรับแลกเปลี่ยน แขกได้รับการแบ่งพาร์ติชันโดยไม่มี LVM

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

ผลลัพธ์ของ fdisk -l คือ

me@produktion:/$ LC_ALL=en_US sudo fdisk -l

Disk /dev/vda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c8ce7

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *           1        3917    31455232   83  Linux

Disk /dev/vdb: 2147 MB, 2147483648 bytes
244 heads, 47 sectors/track, 365 cylinders
Units = cylinders of 11468 * 512 = 5871616 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f2bf7

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1               1         366     2095104   82  Linux swap / Solaris
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(0, 32, 33) logical=(0, 43, 28)
Partition 1 has different physical/logical endings:
     phys=(260, 243, 47) logical=(365, 136, 44)

Disk /dev/vdc: 225.5 GB, 225485783040 bytes
255 heads, 63 sectors/track, 27413 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00027f25

   Device Boot      Start         End      Blocks   Id  System
/dev/vdc1               1        9138    73398272   83  Linux

ผลลัพธ์ของการพิมพ์แบบแยกส่วนทั้งหมดคือ

Model: Virtio Block Device (virtblk)
Disk /dev/vda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  32.2GB  32.2GB  primary  ext4         boot


Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  2146MB  2145MB  primary  linux-swap(v1)


Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  75.2GB  75.2GB  primary  ext4

สิ่งที่ฉันต้องการบรรลุคือเพียงแค่ขยายหรือปรับขนาดพาร์ติชัน / dev / vdc1 เพื่อให้มันใช้พื้นที่ทั้งหมดที่มีให้โดยอุปกรณ์บล็อกเสมือน / dev / vdc ปัญหาคือว่าเมื่อฉันพยายามที่จะแยกจากกันก็บ่น:

(parted) select /dev/vdc                                                  
Using /dev/vdc
(parted) print                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  75.2GB  75.2GB  primary  ext4

(parted) resize 1                                                         
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Start?  [1049kB]?                                                         
End?  [75.2GB]? 224GB                                                     
Error: File system has an incompatible feature enabled.  Compatible features are has_journal, dir_index, filetype, sparse_super and large_file.  Use tune2fs
or debugfs to remove features.

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

แก้ไข: Cfdisk พบว่ามีพื้นที่ว่างขนาดเล็กพื้นที่ว่างแล้วพาร์ติชัน (ตั้งค่าสถานะเป็น "boot" และ Linux / ext3) และจากนั้นส่วนที่เหลือของพื้นที่ที่ไม่แบ่งพาร์ติชัน หลังจากลบพาร์ติชั่นแล้วสร้างมันใหม่อีกครั้งโดยใช้ cfdisk - cfdisk แสดงพื้นที่พาร์ติชั่นขนาดใหญ่หนึ่งอัน (ซึ่งจะใช้ได้กับฉัน) และเป็นระบบไฟล์ประเภท "Linux" เท่านั้น

Resize2fs ส่งคืนข้อผิดพลาดนี้ resize2fs 1.41.11 (14-Mar-2010) resize2fs: Bad magic number in super-block while trying to open /dev/vdc1 Couldn't find valid filesystem superblock

คำตอบ:


18

หน้านี้ระบุวิธีการถอนการติดตั้งลบสร้างพาร์ติชันใหม่ด้วยขนาดที่ต้องการและใช้ resize2fs เพื่อขยายพาร์ติชัน หน้า man resize2fs ตกลง

ฉันรู้ว่า 'ลบพาร์ทิชัน' ฟังดูน่ากลัว แต่ก็ไม่เปลี่ยนข้อมูลเลย มันแค่เปลี่ยนสิ่งที่อ้างอิงคอนเทนเนอร์ ตราบใดที่คุณไม่mkfs.ext4ควรทำเช่นนั้น

จุดเริ่มต้นพาร์ติชันของคุณจะต้องเหมือนเดิมหรือ OS จะไม่รู้วิธีตีความสิ่งที่อยู่ข้างหลัง จุดสิ้นสุดนั้นสามารถเพิ่มเติมได้เพื่อสร้างพาร์ติชันที่ใหญ่ขึ้น

ฉันคิดว่าข้อผิดพลาดในความคิดเห็นเกี่ยวข้องกับการย้ายจุดเริ่มต้น คุณต้องเริ่มต้นที่จุดเดียวกับที่เริ่มต้น จุดสิ้นสุดสามารถเลื่อนไปรอบ ๆ

ให้เครดิตpsusiสำหรับการแนะนำ fdisk แทน cfdisk และยืนยันปัญหาจุดเริ่มต้น


ตกลงฉันลบพาร์ติชันด้วย cfdisk และสร้างพาร์ติชันใหม่ แต่ฉันไม่สามารถปรับขนาด 2fs แล้วและฉันก็ไม่สามารถเมานต์ได้อีก
Mischa

resize2fs 1.41.11 (14-Mar-2010) resize2fs: หมายเลขเวทย์มนตร์ไม่ดีใน super-block ในขณะที่พยายามเปิด / dev / vdc1 ไม่พบ superblock ระบบไฟล์ที่ถูกต้อง
Mischa

1
ที่จริงแล้ว cfdisk พบว่ามีพื้นที่ว่างขนาดเล็กซึ่งไม่ได้แบ่งพาร์ติชั่นจากนั้นพาร์ติชั่น (ถูกตั้งค่าสถานะเป็น "boot" และ Linux / ext3) จากนั้นพื้นที่ว่างที่เหลือ หลังจากลบพาร์ติชั่นแล้วสร้างมันใหม่อีกครั้งโดยใช้ cfdisk - cfdisk แสดงพื้นที่พาร์ติชั่นขนาดใหญ่หนึ่งอัน (ซึ่งจะใช้ได้กับฉัน) และเป็นระบบไฟล์ประเภท "Linux" เท่านั้น
Mischa

8
คุณต้องสร้างพาร์ติชันใหม่เพื่อให้เริ่มต้นในเซกเตอร์เดียวกันกับที่เคยทำมา คุณไม่สามารถทำได้ด้วย cfdisk ใช้ fdisk หรือแยกส่วนและวางไว้ในโหมดเซกเตอร์
psusi

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

6

ตัวอย่าง:

/ dev / sdb2 เป็น / boot พาร์ติชัน มันคือ 100 MB ซึ่งค่อนข้างเล็ก ในการเพิ่มพาร์ติชั่น ext4 นี้บนระบบที่กำลังรันให้ทำ (เป็น root หรือ sudo):

umount / boot

แยก / dev / sdb

พิมพ์ (แยก)

รุ่น: ATA Patriot Torqx 2 (scsi)
ดิสก์ / dev / sdb: 32.0GB
ขนาดเซกเตอร์ (ตรรกะ / กายภาพ): 512B / 512B
ตารางพาร์ติชัน: msdos

จำนวนเริ่มต้นขนาดสิ้นสุดประเภทระบบไฟล์ธง
1 1049kB 12.9GB ประเภทหลัก 12.9GB = 83
2 12.9GB 13.0GB 107.0 ประเภทหลักของ ext4 หลัก = 83

(แยกส่วน) rm 2

(แยก) mkpart

ประเภทพาร์ติชัน? หลัก / ขยาย?
ประเภทระบบไฟล์หลัก? [ext2]
เริ่มต้นอย่างไร 12.9GB
สิ้นสุดหรือไม่ 13.4GB

(แยกส่วน) ออก

resize2fs / dev / sdb2

resize2fs 1.42.6 (21-Sep-2012)
ระบบไฟล์ที่ / dev / sdb2 ติดตั้งอยู่ที่ / boot; การปรับขนาดแบบออนไลน์ที่ต้องการ
old_desc_blocks = 1, new_desc_blocks = 2
ระบบไฟล์บน / dev / sdb2 ปัจจุบันมีความยาว 498688 บล็อก

ทำ!

ข้อมูลทั้งหมดยังคงอยู่ในสถานที่ / boot พร้อมใช้งานและใหญ่ 472MB (แยกไม่ปลอดภัยขนาดอ่านคู่มือเพื่อทราบสาเหตุ)

ข้อมูลทั้งหมดถูกสำรองไว้ก่อนหน้า แต่เป็นการป้องกันไว้ล่วงหน้าเท่านั้น ฉันแนะนำให้ทำเช่นเดียวกัน

ใช้คำสั่งต่อไปนี้เพื่อค้นหากระบวนการที่จะหยุดการ unmounting / boot หากล้มเหลว:

lsof / boot

โชคดี!


2
คุณต้องใช้หน่วยของเซกเตอร์ไม่ใช่ GB เพื่อให้แน่ใจว่าคุณได้รับมันในที่เดียวกัน
psusi

0

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

Couldn't find valid filesystem superblock.

จากfdisk รุ่น 2.17.2 , fdisk IIUC บังคับให้คุณเริ่มต้นจาก 2048 เพื่อให้แน่ใจว่าฮาร์ดไดรฟ์ของคุณ "อยู่ในแนวที่ถูกต้อง" ดังนั้นหากพาร์ติชั่นดั้งเดิมของคุณเริ่มต้นก่อนปี 2048 คุณจะต้องขับรถเป็นหลุมเป็นบ่อพยายามสร้างพาร์ติชันขึ้นมาใหม่

วิธีที่ดีที่สุดคือการrsync เมื่อโคลนดิสก์

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