使用GParted调整分区图像的大小?


15

我之前已经在GParted中调整了分区的大小。现在,我想将一个很大但大部分为空的分区移动到一个较小的驱动器上。与其在原地调整大小,不如在第三个驱动器上复制一个副本(使用dd的驱动器映像),调整副本的大小,然后将副本dd替换到新的驱动器。但是我不认为Gparted可以在驱动器映像上运行吗?我该怎么做?我可以直接使用GParted使用的工具吗?

哦!还是可以使用回送功能使映像文件看起来像gparted可以运行的物理驱动器?


Answers:


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,因为我只是制作了一个空白磁盘映像用于说明!

现在,您可以根据需要进行测试运行,尽管由于在图像上进行操作,这不是严格必需的。您可以通过附加指定千字节,兆字节或千兆字节大小kM或者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.

而已!现在,您可以将该磁盘映像复制到新设备。


嗯...逻辑分区在扩展分区内。制作副本时,我应该dd逻辑分区本身吗?
endlith 2011年

昨晚我在ext3图像文件上使用了resize2fs,之后该文件本身的大小减小了!:)我认为这将是一个单独的步骤,因为文件系统与分区不同。
endlith 2011年

@endolith:是的,dd逻辑分区。如果您做了扩展分区,您将在其中获得所有逻辑分区!
补丁

@Patches:好吧,里面只有一个逻辑分区,大小相同。:)
endolith 2011年

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
我不想在适当位置调整大小。如果不需要的话,不想弄乱原件。
endlith 2011年

0

我使用GParted已有很多年了,而且从没有失去过一点。我也喜欢Windows的Easus免费家庭版。

您的分区大小是多少?您可以将数据复制到USB / DVD /免费的在线存储系统中,以免丢失数据-然后调整大小吗?如果您让上述两个工具运行完毕,它们将不会丢失数据。

你说I've resized partitions in GParted before-那么为什么现在担心呢?而且DD会有点复制...所以无论如何您都必须调整大小(首先进行碎片整理)。


我正在将一个分区从驱动器A(我希望是只读的)转换为驱动器C上的映像文件,调整其大小,然后将其移动到小于驱动器B的驱动器B上的一个分区(因此我必须调整大小)第一)。
endlith 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.