文件系统上的哪些数据真正受到断电的影响?

文件系统上的哪些数据真正受到断电的影响?

让我的文件系统以 ext4 形式挂载data=journal。我不完全了解在这种情况下文件系统断电时会发生什么。所以我有以下问题:

  • 在什么情况下断电会导致硬盘(无论SSD还是HDD)上已经存储的数据损坏(改变)?
  • 什么情况下断电写入的数据会不一致?(我的意思是会写入一些内容但不等于初始数据)
  • 如果在日志重放期间发生断电,会发生什么情况fschk

答案1

我相信这个问题并不特定于 Linux 或 ext4,而是一般文件系统所特有的。

除非有文件正在写入磁盘,否则断电不会破坏任何数据。

这基本上意味着,当一个程序打开一个文件时,它可以通过多种不同的方式来进行。

它可以从中读取,也可以从头开始写入(覆盖所有内容)以及附加到文件(写入文件末尾)。

现在,诀窍在于一个文件有 2 个段。它们是:

  • 目录,
  • 数据。

在硬盘的起始处,写入一个表,其中包含文件在硬盘上的位置。在指定位置,数据以 0 和 1 的形式写入硬盘上。

读回文件显然首先要获取其位置,然后从实际位置获取 0 和 1 的数量以形成内存中的实际文件。

当硬盘写入文件时,它首先将数据写入磁盘,查看新的起点和终点(起点通常是相同的,但如果数据被分割并且使用了第二个块,则记录其起点和终点)并将它们写入分区表。

如果在写入文件时断电,索引显然与数据不一致。这会导致在尝试访问文件时出现读取错误的现象。你看到它在那里,但仍然无法访问它。

由于读取文件实际上并不会改变磁盘的内容,因此断电不会产生任何影响。

相关内容