每当我启动 Ubuntu 时,我都会收到一条消息,提示无法挂载我的 Windows 分区,我可以选择等待、跳过或手动挂载。
当我尝试通过 Nautilus 进入我的 Windows 分区时,我收到一条消息,说该分区处于休眠状态,我需要进入文件系统并正确关闭它,我已经毫无问题地完成了这件事,所以我不知道为什么会发生这种情况。
这是我的分区表,如果需要更多数据,请告诉我。
Device Boot Start End Blocks Id System
/dev/sda1 2048 20000767 9999360 83 Linux
/dev/sda2 20002814 478001151 228999169 5 Extended
/dev/sda3 * 478001152 622532607 72265728 7 HPFS/NTFS/exFAT
/dev/sda4 622532608 625141759 1304576 82 Linux swap / Solaris
/dev/sda5 20002816 478001151 228999168 83 Linux
答案1
A漏洞已就您看到的 Nautilus 对话框提交了投诉,因为它推荐了一个可能导致数据丢失的潜在危险选项。除非您想删除已保存的 Windows 会话并可能丢失未保存的工作。
解释:为什么Linux无法打开休眠的Windows分区:
您看到此错误是因为您休眠了 Windows 而不是以正常方式关闭它(在较新版本的 Windows 中,休眠可能是默认选项)。
- 休眠将当前状态信息保存到硬盘然后关闭计算机。
- 关闭计算机将在关闭计算机电源之前关闭所有程序并结束所有正在运行的进程。
当您通过休眠关闭 Windows 时,您实际上是暂停系统并保存所有信息(保存到一个名为 的大文件中
hiberfil.sys
)。这样,当您从休眠状态恢复时,所有应用程序和文件都将与您离开时完全相同。它还会设置一个标志,hiberfil.sys
让其他操作系统知道 Windows 已休眠。在 Windows (
ntfs
) 分区处于休眠状态时对其进行更改可能会很危险——这可能会导致 Windows 无法从休眠状态恢复或在恢复后崩溃。因此,ntfs-3g
如果挂载(打开)分区的工具 ( ) 看到休眠标志,它将不会以读写模式挂载它。因此,默认文件浏览器 Nautilus 将无法自动打开此分区——因此您会看到错误消息——因为它正在尝试以读写模式打开它。
适用于所有 Windows 版本的解决方法:
有三种方法可以挂载休眠的 Windows 分区:
启动 Windows 并完全关闭系统。然后您可以重新启动 Ubuntu,当您在 Nautilus 中打开分区时,该分区将自动以读写模式挂载。 请注意,“关机”选项可能不是默认显示在开始菜单中的选项。您可能需要单击旁边的按钮才能查看更多选项。
以只读模式手动挂载文件系统。
使用以下命令检查文件夹中是否有 Windows 分区的挂载点(用于挂载分区的文件夹)
/media
:ls /media
如果您没有看到 Windows 分区的文件夹,则应该使用以下命令创建一个文件夹:
sudo mkdir /media/windows
接下来,使用以下命令将分区以只读模式挂载到此文件夹上:
mount -t ntfs-3g -o ro /dev/sda3 /media/windows
/media/windows
请注意,如果您的挂载点有其他名称,则您应该进行更改。- 现在,您可以使用 Ubuntu 中的任何程序查看/打开 Windows 分区上的文件。但是,由于分区处于只读模式,因此您无法写入分区或修改任何文件。
如果您需要以读写模式安装分区,并且无法或不愿意启动 Windows 并完全关闭它,则还有第三个选项。但是,它不在此处列出,因为它彻底删除
hiberfil.sys
并将导致您丢失休眠 Windows 程序中所有未保存的信息。以下是man ntfs-3g
有关用于执行此操作的选项的引文。remove_hiberfile Unlike in case of read-only mount, the read-write mount is denied if the NTFS volume is hibernated. One needs either to resume Windows and shutdown it properly, or use this option which will remove the Windows hibernation file. Please note, this means that the saved Windows session will be completely lost. Use this option under your own responsibility.
解决方案(仅适用于Windows 8和10):
Windows 8 中有一项新功能叫做快速启动如果启用此功能(默认情况下启用),Windows 8 实际上不会在您选择关机时完全关闭。相反,它会进行“混合关机”。这有点像休眠;它使 Windows 8 的重新启动速度更快。因此,您需要禁用此功能才能正确关闭它,并能够挂载 Windows 分区。为此,请启动 Windows 8 并执行以下操作:
笔记:禁用快速启动很可能会使您的 Windows 8 启动时间变长。没有“确切”的数字,但假设您花了 10 秒启动 Windows 8,禁用此功能后将需要 50 秒。
- 打开控制面板在小图标视图中点击电源选项。 (看屏幕截图 1)
- 点击选择电源按钮的功能。 (看屏幕截图 2)
- 点击更改当前不可用的设置。 (看屏幕截图 3)
- 取消选中开启快速启动(推荐)。 (看屏幕截图 4)
点击保存更改。现在,关闭 Windows 8 并重新启动 Ubuntu。
如果仍然无法挂载且出现错误,则可能需要完全关闭休眠模式。打开提升的命令提示符(右键单击快捷方式,单击“以管理员身份运行”),然后输入:
powercfg /h off
答案2
编辑:这样做可能带来危险的后果Windows 可能无法启动或者在启动时损坏文件系统。
使用ntfs修复在终端中,即使你无法访问 Windows
sudo ntfsfix /dev/sdXY
其中 XY 是分区,例如a2
( /dev/sda2
) 或b1
( /dev/sdb1
)
ntfsfix 修复一些基本的 NTFS 不一致性,重置 NTFS 日志文件并安排在首次启动 Windows 时进行 NTFS 一致性检查。
答案3
如果您想终止休眠会话,请在终端中运行此命令(按Ctrl+ Alt+T打开终端)
sudo ntfsfix /dev/sdXY
XY
分区在哪里?例如:sda2或者sdb1
如果您无法进入 Win8,此方法同样有效。
答案4
我的解决方案是在 中调用一个mntwindows
脚本/etc/rc.local
。此脚本将检查是否处于休眠状态,如果休眠则将其挂载为只读。为了确保脚本始终可以调用,我将它放在 中/bin
并将其标记为可执行文件。脚本的内容如下
sudo mount /dev/sda[Partition Number] /media/[Any existing folder name]
#Mounts Windows
if [ $? -eq 14 ]
then
echo "Windows is sleeping, I'm mounting as read-only"
sudo mount -o ro /dev/sda[Partition Number] /media/[Any existing folder name]
fi