【发布时间】:2013-04-29 03:37:21
【问题描述】:
我很好奇当您在类 UNIX 系统上 rm 文件时在更深层次上会发生什么,尤其是与如何恢复已删除文件有关的问题。
有人能详细描述一下 rm 的工作原理吗?
【问题讨论】:
标签: unix filesystems delete-file rm
我很好奇当您在类 UNIX 系统上 rm 文件时在更深层次上会发生什么,尤其是与如何恢复已删除文件有关的问题。
有人能详细描述一下 rm 的工作原理吗?
【问题讨论】:
标签: unix filesystems delete-file rm
rm 调用 unlink 系统调用。 unlink() 删除目录条目,将文件的 inode 标记为空闲(可恢复),磁盘驱动程序删除磁盘上支持的文件系统数据(片刻之后)。
对于旧系统: 磁盘扇区上的实际物理数据仍然存在,但您无法访问它。没有任何旧数据可以保证保留。
我相信,Windows 开发人员想出了取消删除的想法。这需要对已删除的文件进行特殊处理。大多数较旧的 UNIX/linux 文件系统和驱动程序不支持取消删除操作。 ext3 和 ext4 文件系统可以。现代 linux 支持 ext3 和 ext4 的 extundelete 命令。此命令重建文件的所有旧元数据,这些元数据已发送到临时元数据存储。 extundelete 功能增加了旧 UNIX 系统无法轻松支持的开销。还有额外的磁盘开销。
【讨论】: