手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

ntfsundelete(1M)

名称

ntfsundelete - 恢复 NTFS 卷中已删除的文件

用法概要

ntfsundelete [options] device

描述

在适当情况下,ntfsundelete 实用程序可恢复 NTFS 卷中已删除的文件。该命令有三种操作模式:

Scan

缺省模式 scan 仅读取 NTFS 卷并查找已删除的文件。然后它将显示一个列表,给出每个已删除文件的 inode 编号、名称和大小。

Undelete

“取消删除”模式将获取与正则表达式匹配的文件(选项 –m)或由 inode-expressions 指定的文件,并恢复尽可能多的数据。它将结果保存至另一位置。

Copy

“向导”选项。将 MFT 的一部分保存至文件,这在调试 ntfsundelete 时会很有用。

在很多情况下 ntfsundelete 无法恢复文件。例如,请考虑以下情况。当删除某个文件时,MFT 记录标记为未使用,并会更新表示磁盘使用情况的位图。如果未立即关闭电源,此文件用于驻留的空闲空间可能会被覆盖。更糟糕的是,MFT 记录可能会重新用于其他文件。如果发生这种情况,将无法获知此文件在磁盘上的位置。

即使并非文件的所有簇都在使用中,也不能保证它们不会被某些临时文件覆盖。

ntfsundelete 无法恢复压缩文件或加密文件。在扫描过程中,它会将这类文件显示为 0% 可恢复。

语言环境

在 NTFS 中,所有文件名均存储为 Unicode。ntfsundelete 会将文件名转换为当前语言环境以进行显示。该实用程序可成功显示中国象形文件名,然后正确恢复这些文件名。

扩展 MFT 记录

在极少数情况下,单个 MFT 记录不够大,无法容纳描述文件的元数据(仅当文件具有数百个段时才会发生这种情况)。在这种情况下,一条 MFT 记录将存储文件名,另一条 MFT 记录将存储有关数据的信息。ntfsundelete 不会尝试将这类记录合并在一起。它只会列出未命名的文件及数据。

恢复的文件大小和创建日期

要恢复某个文件,ntfsundelete 必须读取该文件的元数据。遗憾的是,删除某个文件时,元数据可能会处于不一致的状态。例如,文件大小可能记录为零;文件的创建日期可能设置为删除它时的时间或随机时间。在这种情况下,ntfsundelete 将选择其发现的最大的文件大小,并将其写入磁盘。它还会尝试将文件的创建日期设置为上次修改的日期。该日期可能是正确的上次修改日期,也可能是其他某个意想不到的日期。

选项

下面列出了支持的选项。大多数选项都有单字母和全名两种形式。不接受参数的单字母选项可以多个组合到一起。例如,–fv 等效于 –f –v。全名选项可以缩写为其名称的唯一前缀。

–b–-byte num

使用 num 表示的字节填入不可恢复的文件簇部分。缺省值为零。

–C–-case

在使用 ––match 选项尝试进行匹配时使文件名搜索区分大小写。缺省的文件名搜索不区分大小写。

–c–-copy range

此“向导”选项将一个 MFT FILE 记录块写入文件中。缺省文件为 mft,该文件将在当前目录中创建。此选项可与 –-output–-destination 选项结合使用。

–d–-destination dir

–-copy–-undelete 选项指定输出文件的位置。

–f–-force

覆盖一些明显的缺省值,如不覆盖现有文件。请谨慎使用此选项。

–h–-help

显示选项的列表及每个选项的简要说明。

–i–-inodes range

恢复指定 inode 编号范围内的文件。range 可以是单个 inode 编号、由逗号分隔的多个编号或是由破折号 (-) 分隔的一个范围。

–m––match pattern

通过仅查找与 pattern 匹配的文件名过滤输出。模式 (pattern) 可包含与一个字符匹配的通配符 ?,或者与零个或多个字符匹配的通配符 *。缺省情况下,匹配不区分大小写。要使搜索区分大小写,请使用 –-case 选项。

–O–-optimistic

恢复文件部分,即使它们当前标记为处于使用状态。

–o–-output file

设置由 –-copy–-undelete 选项创建的输出文件的名称。

–P–-parent

显示已删除文件的父目录。

–p–-percentage num

通过仅匹配具有百分之 num 可恢复内容的文件过滤 –-scan 选项的输出。

–q–-quiet

将输出量减少到最低限度。此选项与 –-scan 选项一起使用时不起作用。

–s–-scan

搜索 NTFS 卷,并显示可恢复的文件列表。这是 ntfsundelete 的缺省操作。此列表可通过分别使用 –-match–-size–-percent–-time 选项按文件名、大小、可恢复百分比或上次修改时间进行过滤。

在此选项的输出中,%age(百分比)字段显示可在多大程度上恢复文件。

–S–-size range

通过查找文件大小的特定范围过滤 –-scan 选项的输出。range 可指定为以连字符 (-) 分隔的两个数字。大小单位可使用缩写后缀 kmgt,分别表示千字节、兆字节、千兆字节和兆兆字节。

–t–-time since

过滤 –-scan 选项的输出。仅匹配于此时间之后更改的文件。时间必须采用数字加后缀 dwmy(分别表示天、周、月或年)的形式。

–T–-truncate

ntfsundelete 的缺省行为是将文件大小向上舍入为最接近的簇(为 512 字节的倍数)。如果实用程序具有关于文件大小的完整数据,此选项会将文件恢复至此大小。

–u–-undelete

指定取消删除模式。可通过使用 –-match–-inodes 选项指定要恢复的文件。此选项可与 –-output–-destination–-byte 结合使用。

恢复文件后,如果不使用 –-output 选项,文件将采用其原始名称。

–v–-verbose

增加 ntfsundelete 显示的输出量。

–V–-version

显示 ntfsundelete 的版本号、版权以及许可。

示例

示例 1 搜索删除的文件

以下命令将搜索特定设备上已删除的文件。

# ntfsundelete /dev/dsk/c0d0p1
示例 2 扫描与通配符匹配的文件

以下命令将搜索与 *.doc 匹配的已删除文件。

# ntfsundelete /dev/dsk/c0d0p1 -s -m '*.doc'
示例 3 搜索特定大小的文件

以下命令将在 /dev/dsk/c0d0p1 中查找大小介于 5000 和 6000000 字节之间且至少可恢复 90% 数据的已删除文件。

# ntfsundelete /dev/dsk/c0d0p1 -S 5k-6m -p 90
示例 4 搜索最近更改的文件

以下命令将搜索最近两天更改的已删除文件。

# ntfsundelete /dev/dsk/c0d0p1 -t 2d
示例 5 指定 inode 范围

以下命令将取消删除设备 /dev/sda1 的 inode 2、5 和 100-131。

# ntfsundelete /dev/sda1 -u -i 2,5,100-131
示例 6 指定输出文件和目录

以下命令将取消删除 inode 编号 3689,将文件命名为 work.doc,并将其存储在用户的起始目录中。

# ntfsundelete /dev/dsk/c0d0p1 -u -i 3689 -o work.doc -d ~
示例 7 保存 MFT 记录

以下命令将 MFT 记录 3689-3690 保存到文件 debug 中。

# ntfsundelete /dev/dsk/c0d0p1 -c 3689-3690 -o debug

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/file-system/ntfsprogs
接口稳定性
Uncommitted(未确定)

另请参见

ntfsclone(1M)ntfsresize(1M)parted(1M)attributes(5)

作者

作者

ntfsundelete 由 Richard Russon 和 Holger Ohmacht 编写,Anton Altaparmakov 也对此作出了贡献。