Thay đổi kích thước hình ảnh phân vùng với GParted?


15

Tôi đã thay đổi kích thước phân vùng trong GParted trước đó. Bây giờ tôi muốn chuyển một phân vùng lớn nhưng chủ yếu là trống sang một ổ đĩa nhỏ hơn. Thay vì thay đổi kích thước tại chỗ, tôi muốn tạo một bản sao trên ổ đĩa thứ 3 (hình ảnh ổ đĩa bằng dd), thay đổi kích thước bản sao và sau đó dd bản sao vào ổ đĩa mới. Nhưng tôi không nghĩ Gparted hoạt động trên hình ảnh ổ đĩa? Làm thế nào tôi sẽ làm điều này? Tôi có thể sử dụng các công cụ GParted sử dụng trực tiếp không?

Ôi! Hoặc tôi có thể sử dụng điều loopback để làm cho tệp hình ảnh trông giống như một ổ đĩa vật lý mà gparted có thể hoạt động không?


Câu trả lời:


3

Bạn không thể làm điều này với GParted, nhưng bạn có thể sử dụng ntfsresizelệnh trực tiếp trên ảnh đĩa.

Đầu tiên, sao chép hình ảnh đĩa. Bạn có thể tìm tên thiết bị đĩa bằng cách sử dụng blkidhoặc gParted, rồi chạy:

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

Ví dụ:

$ 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

Sau đó, xác minh xem bạn có thể thay đổi kích thước của nó theo kích thước bạn cần bằng cách chạy không:

ntfsresize -i <image file>

Ví dụ:

$ 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!

Trong ví dụ này, tôi có thể thay đổi kích thước xuống còn 4 MB vì ​​tôi chỉ tạo một hình ảnh đĩa trống cho mục đích minh họa!

Bây giờ bạn có thể thực hiện chạy thử nếu bạn muốn, mặc dù điều đó không thực sự cần thiết vì bạn đang vận hành trên một hình ảnh. Bạn có thể xác định kích thước bằng kilobyte, megabyte hoặc gigabyte bằng cách thêm một k, Mhoặc G, tương ứng:

ntfsresize -cnvs <size> <image file>

Ví dụ:

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

Không có đầu ra là đầu ra tốt! Bây giờ làm điều đó thật sự:

ntfsresize -vs <size> <image file>

Ví dụ cuối cùng:

$ 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.

Đó là nó! Bây giờ bạn có thể sao chép hình ảnh đĩa đó vào thiết bị mới.


Hmmm ... phân vùng logic nằm trong phân vùng mở rộng. Tôi có nên dd phân vùng logic khi tạo bản sao?
endolith

Tôi đã sử dụng resize2fs trên tệp hình ảnh ext3 tối qua và bản thân tệp đã bị giảm kích thước sau đó! :) Tôi nghĩ rằng đó sẽ là một bước riêng biệt vì hệ thống tập tin không giống như phân vùng.
endolith

@endolith: Vâng, ddphân vùng hợp lý. Nếu bạn đã làm phân vùng mở rộng, bạn sẽ nhận được tất cả các phân vùng hợp lý bên trong nó!
Bản vá

@Patches: Chỉ có một phân vùng logic bên trong nó, có cùng kích thước. :)
endolith

1
@endolith: Tuy nhiên, tôi nghĩ rằng ddviệc phân vùng mở rộng sẽ mang lại thêm thông tin sẽ gây nhầm lẫn e2fsprogsntfsprogs. Họ không biết gì về phân vùng, như bạn đã khám phá trước đó.
Bản vá

14

Tôi không chắc tình hình 5 năm trước là gì, nhưng hôm nay là bánh.

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

Bây giờ bạn có thể ăn bánh.


0

Bạn có thể thay đổi kích thước nó tại chỗ với GParted sau đó sử dụng Clonezilla để di chuyển phân vùng sang đĩa mới không?


2
Tôi không muốn thay đổi kích thước tại chỗ. Đừng muốn làm hỏng bản gốc nếu tôi không phải làm vậy.
endolith

0

Tôi đã sử dụng GParted trong nhiều, nhiều năm và không bao giờ bị mất một chút nào. Tôi cũng thích Easus phiên bản miễn phí tại nhà cho Windows.

Làm thế nào lớn / nhỏ là phân vùng của bạn? Bạn có thể sao chép dữ liệu vào USB / DVD / hệ thống lưu trữ trực tuyến miễn phí để không bị mất dữ liệu - và sau đó thay đổi kích thước tại chỗ không? Hai công cụ nói trên sẽ không mất dữ liệu của bạn nếu bạn để chúng chạy đến khi hoàn thành.

Bạn nói I've resized partitions in GParted before- vậy tại sao bây giờ lại lo lắng? Và DD sẽ tạo ra một chút cho bản sao bit ... vì vậy bạn sẽ phải thay đổi kích thước bằng mọi cách (phân mảnh trước).


Tôi đang chuyển đổi phân vùng từ Ổ A (mà tôi muốn chỉ đọc) thành tệp hình ảnh trên Ổ C, thay đổi kích thước rồi chuyển sang phân vùng trên Ổ B, nhỏ hơn A (vì vậy tôi phải thay đổi kích thước Đầu tiên).
endolith
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.