如何防止 Ubuntu 向外部硬盘写入任何内容?

如何防止 Ubuntu 向外部硬盘写入任何内容?

有两个原因让您希望阻止 Linux 在插入外部硬盘或 USB 驱动器时向其中写入任何内容:

  • 从驱动器现在“空”的部分恢复意外删除的文件
  • 对于数字取证,您需要确保在克隆驱动器时驱动器上的任何内容都没有改变

有专门用于此目的的驱动器连接器和外壳,并且其上有一个开关或按钮,可以物理阻止任何写入命令到达驱动器。

然而,我的 USB 转 IDE 连接器却没有那么奢侈。我听说这可以通过软件来实现(其中包括必须禁用 Ubuntu 的自动安装),但我没有在网上找到任何说明如何去做这个。

如何阻止 Ubuntu 写入任何事物到外部硬盘驱动器以保留其上的所有数据?


在我的具体情况下,我将使用 Ubuntu,但是,我询问了Unix 和 Linux而不是询问Ubuntu希望找到一个适用于各个发行版的答案,而不仅仅是针对我的特定情况。两种类型的答案都受到欢迎。

答案1

对于实际的取证场景,您确实需要硬件拦截器。软件拦截器还不够好,因为您有犯错误的风险,对于法律案件,能够毫无疑问地声称您没有修改磁盘映像,并能够在其中进行解释是非常重要的。对于非技术人员来说非常简单的术语,您不可能修改原始术语。此外,您对原始磁盘要做的唯一一件事就是将副本复制到新介质,然后分析该副本(同样,使用写阻止程序 - 您可能会制作额外的副本,写入其中以找到感兴趣的内容,然后您将使用保证准确的副本重现有趣内容的提取)。

话虽如此,您可以使用以下命令将块设备设置为只读blockdev命令。

# blockdev --setro /dev/sde
# mount /dev/sde /mnt/
mount: block device /dev/sde is write-protected, mounting read-only

请注意,这mount -o ro不足以确保设备不会被修改。对于日志文件系统,如果文件系统没有完全卸载,即使是只读挂载也会重播日志并更新磁盘上的文件系统以匹配。为了防止这种情况,使用 ext3 或 ext4,您可以传递该noload选项 - 但将块设备设置为只读是确保不会写入任何内容的更安全方法,并且可能是某些其他文件系统的唯一方法。

答案2

这种设置通常就足够了。我在外置硬盘恢复期间使用了这个:

首先禁用自动挂载。 (您可以在 GNOME 设置上使用 gconf-editor 来完成此操作。我不知道是否适用于其他系统)。然后,您将驱动器称为 /dev/sda 或 /dev/sda1 或程序中的任何名称。 (sda 通常保留用于启动设备。请参阅这个帖子了解哪个 SD* 是您的设备。当您只连接了两个驱动器时,请尝试使用 sdb。

一个简单的例子:

root@yo-machine# dd_rescue /dev/sdc1 /home/user/the-disk-image.img

sdc1已卸载设备的第一个分区在哪里。

注意:/dev/sda将指整个设备,包括引导扇区和 MBR 之类的东西。/dev/sda1将引用所述设备的第一个分区。

相关内容