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

yot*_*moo 368 windows mount hibernate 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
Run Code Online (Sandbox Code Playgroud)

ade*_*lff 410

一个错误已经提交关于你看到它建议有潜在危险的选项,可能会导致数据丢失鹦鹉螺对话框。请不要在此对话框中运行命令,除非您想删除已保存的 Windows 会话并可能丢失未保存的工作。

说明:为什么 Linux 无法打开休眠的 Windows 分区:

您看到此错误是因为您使 Windows 休眠而不是按正常方式将其关闭(在较新版本的 Windows 中,休眠可能是默认选项)。

  • 休眠将当前状态信息保存到硬盘,然后关闭计算机。
  • 关闭计算机会关闭所有程序并在关闭计算机之前结束所有正在运行的进程。

当您通过休眠来关闭 Windows 时,您实际上是在暂停系统并保存所有这些信息(到一个名为 的大文件中hiberfil.sys)。这样,当您从休眠状态恢复时,您的所有应用程序和文件都将与您离开时完全一样。它还设置了一个标志,hiberfil.sys让其他操作系统知道 Windows处于休眠状态。

在您的 Windows ( ntfs) 分区处于休眠状态时对其进行更改可能很危险——它可能导致 Windows 无法从休眠状态恢复或在恢复后崩溃。因此ntfs-3g,挂载(打开)分区的工具 ( ) 如果看到休眠标志,则不会以读写模式挂载它。因此,默认文件浏览器 Nautilus 将无法自动打开此分区(因此会出现您看到的错误消息),因为它正在尝试以读写模式打开它。

适用于所有 Windows 版本的解决方法:

有三种方法可以挂载休眠的 Windows 分区:

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

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

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

      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.
    
    Run Code Online (Sandbox Code Playgroud)

解决方案(仅适用于 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
Run Code Online (Sandbox Code Playgroud)

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

  • 这些都不适合我。我唯一能够在 ubuntu 上挂载 Win 8 分区的是在 Windows 中按“重新启动”,然后启动 ubuntu。 (8认同)
  • 你好,正如你提到的,我改变了 windows 8.1 的座位。但不幸的是,我仍然有我以前的错误按摩。请帮我, (3认同)
  • 我禁用了“快速启动”选项,我总是通过重新启动 Windows 来启动到 Fedora 但它仍然说“它处于不安全状态”还有什么可做的吗? (3认同)
  • 有这个链接 http://www.tuxera.com/community/ntfs-3g-manual/#fastrestart 可能很有用 --- 它建议在 Windows 上发出命令 `powercfg /h off`。 (2认同)
  • 我遇到了与 @arielnmz 完全相同的问题。我根据“解决方案(仅适用于 Windows 8)”禁用了“快速启动”,但我仍然无法在 Ubuntu 14 中以 R/W 方式安装它。我可以以 RO 方式安装它,但不能以 RW 方式安装它。知道为什么这适用于其他人而不适用于我吗? (2认同)

小智 162

编辑:您不要这样做MIGHT产生危险的后果,并在启动Windows可能无法启动或破坏文件系统。


在终端中使用ntfsfix,即使您无法访问 Windows

sudo ntfsfix /dev/sdXY
Run Code Online (Sandbox Code Playgroud)

其中 XY 是分区,例如a2( /dev/sda2) 或b1( /dev/sdb1)

ntfsfix 修复了一些基本的 NTFS 不一致,重置 NTFS 日志文件并为首次启动到 Windows 安排 NTFS 一致性检查。

  • 你*不*想这样做。这样做会导致文件系统在您恢复休眠的 Windows 会话时损坏。 (21认同)
  • 我同意@psusi:**这是非常危险的,可能会导致所有数据丢失**像[这里](http://askubuntu.com/questions/659728/unable-to-load-windows8-x-partition-在 ubuntu) (13认同)
  • 稍微解释一下会非常好:-) 当然有手册页,但是既然你写在这里,最好进一步改进它,但解释这个命令的作用。 (7认同)
  • 我试过了,但它仍然返回“Windows 处于休眠状态,拒绝安装。重新安装失败:不允许操作” (3认同)
  • 好的!这应该是选择的答案...... (3认同)

ign*_*nis 54

如果要终止休眠会话,请在终端中运行此命令(按Ctrl+ Alt+T打开终端)

sudo ntfsfix /dev/sdXY
Run Code Online (Sandbox Code Playgroud)

XY分区在哪里。例如:sda2sdb1

如果您无法进入 Win8,这也有效。

  • 我不确定从 Ubuntu 修复 NTFS 分区对于休眠快速启动 Windows 8.1 是个好主意。相反,我在 Windows 8.1 中解决了这个问题:[powercfg /h off](http://askubuntu.com/a/457401/363039) (4认同)

小智 19

我的解决方案是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
Run Code Online (Sandbox Code Playgroud)

  • 我相信不需要在`/etc/rc.local`中创建单独的安装脚本。`/etc/fstab` 中的一行就帮了我的忙:`/dev/sdaX /media/[mount-folder] ntfs-3g nofail,nodev,errors=remount-ro 0 0`。我最初假设“errors=remount-ro”是在 Windows 休眠时自动将驱动器安装为只读的内容。但在 Linux Kernel 5.3+ 上测试时,即使没有该选项,它也可以工作 (2认同)

abh*_*hek 18

这是因为 Windows 8 的快速启动功能。

临时解决方案是返回 Windows 并重新启动系统(而不是关闭)。永久的解决方案是禁用快速启动。

您可以使用本指南在 Windows 8 中禁用快速启动:http : //itsfoss.com/solve-ntfs-mount-problem-ubuntu-windows-8-dual-boot/

  • 这正是我的问题所在,从 Windows 重新启动以启动到 Linux 而不是关机是验证这是否是适合您的正确解决方案的好方法。下面的 ntfsfix 解决方案对我不起作用,而这个解决方案却对我有用。 (3认同)
  • Windows 10 上的相同问题 (2认同)

小智 15

Windows 8 添加了“快速启动”功能。它确实使 Windows 在关机后启动得更快,但作为副作用,它最终会将您的文件系统置于休眠状态。

要在Win 8中禁用此功能,在设置下搜索“选择电源按钮的作用”,单击盾牌解锁复选框,您可以从那里启用或禁用快速启动。

前面提到的警告,您希望真正关闭 Windows 而不是重新启动以从 Linux 轻松访问,仍然适用。


小智 11

对于 Windows 10,我想出了如何关闭快速启动的方法。做了一个截屏来解决这个问题。转至控制面板>硬件和声音>电源选项>系统设置,然后单击“更改当前不可用的设置”并从“启用快速启动”中取消勾选。来源:http : //blog.shahariaazam.com/fast-startup-turn-on-or-off-in-windows-10


小智 10

在 Windows 8 上这是正常的。您需要通过 cmd 通过输入关闭 Windows 8,shutdown /f /s /t 0然后它可能会工作。

  • 我相信`shutdown /s /t 0`就足够了......不需要使用强制 (3认同)
  • @Matt 你是对的。问题确实存在于其他地方:禁用快速启动 + `shutdown /f /s /t 0` 对 Windows 7 来说已经足够了。对于 Windows 8.1 来说已经不够用了。**除了 Windows 7 所需的**之外,Windows 8.1 还需要一个步骤:[powercfg /h off](http://askubuntu.com/a/457401/363039) (2认同)

小智 10

只是为了完成,这是另一个将分区挂载为只读的命令(对于休眠的 Windows 分区很有用):

udisksctl mount --block-device /dev/sda3 --options ro
Run Code Online (Sandbox Code Playgroud)

如果您有权使用文件管理器挂载分区(例如,如果您是管理员),那么您应该能够在不使用sudo.

这在最新的 Ubuntu 版本(如 13.04 和 13.10)中可用。

如果udisksctl不可用,那么也许udisks是。它有不同的参数,因此请查看联机帮助页。


You*_*Git 9

对于 Windows 8+

您需要禁用“快速启动”功能。引用 How-To-Geek:

通过点击 Windows+X 或右键单击开始菜单并选择电源选项来打开电源选项。在“电源选项”窗口中,单击“选择电源按钮的功能”。

在此处输入图片说明

如果这是您第一次弄乱这些设置,则需要单击“更改当前不可用的设置”以使“快速启动”选项可用于配置。

在此处输入图片说明

滚动到窗口底部,您应该会看到“打开快速启动(推荐)”

在此处输入图片说明

取消选中“快速启动”框。

然后,关闭 Windows 10,您应该可以从 Ubuntu 挂载 NTFS 分区就好了。


How-To-Geek 引文取自这里


Joh*_*ber 8

根据我的经验,上面 adempewolff 的流行和有用的答案是必要的,但还不够,以允许我挂载我的 Windows NTFS 分区以使用 Ubuntu 进行写入。按照其他地方的指示,我在尝试安装 Ubuntu 之前关闭了快速启动,并且我也删除了“关机”菜单上的休眠选项。

我仍然无法从 Ubuntu 写入我的 Windows 分区。

我发现我还必须启动 Windows 8.1,启动 Windows 授权命令行(右键单击左下角的 Windows 按钮可以轻松进入此选项),允许它通过 Windows 授权框,然后输入命令:

powercfg /h off
Run Code Online (Sandbox Code Playgroud)

您可以使用以下方法检查结果:

powercfg /a
Run Code Online (Sandbox Code Playgroud)

进行此更改后,我可以从 Ubuntu 自由访问 Windows 8.1 分区,无论我是通过关闭还是重新启动来退出 Windows。


我发现我后来能够扭转这一点并仍然访问该分区(但始终不选中“快速启动”,如上所述,当然从不要求 Windows 休眠)。可以预见的是,逆转它的命令是:

powercfg /h on
Run Code Online (Sandbox Code Playgroud)

我假设 Windows 安装中遗留了一些需要通过以这种特殊方式关闭休眠的情况下启动来清除的东西。

据我所知,应该没有理由像这样撤消第一步——离开可能会提供一些额外的安全powercfg /h off

有关更多信息,请参阅Windows NTFS 处理程序Ubuntu 手册页


Sau*_*mar 8

它变得更加简单(Windows 8 +

只需强制关闭,或者您可以说在重新启动到 Ubuntu 操作系统之前完全关闭您的 Windows 系统。

那么我将如何做到这一点?

很简单:Shift+关机

i,eShift在单击Windows 中的关闭按钮时按住键以完全关闭它。

当然,它会让你的 Windows 下次启动慢一点。:)


Avi*_*Raj 7

  • 启动到 Windows,然后重新启动它。不要关机。

  • 在 grub 菜单中选择“Ubuntu”并按Return。Ubuntu 启动后,打开 NTFS 分区。它现在应该打开了。

  • 请注意,即使您无法登录 Windows(例如,由于丢失密码),这也有效。您可以从 Windows 开始屏幕重新启动。 (3认同)

Kri*_* PC 5

您可以以只读模式挂载它,首先您必须创建一个目录作为挂载点:

sudo mkdir /media/*youruser*/newdisk
Run Code Online (Sandbox Code Playgroud)

稍后,使用以下命令安装驱动器:

sudo mount -t "ntfs" -ro "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,dmask=0077,fmask=0177" "/dev/sda4" "/media/*youruser*/newdisk"
Run Code Online (Sandbox Code Playgroud)

更改单词为*, 为您的用户名/dev/sda4也可能有所不同,具体取决于安装 Windows 8 的分区。

请注意,args 值是针对您的特定错误消息而获取的,对于其他用户来说,获取错误消息、更改-o-ro键入适当的用户名。

另请注意,使用此方法,您无法在 Windows 驱动器中编辑、写入或创建新文件。