休眠時可以安全地共享交換嗎?
假設我有兩個不同的 Linux 安裝A和B,都使用相同的交換分區。
據我了解,執行A或B不會導致交換問題,因為在給定時間只有其中一個在使用它。但是,如果我啟動A,休眠,然後啟動B ,則**兩者都使用交換(A處於被動形式,但數據在那裡)。
問題是:休眠的系統在這之後還能存活嗎?如果沒有,是記憶體損壞還是A無法恢復,導致正常啟動?
注意:我的主要音樂會是檢測和使用硬碟驅動器上可用交換分區的實時系統。他們會破壞休眠的系統嗎?
問題是:休眠的系統在這之後還能存活嗎?
如果系統 B 使用交換空間,你不妨假設它會,那麼我真的懷疑系統 A 是否能夠成功地從休眠狀態重新啟動,如果這樣做,後果可能會很糟糕。
如果沒有,記憶體會損壞還是A無法恢復?
儘管核心文件確實包含:
* BIG FAT WARNING ********************************************************* * * If you touch anything on disk between suspend and resume... * ...kiss your data goodbye.
我認為這意味著適用於實際的文件系統,因為同樣
[src]/Documentation/power/swsusp.txt
也注意到:恢復程序檢查恢復設備是否存在,如果找到,則檢查休眠圖像簽名的內容。如果兩者都找到,它會恢復休眠圖像。
所以,假設這個簽名在swap設備的開頭,並且假設正常的swap使用也從設備的開頭開始,那麼正常的swap使用會破壞“休眠映像簽名”,當系統A啟動時,它會找不到這樣的簽名並且不會從休眠狀態恢復,它將重新開始。
但是,儘管這些假設似乎是合理的,但如果沒有實施該系統的人的任何承諾,就不可能說它們是完全正確的——我的建議是,你這樣做可能是在進行一場嚴肅的賭博。
如果您正在使用休眠並且在您的引導載入程序菜單中還沒有這樣的選項,順便說一句,最好在核心行中包含一個這樣的選項,
noresume
這樣您就可以選擇跳過從休眠狀態恢復。據我所知,不幸的是沒有這樣的核心行參數來禁用交換的使用,例如,當您知道系統 A 使用交換進行休眠時,對於系統 B。