如果ext3文件系统没有剩余空间,读取操作是否仍会成功?
即使文件系统已满,读取( man 2 read )操作仍然可以读取数据。 但是,写入操作将返回错误。 具体来说,如果设备已满,则写入系统调用( man 2 write )将返回ENOSPC错误。
文件系统本身应该没问题,但某些程序如果需要写入已满的分区,可能会失败。 因此,最好监视文件系统上的可用空间量。
另外请注意,由于root拥有5%的预留空间,通常在填充用户数据时,FS不是完全满的。 所以你仍然可以以root身份login并执行一些需要写入权限的操作。 这样做的原因是,当用户填满空间时,以root身份运行的程序不会失败。
低级读取仍然有效,但是用于查看文件(例如编辑器)的很多工具都会创build文件的备份。 如果没有空间,备份将失败…对于任何写入日志文件的工具也是如此。
我不确定你问,因为你观察到这种行为,或只是一个理论问题。
无论如何,假设一个完整的ext3读操作失败,一个可能的解释可能是文件系统和它的日志已满,所以操作系统无法更新文件的元数据,并准确地访问时间。 如果访问时间未被禁用,读取可能会失败。 我没有ext3来testing这个,所以不要把这作为一个事实,只是一个疯狂的猜测。