假设您正在使用 ssd 或机械磁盘(操作系统也在同一磁盘上,没有电池/UPS)的 linux pc 盒中对磁盘进行全速写入:
cat /dev/urandom > omg.txt
如果在此过程中突然断电,或任何其他类型的不正常关机/重置。
文件会不会损坏无法修复(即任何数据都无法恢复?),文件系统是否有可能完全无法启动?
假设您正在使用 ssd 或机械磁盘(操作系统也在同一磁盘上,没有电池/UPS)的 linux pc 盒中对磁盘进行全速写入:
cat /dev/urandom > omg.txt
如果在此过程中突然断电,或任何其他类型的不正常关机/重置。
文件会不会损坏无法修复(即任何数据都无法恢复?),文件系统是否有可能完全无法启动?
可能,是的。有 2 条明显的途径可以发生这种情况。
Ext4 是一个元数据日志文件系统——它只记录文件元数据(大小、位置、日期)的变化——而不是文件内容(btrfs 和 zfs 以很大的性能成本进行全数据日志记录)。因此,尽管您永远不必 fsck 磁盘,但并不意味着打开文件和关闭 + 刷新缓冲区之间的每个写操作都已完成。没有对文件数据写入的事务控制。
第二种可能性是磁盘可能因电源尖峰而物理损坏。虽然其余的硬件往往会做好硬盘的隔离工作,但还是会有一些泄漏。
这是一个非常不同的问题——这种可能性要小得多。当然,第一种情况仅适用于您在中断时碰巧正在编写内核、引导加载程序、ramdisk 等的情况。
另请参阅unix.stackexchange 上的此问答
它不应该损坏您的文件系统(假设您使用 Ext4 并启用了障碍 - 默认情况下)。
引自https://ext4.wiki.kernel.org/index.php/Ext4_Howto:
更多阅读:https ://lwn.net/Articles/283161/ 。
这与您选择的文件系统无关,而是与您的硬盘驱动器/RAID 控制器上的写入缓存有关。
如果断电,缓存中的所有内容都会丢失,通常不会影响您的操作系统,但文件可能会损坏,是的。
如果您的服务器上有重要数据,请始终使用带电池的 UPS 或 RAID 控制器。