ปรับขนาดอิมเมจพาร์ติชั่นด้วย GParted?


15

ฉันปรับขนาดพาร์ติชันใน GParted มาก่อน ตอนนี้ฉันต้องการย้ายพาร์ติชันที่ใหญ่ แต่ว่างเปล่าไปยังไดรฟ์ที่เล็กกว่า แทนที่จะปรับขนาดในสถานที่ฉันต้องการทำสำเนาในไดรฟ์ที่ 3 (ภาพไดรฟ์โดยใช้ dd) ปรับขนาดสำเนาแล้วคัดลอกไปยังไดรฟ์ใหม่ แต่ฉันไม่คิดว่า Gparted ทำงานกับภาพไดรฟ์หรือไม่ ฉันจะทำสิ่งนี้ได้อย่างไร ฉันสามารถใช้เครื่องมือที่ GParted ใช้โดยตรงได้หรือไม่

Ooh! หรือฉันจะใช้สิ่งลูปแบ็คเพื่อทำให้ไฟล์รูปภาพดูเหมือนกับฟิสิคัลไดร์ฟที่ gparted สามารถทำงานได้?


คำตอบ:


3

คุณไม่สามารถทำได้ด้วย GParted แต่คุณสามารถใช้ntfsresizeคำสั่งกับดิสก์อิมเมจได้โดยตรง

ขั้นแรกคัดลอกอิมเมจของดิสก์ คุณสามารถค้นหาชื่ออุปกรณ์ดิสก์โดยใช้blkidหรือ gParted แล้วเรียกใช้:

sudo dd if=<disk device> of=<image file>

ตัวอย่างเช่น:

$ sudo dd if=/dev/sda2 of=disk.img
1000000+0 records in
1000000+0 records out
512000000 bytes (512 MB) copied, 9.33361 s, 54.9 MB/s

จากนั้นตรวจสอบว่าคุณสามารถปรับขนาดตามขนาดที่คุณต้องการได้หรือไม่โดยเรียกใช้:

ntfsresize -i <image file>

ตัวอย่างเช่น

$ ntfsresize -i disk.img
ntfsresize v2011.4.12 (libntfs-3g)
Device name        : disk.img
NTFS volume version: 3.1
Cluster size       : 4096 bytes
Current volume size: 511996416 bytes (512 MB)
Current device size: 512000000 bytes (512 MB)
Checking filesystem consistency ...
100.00 percent completed
Accounting clusters ...
Space in use       : 4 MB (0.6%)
Collecting resizing constraints ...
You might resize at 3035136 bytes or 4 MB (freeing 508 MB).
Please make a test run using both the -n and -s options before real resizing!

ในตัวอย่างนี้ฉันสามารถปรับขนาดจนถึง 4MB เพราะฉันเพิ่งทำดิสก์อิมเมจเปล่าเพื่อประกอบการสาธิต!

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

ntfsresize -cnvs <size> <image file>

ตัวอย่างเช่น

$ ntfsresize -cnvs 256M disk.img 
ntfsresize v2011.4.12 (libntfs-3g)

ไม่มีเอาต์พุตเป็นเอาต์พุตที่ดี! ตอนนี้ทำเพื่อจริง:

ntfsresize -vs <size> <image file>

ตัวอย่างล่าสุด:

$ ntfsresize -vs 256M disk.img 
ntfsresize v2011.4.12 (libntfs-3g)
Device name        : disk.img
NTFS volume version: 3.1
Cluster size       : 4096 bytes
Current volume size: 511996416 bytes (512 MB)
Current device size: 512000000 bytes (512 MB)
New volume size    : 255996416 bytes (256 MB)
Checking for bad sectors ...
Checking filesystem consistency ...
100.00 percent completed
Accounting clusters ...
Space in use       : 4 MB (0.6%)
Collecting resizing constraints ...
Needed relocations : 625 (3 MB)
WARNING: Every sanity check passed and only the dangerous operations left.
Make sure that important data has been backed up! Power outage or computer
crash may result major data loss!
Are you sure you want to proceed (y/[n])? y
Schedule chkdsk for NTFS consistency check at Windows boot time ...
Resetting $LogFile ... (this might take a while)
Relocating needed data ...
Relocate record       1:0x80:00000001:0x00000000:0x0000f423 --> 0x00007a11
Relocate record       2:0x80:00000624:0x00000000:0x0000f424 --> 0x00007a12
100.00 percent completed
Updating $BadClust file ...
Updating $Bitmap file ...
Updating Boot record ...
Syncing device ...
Successfully resized NTFS on device 'disk.img'.
You can go on to shrink the device for example with Linux fdisk.
IMPORTANT: When recreating the partition, make sure that you
  1)  create it at the same disk sector (use sector as the unit!)
  2)  create it with the same partition type (usually 7, HPFS/NTFS)
  3)  do not make it smaller than the new NTFS filesystem size
  4)  set the bootable flag for the partition if it existed before
Otherwise you won't be able to access NTFS or can't boot from the disk!
If you make a mistake and don't have a partition table backup then you
can recover the partition table by TestDisk or Parted's rescue mode.

แค่นั้นแหละ! ตอนนี้คุณสามารถคัดลอกดิสก์อิมเมจนั้นไปยังอุปกรณ์ใหม่


อืม ... โลจิคัลพาร์ติชันอยู่ในพาร์ติชันเสริม ฉันควรจะสร้างโลจิคัลพาร์ติชันเองเมื่อทำการคัดลอกหรือไม่
endolith

ฉันใช้ resize2fs กับไฟล์ภาพ ext3 เมื่อคืนที่แล้วและตัวไฟล์เองก็ลดขนาดลงหลังจากนั้น! :) ฉันคิดว่ามันจะเป็นขั้นตอนแยกต่างหากเพราะระบบไฟล์ไม่เหมือนกับพาร์ติชัน
endolith

@endolith: ใช่โลddจิคัลพาร์ติชัน หากคุณทำพาร์ติชันเสริมคุณจะได้รับโลจิคัลพาร์ติชั่นทั้งหมดข้างใน!
แพทช์

@Patches: มีโลจิคัลพาร์ติชันเพียงตัวเดียวเท่านั้นที่มีขนาดเท่ากัน :)
endolith

1
@endolith: ยังผมคิดว่าddไอเอ็นจีพาร์ทิชันขยายจะนำข้อมูลพิเศษที่จะสร้างความสับสนและe2fsprogs ntfsprogsพวกเขาไม่รู้อะไรเลยเกี่ยวกับพาร์ติชั่นอย่างที่คุณค้นพบก่อนหน้านี้
แพทช์

14

ฉันไม่แน่ใจว่าสถานการณ์เมื่อ 5 ปีที่แล้ว แต่วันนี้มันเป็นเค้ก

$ sudo udisksctl loop-setup -f disk.img
Mapped file disk.img as /dev/loop0.
$ sudo gparted /dev/loop0

ตอนนี้คุณสามารถกินเค้ก


0

คุณสามารถปรับขนาดด้วย GParted แล้วใช้ Clonezilla เพื่อย้ายพาร์ติชันไปยังดิสก์ใหม่ได้หรือไม่


2
ฉันไม่ต้องการที่จะปรับขนาดในสถานที่ ไม่ต้องการทำให้เสียต้นฉบับถ้าไม่ต้องทำ
endolith

0

ฉันใช้ GParted มาหลายปีและไม่เคยสูญเสียอะไรเลย ฉันชอบEasusรุ่นบ้านฟรีสำหรับ Windows

พาร์ติชั่นของคุณใหญ่ / เล็กแค่ไหน? คุณสามารถคัดลอกข้อมูลไปยัง USB / DVD / ระบบจัดเก็บข้อมูลออนไลน์ฟรีเพื่อไม่ให้สูญเสีย - แล้วปรับขนาดให้เข้าที่ได้หรือไม่ เครื่องมือสองตัวที่กล่าวมาข้างต้นจะไม่สูญเสียข้อมูลของคุณหากคุณปล่อยให้มันทำงานจนเสร็จ

คุณพูดI've resized partitions in GParted before- แล้วทำไมต้องกังวลตอนนี้? และ DD จะทำบิตสำหรับการคัดลอกบิต ... ดังนั้นคุณจะต้องปรับขนาดต่อไป (Defrag ก่อน)


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