当文件系统已满时,读取操作是否可以在 ext3 文件系统上进行?

当文件系统已满时,读取操作是否可以在 ext3 文件系统上进行?

如果 ext3 文件系统没有剩余空间,读取操作还能成功吗?

答案1

man 2 read即使文件系统已满,读取 ( ) 操作仍将能够读取数据。但是,写入操作将返回错误。具体来说,如果设备已满,写入系统调用 ( man 2 write) 将返回错误。ENOSPC

文件系统本身应该没问题,但如果某些程序需要写入已满的分区,它们可能会开始失败。因此,最好始终监视文件系统上的可用空间量。

还要注意,由于 root 保留了 5% 的空间,因此当 FS 被用户数据填满时,FS 通常不会完全填满。因此,您仍然可以以 root 身份登录并执行一些需要写访问权限的操作。这样做的原因是,当用户填满空间时,以 root 身份运行的程序不会失败。

答案2

低级读取仍然有效,但是您用来查看文件的许多工具(例如编辑器)都会创建文件的备份。如果没有空间,备份将失败……任何写入日志文件的工具也是如此。

答案3

我不确定你问这个问题是因为你观察到了这种行为还是这只是一个理论问题。

无论如何,假设在完整的 ext3 上读取操作失败,一个可能的解释可能是文件系统及其日志已满,因此操作系统无法更新文件元数据及其访问时间。读取可能如果未禁用访问时间,则在这种情况下会失败。我没有 ext3 来测试这一点,所以不要将其视为事实,这只是一个大胆的猜测。

相关内容