นี่คือการสังเคราะห์คำตอบด้านบนและที่อื่น ๆ ที่เหมาะกับฉัน - สำรองรูปภาพของคุณในกรณีที่คุณทำผิดพลาด:
ขั้นแรกทำให้ไฟล์รูปภาพใหญ่ขึ้น (ที่นี่เราเพิ่ม 1GB ไปจนสิ้นสุด):
truncate -s +1G ./image.img
ถัดไปแมปภาพทั้งหมดเป็นอุปกรณ์วนรอบเพื่อให้เราสามารถกระตุ้นที่ตารางพาร์ติชัน
sudo losetup /dev/loop0 ./image.img
สำหรับการอ้างอิงในอนาคตให้ทิ้งไว้:
sudo fdisk -l /dev/loop0
ผลลัพธ์ดูเหมือนว่า:
Disk /dev/loop0: 2962 MB, 2962227200 bytes
255 heads, 63 sectors/track, 360 cylinders, total 5785600 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: 0x000c4661
Device Boot Start End Blocks Id System
/dev/loop0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/loop0p2 122880 5785599 2831360 83 Linux
ตอนนี้เราจะสร้างพาร์ติชันใหม่ล่าสุดโดยการลบพาร์ติชันนั้นจากนั้นสร้างพาร์ติชันใหม่ที่ตำแหน่งเริ่มต้นเดียวกันประเภทเดียวกัน แต่ตำแหน่งสิ้นสุดที่แตกต่างกัน ดังนั้นจดบันทึกคอลัมน์ "เริ่มต้น" สำหรับ loop0p2 (พาร์ติชัน 2 - พาร์ติชัน Linux) - เราจะใช้ในภายหลัง - 122880 ที่นี่
sudo fdisk /dev/loop0
ป้อนสิ่งต่อไปนี้ - ปลอดภัยสำหรับการป้อน - ไม่มีสิ่งใดเกิดขึ้นอย่างถาวรจนกว่าคุณจะได้อ่านคำอธิบายของฉันที่ตามมา:
p
d
2
n
p
2
122880
- เพียงกด Enter เพื่อยอมรับค่าเริ่มต้น
p
ขั้นตอนที่ 1 - พิมพ์ตารางปัจจุบัน ขั้นตอนที่ 2-3 - ลบพาร์ติชัน 2 ขั้นตอนที่ 4-8 - สร้างพาร์ติชัน 2 ใหม่ด้วยจุดสิ้นสุดใหม่ (ค่าเริ่มต้นคือจุดสิ้นสุดของภาพ) ขั้นตอนที่ 9 - พิมพ์ตารางใหม่
สมมติว่าตารางที่พิมพ์ใหม่ของคุณเหมือนกับตารางต้นฉบับยกเว้นค่า End และค่า Blocks (เช่นขนาดที่เปลี่ยนแปลง) คุณพร้อมที่จะส่งมอบ
ป้อนw
เพื่อยืนยันการเปลี่ยนแปลงของคุณจากนั้นป้อนq
เพื่อออก
คุณสามารถลบอุปกรณ์ลูปแบ็คนั้นเราจะสร้างอุปกรณ์อื่นสำหรับพาร์ติชันที่สอง จำจุดเริ่มต้นที่คุณจดบันทึกและใช้งานด้านบน - เราจะใช้อีกครั้ง:
sudo losetup -d /dev/loop0 # delete the old loop setup
sudo losetup -o $((122880*512)) /dev/loop0 ./image.img
ที่จะสร้างการแมปใหม่ในการ/dev/loop0
ชี้ไปที่พาร์ติชัน 2 - สำหรับการอ้างอิง 512 คือขนาดเซกเตอร์ที่คุณเห็นในfdisk
เอาต์พุตแรก
ตอนนี้ปรับขนาดพาร์ติชันเพื่อเติมพื้นที่ว่าง:
sudo e2fsck -f /dev/loop0
sudo resize2fs /dev/loop0
เสร็จสิ้น - ล้างข้อมูลตอนนี้:
sudo losetup -d /dev/loop0