无论你选择哪种方法,第一步都是卸载包含已删除文件的文件系统。我强烈建议你不要在已挂载的文件系统上进行任何操作。此步骤应在你意识到文件已被删除后尽快执行;你越早卸载,你的数据被覆盖的可能性就越小。
最简单的方法如下:假设被删除的文件位于 /usr
文件系统中,输入
# umount /usr
但是,你可能希望保持 /usr
中的某些内容可用。 因此,将其以只读方式重新挂载
# mount -o ro,remount /usr
如果删除的文件位于根分区上,则需要添加一个 -n
选项,以防止 mount 尝试写入 /etc/mtab
# mount -n -o ro,remount /
无论如何,有可能还有另一个进程正在使用该文件系统(这将导致卸载失败,并出现类似“Resource busy”的错误)。 有一个程序可以向使用给定文件或挂载点的任何进程发送信号:fuser
。 尝试对 /usr
分区执行此操作
# fuser -v -m /usr
这会列出涉及的进程。 假设它们都不是至关重要的,你可以说
# fuser -k -v -m /usr
向每个进程发送 SIGKILL
(保证可以杀死它),或者例如,
# fuser -k -TERM -v -m /usr
向每个进程发送 SIGTERM
(通常会使进程干净地退出)。