由于休眠,无法挂载 Windows (NTFS) 文件系统

由于休眠,无法挂载 Windows (NTFS) 文件系统

每当我启动 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 分区:

  1. 启动 Windows 并完全关闭系统。然后您可以重新启动 Ubuntu,当您在 Nautilus 中打开分区时,该分区将自动以读写模式挂载。 请注意,“关机”选项可能不是默认显示在开始菜单中的选项。您可能需要单击旁边的按钮才能查看更多选项。

  2. 以只读模式手动挂载文件系统。

    • 使用以下命令检查文件夹中是否有 Windows 分区的挂载点(用于挂载分区的文件夹)/media

      ls /media

    • 如果您没有看到 Windows 分区的文件夹,则应该使用以下命令创建一个文件夹:

      sudo mkdir /media/windows

    • 接下来,使用以下命令将分区以只读模式挂载到此文件夹上:

      mount -t ntfs-3g -o ro /dev/sda3 /media/windows

      /media/windows请注意,如果您的挂载点有其他名称,则您应该进行更改。

    • 现在,您可以使用 Ubuntu 中的任何程序查看/打开 Windows 分区上的文件。但是,由于分区处于只读模式,因此您无法写入分区或修改任何文件。
  3. 如果您需要以读写模式安装分区,并且无法或不愿意启动 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. 打开控制面板在小图标视图中点击电源选项。 (看屏幕截图 1
  2. 点击选择电源按钮的功能。 (看屏幕截图 2
  3. 点击更改当前不可用的设置。 (看屏幕截图 3
  4. 取消选中开启快速启动(推荐)。 (看屏幕截图 4

点击保存更改。现在,关闭 Windows 8 并重新启动 Ubuntu。

如果仍然无法挂载且出现错误,则可能需要完全关闭休眠模式。打开提升的命令提示符(右键单击快捷方式,单击“以管理员身份运行”),然后输入:

powercfg /h off

来源:快速启动 - 在 Windows 8 中打开或关闭

答案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

相关内容