在/ etc / fstab中有一个选项来决定发生错误时如何处理磁盘。 错误= {继续|重新挂载-RO |恐慌}
内核可以捕获的可能的磁盘错误是什么? 是否有任何其他types的磁盘错误,可以不被内核注意到?
在这种情况下检测到的错误(fstab的安装选项errors= )基本上是由错误的磁盘或严重损坏的文件系统造成的写入错误。
请注意,硬盘控制器通常会由于坏扇区使用坏扇区/块的dynamic重映射而导致写入错误。 但是,如果磁盘没有其他备用扇区,则会引发无法纠正的错误,这将触发文件系统errors=操作。
以同样的方式,由于不可能读/写一些元数据块,严重损坏的文件系统可以触发errors=动作。
是的,有一个挂载选项可以决定文件系统在发生严重错误时的行为。 你会在fstab文件中像这样(只是一个例子)形成一行:
/dev/sda5 /srv/foo btrfs relatime,errors=continue 0 1
“继续”,“重新安装”和“恐慌”是您在此领域的三个选项。
关于第二个问题,重新说明是合适的,因为人们应该问:“这个特定的文件系统能够捕捉到什么错误?” 这个答案完全取决于你正在使用什么文件系统,文件系统是什么版本,以及你如何检查它。
所有这一切,大多数文件系统可以纠正一些非常可怕的错误,当他们的检查器是使用fsck调用。 几乎所有的文件系统都必须脱机才能修正 – 如果在修正期间它们处于联机状态,将会产生可怕的后果。 BTRFS可以执行联机文件系统擦除(有限的完整性检查),但对于严重的文件系统错误也具有脱机修复function。
在各种情况下,各种文件系统都可能忽略错误。 一个非常常见的问题是磁盘在文件系统界面之外改变其数据 – 或者是因为磁盘坏了,或者是因为它是在块级别直接操作的。 虽然这是一个有限的例子。 有各种创造性的,可怕的方式来破坏数据,但其中大部分将由正在使用的文件系统模块报告(假定文件系统在线)。