【发布时间】:2020-01-19 01:36:47
【问题描述】:
据我所知,在 ext4 文件系统中删除打开的文件时,我们只取消链接它,并且 inode 保持分配状态,直到文件句柄关闭。
但是 inode 是什么时候真正释放的呢?如果在文件关闭之前重启系统会发生什么?
【问题讨论】:
据我所知,在 ext4 文件系统中删除打开的文件时,我们只取消链接它,并且 inode 保持分配状态,直到文件句柄关闭。
但是 inode 是什么时候真正释放的呢?如果在文件关闭之前重启系统会发生什么?
【问题讨论】:
Linux 使用引用计数。这就是文件系统中不能有循环引用(目录硬链接)的原因。这会破坏引用计数。
当引用计数为零时,inode 被释放。
如果发生电源故障,您的文件系统已损坏。检查工具e2fsck 可以找到这些不一致并将文件移动到lost+found。然后您可以再次删除它们,希望不会出现电源故障。
一般来说,写入缓存的电源故障总是会破坏您的文件系统。如果日志没有写入磁盘,即使是日志也无济于事。
【讨论】: