保护双启动 Windows 免受危险代码(如 rm -rf)

Pau*_*Kim 16 partitioning dual-boot windows-10 18.04

我正在考虑在同一 SSD 的不同分区中双引导 Windows 10 和 Ubuntu。如果rm -rf在 Ubuntu 分区中以某种方式发生了类似的代码,这会影响 Windows,还是会单独留下其他分区?如果它确实影响 Windows 分区,我该如何防止这种情况发生?

Eri*_*nil 16

如果您可以物理访问计算机,您就有权对其上的文件执行任何操作,包括读取、破坏或删除它们。

但是,有可能使意外删除文件变得更加困难。

如果您想阅读 Windows 10 分区上的文档,您可以以只读模式挂载该分区。您将无法编辑 Word 文档,但如果您想在 Windows 分区上阅读 PDF、听 MP3 或观看电影,这应该足够了。另一种可能性是D:在 Windows 下创建一个 FAT32分区,您可以在 Ubuntu 下使用写入权限挂载该分区。

我可以想到至少 5 个简短的命令来从 Linux 系统中销毁 Windows 分区,但它们都需要root特权。每当您想运行以 开头的命令sudo或当程序告诉您“需要身份验证才能运行”时,请务必小心。

最后,在 Windows 上安装 Ubuntu 时要非常小心。安装程序会明确哪些分区被调整大小、创建或删除,但如果您忽略警告足够长的时间,仍然可以删除现有分区。

为安全起见,请遵循@Emmet 的出色建议(务必备份您的数据)。

  • @Brilsmurfffje:当然,可能会从 Windows 损坏 Ubuntu 分区。尽管如此,Ubuntu 通常是在 Windows 之后安装的,在 Ubuntu 中安装 NTFS 比在 Windows 中安装 Ext4 更容易,并且命令行在 Ubuntu 中比在 Windows 中更普遍。 (3认同)
  • 有等量的 Windows 命令可以损坏 Ubuntu 分区。 (2认同)
  • 每当我双启动 Win/Lin 时,我都会创建一个在 Windows 中显示为 D: 的 FAT32 分区,并使用它在操作系统之间传递任何内容。我只是不相信具有写入权限的 Windows 访问 ext3/4 或 Linux 访问 NTFS。 (2认同)

Lis*_*iso 9

防止数据丢失的常见基础:记住始终备份您的文件

它不会影响 Windows 分区,因为您是在 Ubuntu 机器上运行它的。

画成这样

/dev/sda1 ntfs-bootfile
/dev/sda2 ntfs-win
/dev/sda5 ext4-root --> (YOUR LOCATION NOW)
/dev/sda6 ext4-swap
Run Code Online (Sandbox Code Playgroud)

如果你rm -rf在你所在的位置运行,它会影响sda5你的 Ubuntu 系统所在的分区。所以它只影响Ubuntu。

假设您有 grub 引导加载程序来加载 2 个操作系统(Ubuntu 和 Windows),如果您不小心删除了GRUB文件,Windows 将无法引导,但里面的数据将保持不变。

但是,Ubuntu 倾向于在可用时挂载 Windows 分区,如果您说运行rm -rf /*,Ubuntu 会毫不犹豫地删除所有文件,包括 Windows 分区。

还有臭名昭著的dd命令,因此得名disk destroyer。这被广泛用于:格式化驱动器、克隆磁盘、创建可启动 USB 等。

dd具有转储整个主驱动器的能力,dd if=/dev/zero of=/dev/sda会将主驱动器上的所有数据替换为零 - 告别我们的数据!

话虽如此,请在运行命令时非常小心,并在执行某些操作之前始终三思而后行——最好在灾难发生之前预防。

我强烈建议您学习各种 Linux 命令,这样您就可以在运行之前知道该命令的作用。

另外,在使用 时请再次详细说明dd,错误输入sdb为是常见的错误sda,之后发生的任何事情都是可怕的。

  • OP 询问“代码 **like** `rm -rf`。” 对我来说,这意味着可以在 Linux 系统上执行的各种破坏性命令。其中一些会导致 Windows 出现问题。例如,`cat /dev/zero > /dev/sda` 会将零写入所有 /dev/sda,从而删除该驱动器上的所有数据,甚至可能删除整个计算机。当然,这样的事情在实践中不太可能发生,但需要得到承认才能得到完整的答案。如果需要真正安全的隔离来防止 Linux 在 Windows 上引起问题(或反之亦然),唯一足够的方法是某种虚拟机。 (12认同)
  • 如果 Windows 分区安装在 Ubuntu 中,则此答案不正确!如果,比如说,Windows 文件系统挂载在 `/mnt` 下,并且你运行 `rm -rf /*`,那就是再见 Windows 文件...... (4认同)
  • @wizzwizz4“不,他们会在之后被删除”。这取决于“*”如何扩展,通常按字母顺序排列,因此“/bin”在“/mnt”之前。但实际上,顺序并不重要,因为正如您已经说过的,“rm”已经驻留在内存中,这是唯一重要的事情。 (4认同)
  • 此外,windows 分区可以挂载在`/media` 或`/mnt` 中。在这种情况下,`rm -rf` 肯定能够销毁 Windows 文件。 (2认同)
  • @EricDuminil 假设系统没有交换,一旦 `rm` 打开它需要的所有库,这些库是否从文件系统中删除都无关紧要。它们将保留在磁盘上,未链接但仍由 rm 打开。当操作系统尝试启动需要已删除文件或设备的新进程时,可能会导致问题。那时您可能会惊慌系统。 (2认同)