在挂起到磁盘时启动断电的计算机是否安全?

jiw*_*ene 11 linux suspend corruption linux-kernel ups

我有带电池电源的计算机,可以在断电后运行计算机大约一分钟。我想在断电后立即触发挂起到磁盘,以便稍后恢复。initrd(默认 Devuan initrd)在交换分区中寻找挂起签名,并在找到签名时从它恢复。我不确定在将数据写入交换分区时电源完全中断会发生什么。当电池出现故障或系统在挂起时挂起时,可能会发生这种情况。系统会从损坏的交换分区恢复还是忽略交换分区?我认为第二个选项更好 - 错误卸载文件系统比损坏系统状态更好。

签名是在其他数据之后还是之前写入交换分区?它使用校验和吗?

Chr*_*own 19

如果在显式进入 S4 或 S5 状态(以下简称为“休眠状态”)之前断电,则交换分区中部分填充的数据将被完全忽略,因为没有休眠状态持续存在。交换分区和文件也是易失性的,在没有休眠状态的情况下重新启动后,其中的数据将被忽略。

在内核中,配置的 请求platform_hibernation_ops->leave从休眠状态恢复,仅在从休眠状态恢复时调用。例如,在支持 S5 的大多数现代平台上,我们配置了重启通知程序。

在进入休眠状态之前断电(因此休眠文件被完全写入)不会配置任何休眠来恢复,因此它不可能尝试使用部分填充的交换空间解冻。因此,您不必担心内核会尝试从部分完全休眠状态中恢复。