![休眠并启动另一个操作系统:我的文件系统会被损坏吗?](https://linux22.com/image/1215390/%E4%BC%91%E7%9C%A0%E5%B9%B6%E5%90%AF%E5%8A%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%EF%BC%9A%E6%88%91%E7%9A%84%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%BC%9A%E8%A2%AB%E6%8D%9F%E5%9D%8F%E5%90%97%EF%BC%9F.png)
重要的
如果你来这里是为了寻找这个问题的答案,请阅读全部答案如下。有些用户在执行此操作时丢失了数据,以下是他们的评价。如果您打算定期执行此操作,我强烈建议您亲自进行测试。
原始问题
假设我在同一台计算机上安装了 Windows 和 Linux。如果我休眠 Windows,我可以在恢复 Windows 时启动 Linux 而不会破坏 Windows 文件系统吗?反过来呢?如果我休眠一个操作系统,启动另一个操作系统,并将休眠的文件系统挂载为读/写,会怎么样?只读?如果这不安全,有没有办法检测另一个操作系统的休眠状态并阻止挂载其文件系统?
基本上,我能把它推多远才会坏,靠近边缘有多危险?我想我知道上述一些问题的答案,但对于其他问题,我不知道,出于显而易见的原因,我没有在自己的电脑上测试过。如果有人有测试过这些,请启发我们其他人。我不一定在寻找每个问题的具体答案;我会接受任何回答合理部分的答案。
编辑
让我澄清一下,当我说“休眠”时,我指的是将 RAM 的内容写入硬盘并完全关闭计算机的过程。在此状态下,重新打开计算机电源将带您再次通过 BIOS 和引导加载程序,并且理论上您可以在多引导系统上选择另一个操作系统。无论如何,继续最初的问题:
我的结果
好的,在每个人都保证这可行后,我自己测试了一下。我设置了 Ubuntu,在休眠之前将所有 ntfs 文件系统和外部驱动器重新挂载为只读。不需要类似的 Windows 设置,因为 Windows 不会读取 Linux 文件系统。然后,我尝试交替休眠一个操作系统并恢复另一个操作系统,来回几次。我甚至尝试从 Ubuntu 以读写方式挂载 Windows 文件系统,并创建一些文件。当我恢复时,Windows 没有抱怨。所以,总而言之,您可以在双启动 Windows/Linux 场景中或多或少自由地休眠。
请注意,我没有测试双 Linux/Linux 共同休眠的情况。如果您安装了两个或更多 Linux,并且将其中一个设置为休眠,则从另一个挂载它可能会损坏文件系统。
答案1
通过休眠的 Linux 启动 Windows 不是一个好主意。我刚刚在共享 NTFS 分区中丢失了 20 GiB 的数据...
有一天,我让 Ubuntu Lucid 休眠,第二天我又启动了电脑。某个更新搞乱了 Grub 中的保存选项,因此它没有像应该的那样再次启动 Ubuntu,而是启动了 Windows 7。当我端着咖啡回来时,我继续使用它,没有想起 Ubuntu 处于熊模式。我可能从共享分区访问了音乐、Firefox 配置文件、文档、下载和游戏。
下次切换到 Ubuntu 时,我看到了“从休眠状态唤醒”的消息。该死。但我预计它会在唤醒时失败,而是软重启,就像我上次“尝试”这个时发生的那样(在我的 Karmic 时代)。但没有,它正常唤醒了。很酷。或者不是。我很快意识到共享分区根目录中的目录现在是空的。我认为恢复时访问共享分区的唯一程序是 Quod Libet(音乐播放器)和 Transmission(bittorrent 客户端)。
我回到 Windows,甚至无法打开目录。尝试在 shell 中“dir”它时,出现“文件未找到”的错误。已损坏。不过,分区的可用空间没有增加,所以我的 20 GiB 可能还在那里,不会被覆盖。也许吧。但如何找到它们呢?
一点研究并没有提供什么帮助,并使我的希望更加渺茫。
我运行了 Scandisk(“检查错误”),但没有自动修复,因为我不想冒险通过进一步破坏我的数据来修复问题。结果并没有什么帮助:“发现错误。运行自动修复。”我不知道,它似乎还标记了下次启动时自动检查的分区。我关机走了,后来又用 EasyRecovery 回来了。
电脑像往常一样在我没注意的时候启动了,当我查看时,chkdsk 已经大量地出现错误,这种情况持续了大约十分钟。哦,算了,没什么事。
幸运的是,我最近确实为圣特克拉点燃了一支蜡烛,Windows 启动后,我的数据恢复了,据我所知所有数据都恢复了,尽管有些文件最终回到了 found.000。
所以是的,这有一个圆满的结局。您可以原谅这种戏剧性的悬念,但这是为了强调一点:备份您的数据!并且(就我而言)保持备份最新!当然,在休眠和共享分区时要格外小心……
答案2
我总是在启动任何其他程序之前先让 Windows 休眠,因为 Windows 从头开始启动实在是太慢了。但这样做很危险写对于休眠操作系统的分区,因为一些 FS 表仍然在内存中(嗯,在休眠文件中但不在 FS 中),应用程序仍然具有某些文件的句柄,并且通常文件系统状态有点不稳定。
但是您可以以只读方式挂载该分区,这样它将保持与休眠之前完全相同,并且 Windows 不会注意到任何事情。
至于关于正常安装并远离系统文件的建议,这不是一个好主意。可能会发生文件内容的重新定位,MFT 可能会更改,访问时间属性将更改,所有这些都可能严重损坏文件系统。对于 FAT 来说,这并不那么危险,但对于 NTFS 来说,这确实非常危险,因为它要复杂得多,内存中的状态也多得多。
答案3
我经常让 Windows XP 休眠并通过 USB 启动进入 Ubuntu。
运行完美。
“待机”模式和“休眠”模式之间存在差异。
操作系统状态将完全刷新到磁盘,并且硬件将关闭。
如果您启动机器并启动其他操作系统,则不会对休眠的操作系统产生任何影响。
您可以根据需要让任意数量的操作系统保持休眠状态。
例如,
您可以安装多个 Ubuntu(例如,每个 USB 闪存驱动器一个),
然后让每个 Ubuntu 休眠,拔下驱动器,然后启动另一个驱动器。
这里没有边缘,因为没有堆叠/链接效果。
此示例中的休眠 USB 驱动器彼此独立
(跨电源循环的机器)。
C:\
休眠的驱动器和启动另一个操作系统的一个小缺点是,
您将无法在新操作系统中安装休眠的启动分区。
分区是已锁定并处于休眠状态。
如果在该状态下进行编辑,则文件将被损坏。
答案4
你说的没错。即使你挂载了休眠文件系统,休眠的内容也会保存到磁盘上的一个大文件中 - 只要你不触碰这个文件或任何重要的系统文件(显然),就不会发生任何事情。
如果您在关闭系统后从另一个操作系统更改分区的内容,原始分区仍可顺利启动。休眠状态下也是如此。
只需确保在挂载/卸载分区时不会损坏任何系统文件或驱动器头信息(例如 MBR、文件日志) - 尽管这一点与休眠无关,而只是我们都需要知道的一个常见警告。