创建.img文件后,如何可以再次删除所有未使用的空间吗?
(这是因为我使用raspi-config将所有可用空间分配给了根吗?)
我试图了解分区的含义(s)与Cygwin相似,但无法使fdisk工作(-bash:fdisk:命令未找到)-(在读取最后包含未分区空间的16Gb卡的图像后:截断了吗?)
#1 楼
因此,我发现最好的方法是使用GParted(您可以使用基于Linux的操作系统,也可以从GParted Live USB启动)。查找有关如何详细执行每个步骤的详细说明非常简单,但这是我发现可以使用的常规方法:运行GParted,找到您的SD卡在设备列表中,并将主分区缩小到尽可能小的大小。
取该分区的最后一个扇区的值,然后乘以扇区大小(对我来说是512;我认为这是标准的,尽管您可以在设备的GParted设置中进行检查):这将为您提供要复制的总字节数。
将总字节数除以4096(如果需要,可以四舍五入-最好多花一点时间)空间不足),这将为您提供“计数”,然后在Linux环境中的终端上输入以下命令(您可以从GParted Live USB操作系统终端或在Cygwin中执行此操作,而无需使用sudo这么长的时间) (以管理员身份运行时):
sudo dd if=/dev/mmcblk0 of=/path/to/your/file.img bs=4k count=<count>
如果需要,请更改输入设备的位置。这应该为您提供一个最终的图像文件,该文件应尽可能小,省去空白空间。
#2 楼
存在一个名为pishrink的不错的工具,该工具可以通过收缩根分区来最大程度地减小dd图像的大小。如果您是第一次启动还原的映像,则再次将分区扩展到其最大大小。如果运行Windows,只需在Raspberry上使用Linux来缩小图像。评论
这确实是一个很好的选择,因为脚本提供了一些选项,可以在首次启动时自动扩展文件系统,删除日志和机密信息,并在缩小后压缩映像。
–gromain
20-10-14在9:56
@gromain是的。同时,社区为Pishrink添加了许多其他有用的功能。
–抽筋
20-10-18在12:06
#3 楼
最新版本的Win32DiskImager具有选项“只读分配的分区”。它仅写入已用空间,不能为空。
使用GParted缩小SD卡上的分区。
创建映像从更大的卡上使用Win32DiskImager。
在更高的卡上使用Win32DiskImager在较小的卡上写入映像。
#4 楼
简单的答案是你做不到。如果要缩小图像,请使用压缩功能,这是大多数操作(在'NIX gzip上效果很好)。您可以在此站点上找到许多有关此主题的讨论。替代方法是仅备份文件。下面介绍了我的方法。
https://raspberrypi.stackexchange.com/a/28087/8697
评论
您可以(如果数据内容小于新的SD卡)
–野生
15年11月21日在16:39
压缩无济于事。 IMG文件所在的磁盘空间无关紧要。与要写入IMG文件的SD卡上的空间有关
–托马斯·韦勒(Thomas Weller)
16年8月31日在12:39
@Thomas压缩IMG文件会使它变小,以便(希望)适合您要写入的SD卡....我丢失了什么吗?
–user253751
16-10-11在2:49
@immibis:您可以gzip IMG文件,以便它在PC硬盘上使用更少的空间。如果将压缩后的数据写入SD卡,则不会启动。数据必须采用正确的格式才能启动,并且不是gzip格式。
–托马斯·韦勒(Thomas Weller)
16-10-11在6:13
@Thomas哦,我以为OP出于某种原因(而不是还原它们)将备份存储在另一个SD卡上。
–user253751
16-10-11在7:29
评论
我可以验证这可行。几分钟前,我刚刚尝试过将它从8GB卡更改为4GB卡。只要您的数据小于目标卡,这应该可以工作。
–PNDA
16年6月9日在17:05
自从我继续前进以来,整理一下忘了这篇文章。将来会尝试。似乎这是一个常见问题,因此感谢您的输入。
–雷尼尔·德尔波特(Renier Delport)
16年7月4日在16:48
这应该被标记为正确答案!谢谢!
–rodripf
16-11-19在15:43
在Windows上有任何方式吗?
– Flash Thunder
16 Dec 19'在17:26
您可以从GParted Live USB启动。
–麦克·罗伯茨(Mike Roberts)
16 Dec 20'在11:36