![如何防止我的带有 Windows 分区的驱动器被意外卸载?](https://linux22.com/image/1147164/%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%E6%88%91%E7%9A%84%E5%B8%A6%E6%9C%89%20Windows%20%E5%88%86%E5%8C%BA%E7%9A%84%E9%A9%B1%E5%8A%A8%E5%99%A8%E8%A2%AB%E6%84%8F%E5%A4%96%E5%8D%B8%E8%BD%BD%EF%BC%9F.png)
我的 SSD 安装了 Windows,而 HDD 安装了 Ubuntu。当我第一次安装 Ubuntu 时,Windows SSD 上的文件始终自动可用。渐渐地,我发现 SSD 上的文件越来越不可用,但我可以通过重新启动计算机来解决这个问题。很快这也停止了工作,一些文章说这是因为 Windows 没有正确关闭或处于休眠状态而不是关闭状态,所以如果重新启动 Ubuntu 不能使 SSD 文件可用,我会重新启动进入 Windows,正确关闭,然后重新启动进入 Ubuntu。
但现在情况变得如此糟糕,无论我怎么尝试,我都无法从 Ubuntu 访问 SSD 文件。
什么是安全的如何默认让同一台计算机上的 Ubuntu HDD 可以访问 Windows SSD 中的文件?
我搜索过类似的问题。
- 如何防止意外从 Ubuntu 卸载和破坏我的 Windows 驱动器?- 只是想问一下按弹出键手动卸载是否安全。
- Ubuntu 14.04 不断卸载我的硬盘- 是关于驱动器变为只读,而不是卸载。
- 为什么 Ubuntu 要卸载我的主硬盘?- 问的是和我一样的问题,只不过是由于我没有遇到的硬件问题造成的。
- 外部硬盘不断断开连接,并且无法自动安装- 与我的问题类似,但是针对的是外置高清 (HD),3 年来唯一的答案与 USB 连接有关,但这并不适用于我的情况。
我在用着:
- Ubuntu 16.04.2 LTS
- Windows 10
答案1
这个答案并没有直接回答问题的要点,而是回答了评论中的一个问题;具体来说:
您能解释一下“分离的 NFTS 数据分区”是什么意思吗?我的 SSD 上没有 Ubuntu,我的 HDD 上也没有 Windows。您建议我在 SSD 上安装 Ubuntu(只是在单独的分区上)吗?将两个操作系统放在不同的物理驱动器上不是更安全吗?一位朋友最近不知怎么从 Ubuntu 中删除了她的整个 Windows 分区。
有些用户喜欢在双启动环境中隔离两个操作系统,就像您所做的那样,每个操作系统都放在自己的硬盘上。这样做的目的是,一个操作系统不太可能对另一个操作系统造成损害;然而,在您的情况下,您正在访问主 Windows 安装(C:
Windows 中的驱动器)从 Ubuntu 访问。这意味着 Ubuntu 可以修改该磁盘;实际上,安装 Windows 磁盘的行为本身就会修改它(以很小的方式)。这种访问不仅仅是访问文件本身,还包括访问定义文件是什么。这对于 NTFS 来说尤其成问题,因为据我所知,这是一个专有文件系统,没有公开规范;Linux 驱动程序基于逆向工程。实际上,Linux 驱动程序运行良好,但它们总是有可能犯一些微妙的错误,这可能会破坏整个文件系统。
此外,Linux 和 Windows 的安全模型也大不相同。因此,Windows 通过其安全系统保护的文件在 Ubuntu 中可供普通用户自由使用;您可以轻松甚至意外地从 Ubuntu 中删除关键驱动程序、配置文件等。
因此,将操作系统安装在单独的物理磁盘上几乎不能相互保护除非您需要物理交换磁盘才能启动每个操作系统 - 而这本身就存在风险。(例如,当您将磁盘换出时,静电可能会烧坏磁盘。)物理交换磁盘还会使操作系统之间无法共享数据,除非通过第三个磁盘、网络共享等。将操作系统放在单独的磁盘上可能会有所帮助(一点点),这是在初始设置中;如果每个操作系统都有自己的磁盘,则在安装操作系统 B 时意外擦除操作系统 A 的可能性较小,因此您不需要调整操作系统 A 的分区大小。
如果您不需要共享对相同文件的访问权限,则可以限制每个操作系统对其他操作系统文件的访问,无论每个操作系统安装在何处。限制 Windows 对 Ubuntu 的访问很容易;Windows 缺乏对 Linux 文件系统的支持,因此除非您在 Windows 中明确安装 Linux 文件系统驱动程序,否则 Windows 将无法访问 Ubuntu 分区。(例外情况是如果您设置了错误的分区类型代码,这在 GPT 磁盘上曾经很常见;但在任何现代安装中都不太可能发生这种情况。请参阅我的这个页面如果你认为你可能会遇到这个问题。)为了限制 Ubuntu 对 Windows 的访问,我建议/etc/fstab
为 WindowsC:
分区创建一个条目,该条目不是自动挂载,或者最多以只读方式挂载。请参见这里了解有关如何执行此操作的更多信息。
如果您想在操作系统之间共享数据,那么最好为此创建一个单独的分区。这将使您能够从两个操作系统读取和写入该分区,而不会危及主操作系统的文件。您可以为每个/etc/fstab
分区(WindowsC:
分区和共享数据分区)创建一个单独的条目,也可以依靠自动安装来访问共享数据分区。
在您的双磁盘设置中,从逻辑角度来看,哪个磁盘保存共享数据分区并不重要。您应该根据可用空间和磁盘速度做出决定。您在共享数据分区上放置多少数据也是一个悬而未决的问题。它可能是一个只存储少量文件的小分区;或者您可以选择将大部分用户数据放在共享分区上。
对此的一个重大警告是,从现有设置转换为具有共享数据分区的设置将需要调整至少一个其他分区的大小。您可能最终还想要或需要移动至少一个其他分区。这些操作可能很耗时,并且会带来一定的风险。因此,如果您可以解决问题的主要问题,您可能更愿意暂时保持分区布局不变,并在下次安装时记住这一点。另一方面,如果您想以重大方式重新安排系统,这可能是尽早这样做的另一个原因。
答案2
我遇到了类似的问题,并在提出这个问题 6 年后才来到这里。对于正在阅读本文的人来说,这就是我解决问题的方法。
我在外部 SSD 上安装了 Ubuntu,在内部 SSD 上安装了 Windows,还有一个 HDD。刚开始使用 Ubuntu 时,我可以毫无问题地访问 HDD。在进行了几次 Ubuntu 更新以及安装事故ubuntu-desktop
(并尝试在不删除所有内容的情况下修复启动问题)之后,我无法从 Ubuntu 访问 HDD。
我遇到了这个错误:
Error mounting /dev/sda2 at /media/path/... : wrong fs type, bad option,
bad superblock on /dev/sda2, missing codepage or helper program
or other error
对我来说,解决方案是使用sudo mount
。例如:
sudo mount /dev/sda1 ~/mountpoint
您可以创建任何您想要的目录,然后将分区挂载到该目录,但这不是主要解决方案。为了主要挂载分区,您必须编辑该fstab
文件。您可以查看此链接:使用 fstab 永久挂载驱动器关于如何去做。