首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当磁盘写入时,ext4 fs是否完全无法恢复?

当磁盘写入时,ext4 fs是否完全无法恢复?
EN

Server Fault用户
提问于 2012-05-22 06:21:37
回答 3查看 2.6K关注 0票数 1

假设您正在使用ssd或机械磁盘(操作系统也位于同一磁盘上)的linux pc盒中对磁盘进行全速写入,则没有电池/UPS:

代码语言:javascript
复制
cat /dev/urandom > omg.txt

如果突然停电的过程中,或任何其他类型的不体面的关闭/复位。

该文件是否已损坏,无法修复(即没有任何数据可以恢复?),是否有可能文件系统完全无法启动?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2012-05-22 09:00:25

该文件是否已损坏,无法修复(即任何数据都无法恢复?)

有可能是的。有两条明显的路线可以让这一切发生。

Ext4是一个元数据日志文件系统,它只记录对文件的元数据(大小、位置、日期)的更改,而不是文件内容(btrfs和zfs以很大的性能成本记录完整的数据日志)。因此,尽管您不应该必须伪造磁盘,但并不意味着在打开文件和关闭+刷新缓冲区之前的每一次写操作都已经完成。对写入文件数据没有事务控制。

第二种可能性是,磁盘可能被电源尖峰损坏。虽然硬件的其余部分在隔离硬盘方面做得很好,但仍然会有一些泄漏。

是否有可能文件系统完全无法启动?

这是一个完全不同的问题--这个可能性要小得多。当然,第一种情况只适用于在中断时编写内核、引导加载程序、ramdisk等的情况。

另见这是关于unix.stackexchange的问答

票数 3
EN

Server Fault用户

发布于 2012-05-22 08:04:40

它不应该损坏您的文件系统(假设您使用了Ext4并启用了屏障--默认情况下是这样)。

引用https://ext4.wiki.kernel.org/index.php/Ext4_何图的话:

默认情况下,这是一个提高文件系统完整性的选项,代价是一些性能(您可以使用“挂载-o barrier=0”禁用它,如果您正在进行基准测试,建议您尝试它)。在这篇LWN文章中:“在编写日志记录提交记录之前,文件系统代码必须绝对确保事务的所有信息都已写入日志。仅仅按正确的顺序进行写操作是不够的;当代驱动器保持较大的内部缓存,并将重新排序操作以获得更好的性能。因此,文件系统必须显式地指示磁盘在编写提交记录之前将所有日志数据发送到媒体上;如果提交记录首先被写入,则日志可能已损坏。内核的块I/O子系统通过使用障碍来提供此功能;本质上,一个屏障禁止在屏障之后写入任何块,直到在屏障之前编写的所有块都提交给媒体。通过使用屏障,文件系统可以确保它们的磁盘结构始终保持一致。“

更多的阅读:https://lwn.net/Articles/283161/

票数 2
EN

Server Fault用户

发布于 2012-05-22 06:36:26

这实际上不是关于您选择的文件系统,而是关于在硬盘驱动器/raid控制器上写入缓存。

如果您失去了功能,缓存中的所有内容都会丢失,它通常不会影响您的操作系统,但是文件可能会损坏,是的。

如果服务器上有关键数据,请始终使用带电池的UPS或RAID控制器。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/391302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档