替代方法

替代方法

我的 HDD 上有一个 500GB 的原始磁盘映像文件,我称之为该文件,这是对外部单个 NTFS 分区驱动器的内容进行处理dysk.img的结果。dd其目的是尝试使用该ntfsundelete程序恢复数据(并且初始扫描的结果很有希望)。

不过,在此之前,我想检查一下其当前的、未删除的内容。因此我想安装它。出于显而易见的原因,我想确保安装此文件不会导致向其中写入任何一位。

mount --read-only可悲的是,这似乎不是解决方案。因为,根据man mount

请注意,根据文件系统类型、状态和内核行为,系统仍可能写入设备。例如,如果文件系统脏了,ext3 和 ext4 将重播日志。为了防止这种写访问,您可能需要使用 ro,noload 挂载选项挂载 ext3 或 ext4 文件系统,或者将块设备本身设置为只读模式,请参阅 blockdev(8) 命令。

上述内容也适用于 NTFS 吗?遗憾的是mount不支持该noload选项...

不幸的是,我不小心编写了一些与 Windows 不兼容的名称的文件(?例如包含该字符),这使得 Windows 将此文件系统标记为计划检查 - 因此,我从现在开始不断收到警告,并且如果没有该选项ntfsundelete就无法运行。这会进一步增加一些意外写入的风险吗?ntfsundelete--force

截至目前,只有 root 拥有对此文件的写入权限。我不确定这是否足够,因为 IIUC 在安装时总会有一些权限提升。

指定root该文件的所有者并拒绝任何人(甚至所有者)的写访问权限会有帮助吗?

尝试使用此文件blockdev建议的命令会有帮助吗?或者,与实际设备相比,man mount发布到图像文件会存在风险或有害吗?blockdev --setro

答案1

您正在寻找的部分答案在您引用的引文中给出:

将块设备本身设置为只读模式

就您而言,这是一个简单的文件。所以你可以:

chmod a-w disk.img

即使所有者也不需要写信给它。

指定root该文件的所有者并拒绝任何人(甚至所有者)的写访问权限会有帮助吗?

基本上,是的,但请记住,这root可以绕过大多数权限“限制”。因此,您应该以不同于 的用户身份运行数据恢复程序root

如果你想挂载该文件,你不能简单地这样做。但是,如果图像文件保存在支持的文件系统内chattr(基本上是EXT4和其他常见的Linux文件系统)您可以使文件不可变:

chattr +i disk.img

现在却无能为力root。无法写入或删除。chattr -i完成后用于恢复标志。

替代方法

如果您想从(可能损坏的)NTFS 驱动器中提取数据,您可能需要考虑使用恢复比特,这是我开发的一个用于执行文件系统重建的软件。目前它仅支持 NTFS,但它有几个优点:

  • 它不会在图像文件上写入任何内容。简单的说,它不支持书写在驱动器上,因为它面向数字取证。因此,您不会冒意外这样做的风险。

  • 即使目录树损坏,它也可以读取它。您将获得每个分区的最准确描述,至少从可用的元数据中是如此。

我在以下答案中讨论了它的用法:

相关内容