将 FreeBSD 交换空间清零?

将 FreeBSD 交换空间清零?

我想对我的 FreeBSD VM 中的分区/切片进行零填充,以便为归档提供更好的压缩。对于那些带有文件系统的分区/切片,这个过程对我来说没有问题。

我知道我可以通过关闭交换空间使用swapoff -a。但是,我不确定交换空间在 FreeBSD 中是否具有特殊结构,以及mkswap在使用 零填充切片后是否需要重新初始化该结构(就像在 Linux 中一样)dd

任何人都可以阐明如何安全地对交换空间和所有分区进行零填充,以便在关闭后获得最佳的压缩效果吗?

答案1

没有特殊的结构,所以这样做没有什么坏处dd if=/dev/zero of=/dev/yourswapdev。只要确保您使用正确的设备即可。 :)(猜测这是一个虚拟机,否则没有任何好处。)

答案2

我确实尝试 dd if=/dev/zero of=/dev/$someswappartition减小整个磁盘映像的大小。

结果是不可取的,下次系统启动需要几分钟时间卡在启动屏幕上。

如果您的系统配置为使用 UUID 来识别交换分区(我的 debian 10/11 默认情况下会这样做)。使用 dd 将分区清零,将有效破坏 UUID。导致交换分区无法识别,因为它没有 UUID。不能进行 swapon/off 操作,并且不能在启动时激活,导致系统启动时长时间等待超时。

清零后,用于mkswap /dev/$someparttition UUID=$ORIGINAL_UUID恢复UUID。然后它将正常工作。

相关内容