休眠并引导到另一个操作系统:我的文件系统会损坏吗?


52

重要

如果您是来这里寻求答案的,请阅读以下所有答案。有一些人的见证在这样做时丢失了数据。如果您打算定期进行此操作,强烈建议您自己进行测试。


原始问题

假设我在同一台计算机上安装了Windows和Linux。如果我使Windows休眠,恢复Windows时是否可以启动Linux而不会破坏Windows文件系统?那反过来呢?如果我休眠一个,引导到另一个,然后挂载读/写的休眠文件系统怎么办?只读?如果这不安全,是否有任何方法可以检测其他OS的休眠状态并防止挂载其文件系统?

基本上,在断裂之前我可以将其推动多远,并且在边缘附近有多危险?我想我知道上述问题的答案,但是对于其他问题,我不知道,出于明显的原因,我没有在自己的计算机上进行测试。如果有人已经测试过这些,请大家指教我们其余的人。我不一定要为每个问题都寻求一个具体的答案;我会接受任何回答合理部分的答复。


编辑

让我澄清一下,当我说“休眠”时,是指将RAM的内容写入硬盘并完全关闭计算机电源的过程。在这种状态下,重新打开计算机电源将使您再次通过BIOS和引导加载程序,理论上您可以在多引导系统上选择其他操作系统。无论如何,关于原始问题:


我的结果

好的,在每个人都保证可以使用之后,我为自己进行了测试。我将Ubuntu设置为在休眠之前以只读方式重新安装所有ntfs文件系统和外部驱动器。无需类似的Windows安装程序,因为Windows不会读取Linux文件系统。然后,我尝试来回休眠几次,交替休眠一个操作系统,然后恢复另一个操作系统。我什至尝试从Ubuntu读写挂载Windows文件系统,并创建一些文件。我恢复时Windows没有抱怨。因此,总而言之,您可以在Windows / Linux双启动方案中或多或少地自由休眠。

请注意,我没有测试Linux / Linux双重休眠的情况。如果您有两个或多个Linux安装,并且其中一个处于休眠状态,则可以通过从另一个安装该文件系统来破坏该文件系统。


1
我想进一步澄清,我正在寻找一个实际测试了这些问题并在经验上类似的人。但是,如果不这样做,请随意猜测。如果没有人有任何实际的测试结果,过一会儿我会接受最合理的猜测。
瑞安·汤普森

好吧,我将尽快尝试测试其中一些想法。如果最终使用仍可以启动的计算机,我将返回并接受答案。;)
瑞安·汤普森


@RyanThompson,您将如何可靠地对此进行测试?确保它看起来像在工作,直到没有。
Pacerier,2015年

这就是为什么我将“不要这样做会丢失数据”答案标记为接受的原因。
瑞安·汤普森

Answers:


17

在休眠的Linux上引导Windows不是一个好主意。我在共享NTFS分区中丢失了20 GiB数据...

有一天,我使Ubuntu Lucid处于休眠状态,第二天,我启动了计算机。一些更新弄乱了Grub中保存的选项,因此,它没有按应有的方式重新启动Ubuntu,而是启动了Windows7。当我喝完咖啡回来时,我继续使用它而没有想起Ubuntu处于熊模式。我可能从共享分区访问了音乐,Firefox配置文件,文档,下载和游戏。

下次我切换到Ubuntu时,看到了“从休眠状态唤醒”消息。ang 但是我希望它在唤醒时失败,然后进行软重启,就像我上一次(在“业障时代”)尝试过这种情况一样。但是不,它唤醒了。凉。或不。我很快意识到共享分区根目录中的目录现在为空。我认为恢复访问共享分区的唯一程序是Quod Libet(音乐播放器)和Transmission(bittorrent客户端)。

我回到Windows,甚至无法打开目录。试图在外壳中“ dir”它产生“找不到文件”。腐败了 分区的可用空间仍然没有增加,因此我可能仍然存在的20 GiB不会被覆盖。也许。但是如何到达他们呢?

一点点研究几乎无济于事,使我的希望更加渺茫。

我没有自动修复就运行了Scandisk(“检查错误”),因为我不想冒险通过进一步破坏我的数据来修复问题。结果不是很有用:“发现错误。运行自动修复。” 我不知道,看来它也将分区标记为在下次启动时自动检查。我关闭电源并离开,然后稍后再使用EasyRecovery。

像往常一样,计算机开始时我并不在意,而当我看时,chkdsk已经在如火如荼地喷出错误了,它做了十分钟。哦,很好,这里什么也没有。

幸运的是,最近我确实为Santa Tecla点燃了蜡烛,Windows启动后,我的数据回来了,据我所知,所有文件都保存在found.000中。

是的,这有一个愉快的结局。您将原谅悬而未决的悬念,但这只是要指出一点:备份数据!并且(以我为例)使备份保持最新状态!当然,要特别注意休眠和共享分区...


5
我将其标记为已接受的答案,只是为了使阅读此问题的新用户谨慎一点。
瑞安·汤普森

由一个操作系统影响另一个操作系统引起的更新是很正常的,实际上并不是由休眠问题引起的。休眠状态被视为文件系统上的任何其他文件。不太明白为什么这个答案被接受。
Matt H

1
消失在FAT领域中的整个目录不是“由一个OS引起的更新”,至少不是故意的。休眠Linux,启动Windows,然后唤醒Linux之后,我经历了共享NTFS分区中的数据损坏,如此简单。
Chema 2012年

2
休眠一个操作系统并在另一个操作系统中安装相同的分区实际上是使两个操作系统同时访问磁盘。他们不知道对方所做的更改,因此会导致腐败。
psusi

2
在我看来,问题在于操作系统使分区处于“不干净”状态。Windows中有一个不缓存写入的选项,也许有帮助,也许Linux中有类似的选项。或者,也许我们可以找到一种使系统在进入睡眠之前“清理”分区的方法。
罗尔夫(Rolf)

23

我总是在启动任何其他设备之前先使Windows处于休眠状态,但是Windows太慢而无法从头开始。但是写入休眠操作系统的分区很危险,因为某些FS表仍在内存中(嗯,在休眠文件中,但不在FS中),应用程序仍然可以处理某些文件,并且通常文件系统状态是一种不稳定

但是您可以将该分区挂载为只读,这样它将与休眠之前完全相同,并且Windows不会注意到任何事情。

关于正常挂载并远离系统文件的建议,这不是一个好主意。文件内容的重定位可能会发生,MFT可能会发生更改,访问时间属性将发生更改,所有这些情况可能会严重破坏文件系统。使用FAT并不是那么危险,但是使用NTFS确实很危险,因为它要复杂得多,并且内存中的状态要多得多。


1
确定只读安装是可以的吗?我的理解是,使用日志文件系统,即使是只读挂载也会重播日志,从而导致文件系统发生更改。另一方面,可以从Windows访问的唯一Linux文件系统是ext2,它与FAT一样是非主流的,并且由于历史原因,Linux可能会进行真正的NTFS只读装载。所以也许安全的。无论如何,如果有人有具体的测试结果,我希望得到它。
瑞安·汤普森

2
不,当FS挂载为只读时,它什么都没有改变。这就是为什么将其称为只读:)不需要日记,因为它可以确保FS的状态始终正确,但是当状态不变时,则没有必要,因此不使用日记。它现在对我
有用

1
“ Windows太慢,无法从头开始”您是认真的吗?那我一定做错了,导致笔记本电脑进入休眠状态后,启动时间增加了大约2分钟或更长时间。
thepaulpage

1
我说的是XP,是的,考虑到从启动到运行应用程序所花费的时间,这真是太慢了。Ubuntu 9.04围绕它运行。由于某些原因,Ubuntu 9.10的运行速度要慢得多。
vava

由于Windows 8及更高版本,Windows启动很快。当我使用Windows 7时,它的加载速度很慢,因此直到我能启动浏览器启动网络之前,它已经可用。然后我升级到Windows 8,从那时起我回到家时,打开路由器,然后打开笔记本电脑和浏览器,必须等待很长时间才能访问互联网。由于Windows 10的运行速度更快,请按电源,然后几秒钟就可以准备好
phuclv

9

我定期使Windows XP休眠并通过USB引导到Ubuntu。
完美地工作。

“待机”模式和“休眠”模式之间有区别。
操作系统状态已完全刷新到磁盘,并且您的硬件已关闭电源。
如果打开计算机电源并启动到其他操作系统,则对休眠的操作系统没有影响。
您可以根据需要保持尽可能多的操作系统处于休眠状态。

例如,
您可能有多个Ubuntu安装(例如,每个USB闪存驱动器一个),
然后休眠每个,拔出驱动器,然后启动到另一个。
这里没有边缘,因为没有堆叠/链接效果。
在此示例中,休眠的USB闪存盘彼此独立
(在电源循环的计算机中)。

休眠C:\驱动器的一个小缺点是引导进入另一个操作系统,
您将无法在新操作系统中安装休眠引导分区。
分区锁定与休眠状态。
如果在该状态下进行编辑,它将被破坏。


实际上,您错了,这是一个很好的方法!我尝试了休眠Windows并启动到Ubuntu并安装Windows文件系统,并且它可以正常工作,当您从休眠状态恢复Windows时也不会损坏!这让我感到惊讶。
瑞安·汤普森

恕我直言,人们谈论的腐败很可能与Linux NTFS驱动程序与所有NTFS功能不完全兼容有关。最好挂载只读。
马特·H

好的,您还想阅读Ubuntu上的NTFS稳定吗?
尼克,

nik是正确的-请勿从其他操作系统挂载该分区,而是仍在休眠的操作系统中挂载该分区。您不会在同时运行的两个虚拟机(使用直接分区访问)中装载相同的分区,对吗?
Ben Voigt 2012年

8

我可以确认共享NTFS分区的数据丢失问题。我在Lucid Lynx Ubuntu和Windows 7之间进行双重启动。在使Windows 7休眠并启动到Ubuntu之后,我继续构建了三个VirtualBox虚拟机(历时7天),并在这些计算机中安装了各种软件包。重新启动进入Windows 7后,文件消失了。走了 ntfsundelete和最重要的是找不到它们。

因此,我进行了一系列测试,看看这是否实际上是造成数据丢失的原因。当关闭Windows 7,启动Ubuntu,写入一些文件,重新启动回Windows 7时,这些文件将始终保留。休眠Windows 7时,在Ubuntu中重新启动,写入一些文件,然后重新启动到Windows 7中,则新文件消失了。

我不知道写入文件的更改是保留还是丢失,但是在这种情况下,添加到共享NTFS分区的新文件和文件夹很可能会丢失。


4

你所说的没有错。即使安装了休眠的文件系统,休眠的内容也会保存到光盘上的一个大文件中-只要您不触摸此文件或任何重要的系统文件(显然),那么什么都不会发生。

如果您在关闭系统电源后从另一个OS更改了分区的内容,则原始分区仍然可以正常启动。休眠状态是相同的。

只要确保在安装/卸载分区时,您不会损坏任何系统文件或驱动器头信息(例如MBR,文件日志),尽管这与休眠无关,而仅仅是我们都需要的常见警告要知道。


3
思想实验:如果您在Windows的应用程序中打开了文档或文件(例如,正在编辑Word doc),然后休眠并启动到其他操作系统,该怎么办?就Linux知道它可以安全地对文件进行任何操作而言,不再有活动的文件锁,因此,如果您确定文件被错误地提交并将其移动到另一个目录,Linux会为您提供保护。当您启动回Windows时,如果Word的文件突然消失,该怎么办?现在想想,如果该文件比Word文档更重要,将会发生什么?只读安装将更加安全。
GAThrawn

1
事实证明,这是最准确的答案。实际上,您可以在Windows处于休眠状态时挂载Windows C驱动器并对其进行修改,并且它不会抱怨。我尚未在Linux上进行过测试,但是我怀疑它无法正常工作。
瑞安·汤普森

@Ryan,可以,但是不是100%安全的。NTFS可能很容易损坏。另一个问题是Linux和Windows使用的NTFS略有不同,因此Windows可能无法在Linux上使用。这些差异可能最终导致FS损坏,尤其是在FS处于这种极端情况下。
vava

@GAThrawn-Word会做什么?尝试在Windows下强行编辑Word文档然后看看会发生什么。存在用于删除文件锁的程序。@vava-只要您使用的程序/操作系统符合NTFS MFT和Journal,就可以了。
突破

我知道这不是100%安全的,但要点是,如果我在使Windows休眠后意外地将Windows文件系统挂载在Linux中,结果将不会立即发生且无法恢复。换句话说,如果我想打自己的脚,我实际上必须付出一些努力。
瑞安·汤普森

4

只是在Windows XP和Windows 7之间的共享物理驱动器(FAT32)上遇到问题。我使Windows XP处于休眠状态,几天后启动到Windows 7,然后又回到XP。现在,共享驱动器上的文件系统已损坏。Disk Checker正在运行,看起来很糟糕。虽然大多数是交叉链接的文件,但其中有数千个。


3
换句话说,如果您确实要休眠到磁盘,请不要使用共享驱动器。(或者,如果您使用Linux,则在休眠之前先卸载该驱动器)
DenilsonSáMaia

4

这有点陈旧,但是作为一个关键问题,另一个推荐是值得的。

我有一个外部NTFS USB硬盘驱动器,用于与两台不同的PC进行数据传输(没有与OS相关的文件)。在解决问题之前,我经常会不断丢失数据。其中一台PC较旧且运行缓慢(Windows XP),因此我使用休眠模式来加快重新启动时间,在此状态下断开硬盘驱动器的连接,并使用另一台PC写入数据(Windows 7)。并非每次都发生数据丢失,但肯定是这种情况造成的。自从我停止这样做以来,再也没有发生过。


对我来说最可怕的是:这似乎是关于数据磁盘的,对吗?因此,休眠到USB磁盘的甚至不是操作系统本身的状态,而仅仅是数据?在那种情况下,我希望软件在收到操作系统即将进入休眠状态的信号时就可以正确地将内容写入磁盘。但显然不是……
Arjan 2014年

1
究竟。这是一个数据磁盘。没有与操作系统相关的文件。对不起,我没有强调这一点。实际上,这就是为什么我觉得我需要增加自己的贡献。当我第一次诊断出这种情况时,我被告知不要这样做是常识,但是尽管我是专业人士,但这一点看起来并不明显,而且这种情况很可能发生在外部驱动器上。我猜它之所以未被广泛讨论,是因为很少有人真正花时间去分析和诊断它。更不用说报告了。
user3671607

也许是一个愚蠢的问题:在休眠之前,您是否安全地卸下了驱动器(即文件管理器,右键单击设备,然后弹出),还是只是拉动了驱动器?
gamen

是的,这是一个愚蠢的评论:当计算机处于休眠状态时,如何安全地卸下驱动器?
user3671607

3

我在休眠和多重启动时遇到了问题。情况:Ubuntu和WinxP Multboot,但两个操作系统都可以看到数据分区。我做了一些测试...来回...所以我正在用Word编辑一个Wordfile ...保存了文件并关闭了Word。休眠...启动了Ubuntu,...与OpenOffice编辑了相同的文件...休眠了。

重新启动到休眠的WinXP。Word没有“看到”更改...它只是像另一个文件一样看上去...

我也以其他方式进行了此测试...第二次文件损坏...我无法打开文件或删除文件Chkdsk'解决了问题,但文件丢失了...在另一项测试中,Ubuntu没有甚至看到编辑过的文件。

因此,当使用休眠模式和相同的分区(不必是操作系统从中启动的分区...)时,这是非常危险的...文件可能会在我的测试中损坏,我可以重复执行... BTW:在测试中,我总是保存文件并关闭了应用程序(Word和OpenOffice),直到进入休眠状态……!我以为安装分区是罪魁祸首,但是现在我认为问题一定是关于文件缓存或其他问题的。。。问候,ArnoR


3

对于Windows(Vista)和Ubuntu(9、10、11)双重引导,我具有以下极具破坏性的经验。尽管我在使用和配置Windows和DOS方面经验丰富,但我不是技术用户。我通过Win Vista计算机上的实时CD安装了Ubuntu。这样就完美无误了,我立即启动了双启动并运行了它。看到Ubuntu安装上没有警告,我(天真)假设我可以休眠(保存到磁盘,而不挂起)这两个系统,并可以在它们之间自由切换。结果如下:

1)我犯了一个错误,即在Windows中打开了我忘记了的在Ubuntu中编辑文本文件的错误。之后,任一操作系统都无法访问该文件。它甚至无法删除。Chkdsk最终将其删除,但我的数据丢失了。

2)我还尝试了从Ubuntu直接进入Win分区的其他两个文件操作:从OpenOffice生成pdf文件,并在Win桌面上创建目录/文件夹。两者都无法从Windows访问(尽管可以在Win资源管理器中看到它们)。幸运的是,可以从Ubuntu中删除它们,尽管之后必须运行chkdsk才能完全从Windows删除。

3)一个大的OpenOffice Writer文件(保存为* .doc),该文件首先被一个编辑,然后在另一个操作系统中被编辑了几次(在我编辑该文件时在另一个系统中没有打开),其大小突然从大约2 MB到7 MB,几乎无法加载和保存。当我将文件另存为* .odt文档时,其大小已大大减小,但保存/加载时间却没有加快。当我解压缩文件时,其“内容”部分超过22 MB。当我使用文本编辑器访问此文件时,结果发现文档中的每个单词和空格都分别以相同的样式进行了格式化!我终于解决了这个问题,方法是将巨人版本与同一文件的早期版本进行比较,使用旧版本作为比较的基础,然后接受所有更改并保存。

4)此时,我从Ubuntu 10升级到Ubuntu 11,发现11系统专门使用了新的Unity接口,这对我来说是完全不能接受的。当我弄清楚如何在Ubuntu 11上安装Gnome时,发现Gnome 3远不如Gnome2。因此,我决定完全卸载Ubuntu并重新安装Karmic Koala,该版本使用Gnome 2而没有任何新痕迹。 Unity系统。事实证明这很复杂,但是在网上找到几本手册后,找到了完全相同的说明后,我继续进行。一切正常,直到我运行EasyBCD 2.1.2(从Windows运行),这将使我在删除Ubuntu的Grub引导程序后直接重新引导至Windows。重新启动时,我发现我的MBR受到严重损坏,并且计算机无法识别任何可启动的硬盘驱动器。

5)现在,我可以再次启动到Vista,并且准备重新安装Ubuntu时,我发现许多文件开始随机从系统中消失。显然文件系统仍然损坏。只有完全重新安装Windows才能解决此问题,并且我现在正在非常仔细地考虑在安装Karmic Koala之前为避免将来出现类似问题应采取的措施。我希望我的问题与休眠问题有关,但是可以肯定的是,我正在考虑创建一个单独的“传输” NTFS分区,在该文件中可以放置一个操作系统中的文件,然后再从另一个操作系统访问它们。不切实际,但是应该安全。我希望。


2

不要这样做(再次!)

我休眠了Vista / NTFS,启动了Lucid,在共享的ntfs分区上工作了3天,然后开始丢失文件和目录或被讨厌的错误消息锁定(在lucid内)。当我重新启动到Windows时,这真是一团糟,台式机崩溃了。等等。希望chkdsk能够修复其中的大部分问题,并且我从found.000那里钓鱼了大约我以前的98%。
因此,绝对不是一件好事。
我有点记得以前是不可能的:出于某些(显然是好的)原因,“休眠” ntfs分区无法在linux中挂载。我想回到原来的行为


2

危险!我还可以确认这对于FAT32卷和NTFS卷都是可怕的问题,并且仅当Windows(我有Windows 7)处于休眠状态时才如此。我认为这与缓存有关,并且已经考虑过设置驱动器以便快速移除。也许可以解决这个问题,但是我还没有尝试过,因为我真的只想以这种方式设置一个Windows似乎不支持的分区。甚至我的OSX ntfs驱动程序也支持每个分区缓存控制,但不支持Windows。另外,我的OSX ntfs驱动程序似乎认识到不应安装该驱动器。似乎与这个问题有关。希望能有所帮助。


1
是的,它与缓存有关,不,“优化以快速删除”将无济于事。这会使Windows立即写出更改,但是Windows仍(危险地)仍会假定其读取缓存为100%有效,并且不会看到其他操作系统对该磁盘所做的更改。
Ben Voigt 2012年

1

这是我的经验。我在Windows和Kubuntu(11.04)上使用双引导系统。我的大多数文件都位于Windows NTFS分区上,而我主要从Linux使用它。它使用FUSE挂载。

这是发生了什么:

  1. 休眠窗口
  2. 下次启动时,启动到Linux并使用了几个星期-无需启动到Windows
  3. 引导回Windows(因为在线测试只能在Internet Explorer中运行,而别无其他,以某种方式ie4linux还不够)

Windows恢复后,我注意到在这两个星期中创建的所有文件都丢失了。我重新引导回Linux以仅验证是否也找到缺少的文件。我猜想Windows将NTFS文件系统还原到了休眠状态,并将其还原到该时间点。

我尝试了ntfsundelete和testdisk之类的工具。那些丢失的文件未列出。另外,即使Windows处于休眠状态且未关闭,Linux也会以RW模式进行驱动。我想Linux会警告或只是以只读模式挂载驱动器,但这在这里没有发生。


2
文件系统元数据上有一个标记,表明它是否已正确卸载……我也认为正确的行为是让Linux NTFS驱动程序检查该标志。
Ben Voigt 2012年

1

我还可以确认,处于休眠状态的两个不同O /​​ S之间共享一些非系统分区会导致文件系统损坏和数据丢失。

场景:我有3个分区NTFS:1. Windows XP 2. Windows 7 3.数据(对于兼容模式下不能很好运行的旧应用程序,我仍然必须使用XP)。

示例:从分区1(XP)引导,然后运行将文件存储在3上的Thunderbird。然后进入休眠状态(操作系统转储RAM来休眠文件并关闭PC)。从分区2(7)引导,然后运行将文件存储在3上的Thunderbird。这里的问题开始于访问文件等,有时带有或不带有chkdsk。从分区1重新启动,并且OS_2_7修复的文件再次损坏,甚至更糟的是,在休眠(例如Firefox)之前,一些打开的文件也损坏了。

是的 休眠两个O / S不管它们使用系统/非系统分区都会使数据损坏。为什么呢 我想根本原因是文件LOCK和MFT。从休眠状态唤醒后,O / S不会刷新MFT,因此仍假定在旧扇区中查找文件,因此任何更改其大小/位置的文件都将损坏。


那么,哪些文件已损坏?只是属于Thunderbird的文件或几个不相关的文件?可以理解,如果Thunderbird是从分区3中的相同位置运行的,则在两个不同的系统中会有两个不同的数据集。一个将试图强迫另一个。
Doktoro Reichard 2013年

0

我以前就是这么做的。为了避免发生事故,我从未安装过休眠机器的系统驱动器,并且每个OS都有各自独立的交换分区。但是,我有一个专用的数据分区,该分区将用于在两个休眠操作系统之间传输数据。我什至将Firefox和Thunderbird配置文件放在这里,因此不需要保留两个单独的配置文件。只需确保在休眠之前关闭一台计算机上的Firefox。

我不记得设置有任何问题,而且我也使用了很长时间。


您在共享分区上使用什么FS?我开始认为也许NTFS与它有关,每个人都抱怨他们共享的NTFS分区已损坏。
罗尔夫(Rolf)

@Rolf:在Linux上具有ntfs-3g驱动程序的NTFS。此外,这是纯粹的数据分区,但Firefox / Thunderbird之类的应用程序除外,我知道它会警告关闭不正常,并且在切换操作系统之前我总是会关闭它。
Lie Ryan

也许FAT会做?NTFS更好,但是在这种情况下,至少可以说它似乎运行不佳。另外,如果我们可以让系统在休眠之前将所有缓冲区刷新到磁盘,也许会有所帮助。但是我想最好为共享分区尝试不同的文件系统(EXT或其他文件系统)。如果有人愿意这样做:)也许在虚拟机中?顺便说一句,我遇到了相同的问题:使用VM,保存状态,然后使用相同的VM(相同的文件),但在另一个OS下。VM主机不知道保存状态。
罗尔夫(Rolf)

1
因此,您的意思是,如果我们记得在休眠之前关闭共享分区的所有文件句柄,则应该可以。
罗尔夫(Rolf)

0

答案是,对于NTFS,显然是的(请参阅其他答案)。您可以尝试使用更旧,更简单的文件系统,例如FAT。但这将是黑暗中的一击。

我只想补充一下,虚拟机可以重现该问题。我在双启动计算机上使用VirtualBox。我已经在Windows和Linux分区中都安装了VirtualBox主机软件,并将图像文件保存在共享的NTFS分区中。目的是能够在Windows和Linux中使用相同的VM。

由于习惯,我在关闭VM时在VirtualBox中使用了“保存计算机”状态命令。我使用了此命令(它将VM的RAM状态保存在某处),将笔记本电脑重新启动到其他OS,然后再次使用了该VM。VirtualBox中没有还原选项,因此,如果使用其他VirtualBox安装保存了虚拟机的状态,则VirtualBox显然不会知道该状态。我读到VMware对此可能更聪明,但我还没有尝试过。

最终,我所有的虚拟机都损坏了。不过,我可以使用fsck修复大部分损坏。

这只是说您无需花费数小时进行分区和安装操作系统即可重现此问题。

我的解决方案?在Windows上禁用休眠模式。默认情况下,它在Ubuntu中是禁用的。如果计划在其他环境(不同的操作系统,不同的主机安装等)中启动该虚拟机,也不要对虚拟机使用保存计算机状态。

除非有人提出一个不易受此问题影响的文件系统(或OS,或其他)。

另外,如果已报告了避免损坏(请参见Windows休眠),则在休眠之前关闭共享分区上的所有打开的句柄(并可能刷新到磁盘)(或者,我想卸载该分区-在Windows中也必须有一种方法)。 Lie Ryan的答案)。不过,我更希望安全起见,在这种情况下完全不要使用休眠模式。


Virtual Box的保存状态与休眠状态完全不同。保存状态是虚拟机功能,不是操作系统功能。当发生保存状态时,操作系统完全不知道。保存状态不是存储在虚拟磁盘映像中,而是存储在另一个文件中。实际上,Virtual Box可以将保存的状态还原到另一台计算机上,这称为传送。
Lie Ryan

-3

我只是认为这不可能。

当您进入休眠状态时,计算机会“锁定”在该操作系统中(由于缺乏更好的用语)。您不是在休眠操作系统,而是在休眠整个计算机。从休眠状态恢复时,无需再次通过BIOS和POST时间。


我并不是说要暂停到RAM,而是要让硬盘进入休眠状态。我将对问题进行更具体的编辑。
瑞安·汤普森

7
对我来说似乎不对。休眠时,计算机将关闭。当您再次启动它时,它将通过BIOS和POST。只有当OS加载程序看到它正在休眠时,它才会加载包含内存状态的文件(适用于Windows的hiberfil.sys)并还原OS。
斯纳克

不,它将导致文件系统一致性问题。见我上面的帖子。
内森·奥斯曼

@George:如果您在两个操作系统之间共享任何文件系统,则文件系统一致性会出现问题。但是您肯定可以运行具有其自己的一组分区的其他OS,与此答案相反。
Ben Voigt 2012年

如果未通过BIOS和POST,则将无法在启动时选择操作系统并执行诸如此处所述的混乱操作。休眠状态不会暂停。
罗尔夫(Rolf)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.