据我所知,在 ext4 文件系统中删除打开的文件时,我们只取消链接它,并且 inode 保持分配状态,直到文件句柄关闭。
但是 inode 何时真正解除分配?如果系统在关闭文件之前重新通电,会发生什么情况?
Linux 使用引用计数。这就是为什么文件系统中不能有循环引用(目录硬链接(的原因。这将中断引用计数。
当引用计数为零时,将释放索引节点。
如果发生电源故障,则文件系统已损坏。检查工具e2fsck
可以找到这些不一致之处,并将文件移动到lost+found
。然后,您可以再次删除它们,希望没有电源故障。
通常,写缓存的电源故障总是会破坏您的文件系统。如果日记没有写入磁盘,即使日记也无济于事。