Linux

在掛起到磁碟時啟動斷電的電腦是否安全?

  • February 24, 2021

我有一台帶電池供電的電腦,可以讓電腦在斷電後執行大約一分鐘。我想在斷電後立即觸發磁碟掛起,以便稍後恢復。initrd(預設 Devuan initrd)在交換分區中查找掛起簽名,並在找到簽名時從它恢復。我不確定在將數據寫入交換分區時電源完全中斷時會發生什麼。當電池出現故障或系統在掛起時掛起時,可能會發生這種情況。系統會從損壞的交換分區恢復還是忽略交換分區?我認為第二個選項更好 - 錯誤地解除安裝文件系統比損壞系統狀態更好。

簽名是在其他數據之後還是之前寫入交換分區?它使用校驗和嗎?

如果在顯式進入 S4 或 S5 狀態(以下簡稱為“休眠狀態”)之前斷電,則交換分區中部分填充的數據將被完全忽略,因為沒有保持休眠狀態。交換分區和文件也是易失性的,在沒有休眠狀態的情況下重新啟動後將忽略其中的數據。

在核心中,從休眠狀態恢復是由配置請求的platform_hibernation_ops->leave,它僅在從休眠狀態恢復時呼叫。例如,在大多數支持 S5 的現代平台上,我們配置了重啟通知程序。

在進入休眠狀態之前斷電(因此休眠文件被完全寫入)不會配置任何休眠以恢復,因此它不會嘗試使用部分填充的交換空間解凍。因此,您不必擔心核心會嘗試從部分完全休眠中恢復。

引用自:https://unix.stackexchange.com/questions/635646