更改DMG容量


20

将我的mac HDD更改为SSD时,遇到了以下问题:

我已经创建了旧硬盘的DMG映像,其容量为320GB。DMG文件会记住并保存图像中的容量,问题是我的SSD只有120GB。因此,如果我不能以某种方式减小容量,则无法使用DMG。

编辑:图像上的已用空间总量仅为15GB。

我看过了,hdiutil但实际上我是Rails开发人员的红宝石,所以我并没有真正得到这些东西。

他们使用此工具或其他工具以任何方式降低DMG的容量吗?

谢谢!

Answers:


39

我没有看到通过GUI实现此目的的好方法-您必须hdiutil按要求使用。这是一个快速的命令。要调整大小(将25G更改为所需的大小),

hdiutil resize -size 25G /PATH/TO/DISK/IMAGE.dmg

压缩它的另一种方法是将磁盘映像克隆到一个稀疏包中,然后再压缩稀疏包。这可能有效或无效,具体取决于发生了多少压缩。

首先,创建镜像您的旧磁盘映像的磁盘映像:

hdiutil convert /location/of/disk.dmg -format UDSP -o /PATH/TO/NEWIMAGE.sparseimage

然后,压缩所得的sparseimage:

hdiutil compact /PATH/TO/NEWIMAGE.sparseimage

如果这些命令不起作用,则与您的磁盘映像和/或权限有关。

我已经花了很多时间玩游戏,hdiutil而且还很完美-我发现并提交了《雪豹》中的错误,但《山狮》中的错误仍未得到纠正,因此,如果您确实有一些奇怪的行为,请不要不客气!


我已经尝试过了,但是resize动词引发了权限问题,我现在正在创建RW磁盘映像,以查看是否可行。
Tim Baas 2012年

通过我的RW磁盘映像,我能够使用调整大小动词并将映像缩小到120G,从而产生了128.85 GB的容量。这是正确的方法,但仍然不足以容纳我的SSD。它说,紧凑动词不起作用compact failed - function not implemented
蒂姆·巴斯

@TimBaas Kinda较晚,但是如果您遇到权限问题(也许您没有DMG上的写权限),则可以使用sudo hdiutil resize -size 25G /PATH/TO/DISK/IMAGE.dmg。我只是用Time Machine备份磁盘映像完成此操作的,它似乎没有破坏任何权限。
sudo

我使用第二条命令将图像转换为稀疏图像,但是无论是compact还是,resize都无法对其进行处理。compact说它修剪0字节,但我有40GiB的空闲空间。convert说大小太小。该卷为Mac OS扩展(日志)。
sudo

1

试试这个:

hdiutil compact image.dmg

但是正如您在hdiutil手册中所看到的:

Depending on the location of files in the hosted filesystem, compact may or may not shrink the image.

感谢您的反应。当执行此命令我得到的回应是他们的权限问题..大概是因为伤害是只读格式的磁盘映像。我现在有碳复制克隆创建通过FireWire副本..
蒂姆Baas

您可以使用Mac OS X磁盘实用程序将ro图像转换为rw图像。

我已经与CCC合作了,谢谢您的帮助!
Tim Baas 2012年

1

在cjc指出要在apple.stackexchange.com上问问题之后,我做了。当问问题时,我得到了一个相关的回答,有人回答说可以尝试使用Carbon Copy Cloner。

Carbon Copy Cloner通过FireWire将文件克隆到我的SSDisk,这没有任何问题,一切都应该如此。

这是我指的问题:

从DMG还原系统(原始源磁盘大于目标磁盘)

对于那些对调整磁盘映像大小感兴趣的人:

在Mac的“磁盘工具”中使磁盘映像为可读写:

装入磁盘,选择它,然后单击新磁盘映像。在磁盘映像结构下拉列表中选择“读写”,然后单击“保存”。(我的操作系统是荷兰语,所以这些是我自己的翻译)。

使用hdiutil调整大小磁盘映像:

在终端:hdiutil resize -size 100G /location/of/disk.dmg。您可以将100G替换为所需的大小。

可选(对我不起作用),您可以尝试将其压缩:

在终端:hdiutil convert /location/of/disk.dmg -format UDSP -o /location/of/NEW/disk.dmg

这将创建一个稀疏图像。

然后: hdiutil compact /location/of/SPARSE/disk.dmg.sparseimage

这将尝试释放磁盘映像上的空间。如果可以,我想您可能需要再次调整DMG的大小以降低容量(我不确定)。


0

尝试了所有这些都无济于事;hdiutil不会让我将大小调整到某个阈值以下(远低于OP)。

简单答案:

  1. 以所需的大小制作一个新的DMG文件。
  2. 从旧的DMG复制所有文件
  3. 关闭并重新打开新的DMG,并确认一切正常
  4. 垃圾桶/备份/存档旧的DMG。

我不确定复制系统时如何执行此操作。cp给我大量的特殊文件错误。
sudo
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.