Ext4
ext4 fs能否在磁碟寫入時因斷電而完全無法恢復?
假設您正在使用 ssd 或機械磁碟(作業系統也在同一個磁碟上,沒有電池/UPS)對 linux pc 盒中的磁碟進行全速寫入:
cat /dev/urandom > omg.txt
如果在此過程中突然斷電,或任何其他不正常的關機/重置。
文件是否損壞無法修復(即無法恢復任何數據?),文件系統是否有可能完全無法啟動?
文件是否已損壞且無法修復(即無法恢復任何數據?)
可能,是的。有兩條明顯的途徑可以發生這種情況。
Ext4 是一個元數據日誌文件系統——它只記錄對文件元數據(大小、位置、日期)的更改——而不是文件內容(btrfs 和 zfs 以很大的性能成本進行全數據日誌記錄)。因此,儘管您永遠不必對磁碟進行 fsck,但這並不意味著打開文件和關閉 + 刷新緩衝區之間的每個寫操作都會完成。對文件數據的寫入沒有事務控制。
第二種可能性是磁碟可能被電源尖峰物理損壞。雖然其餘硬體傾向於做好硬碟的隔離工作,但還是會有一些洩漏。
文件系統是否有可能完全無法啟動?
這是一個非常不同的問題——這種可能性要小得多。當然,第一種情況僅適用於您在中斷時碰巧正在編寫核心、引導載入程序、ramdisk 等的情況。