如何自动将hibernate的NTFS挂载到只读状态?

有没有办法以这种方式设置Ubuntu:

如果我无法在rw模式下挂载文件系统,则将其以ro模式挂载到同一目录中。

结果我不应该遇到系统无法挂载文件系统的通知(跳过或手动修复通知)。 因此,当我启动系统时,我应该在rw或ro模式下安装我的ntfs分区取决于窗口是否hibernate。

fstab条目:

 #/dev/sda7 UUID=D0B43178B43161E0 /media/Dane ntfs defaults,errors=remount-ro 0 1 

“mount -a”结果:

 The disk contains an unclean file system (0, 0). Metadata kept in Windows cache, refused to mount. Failed to mount '/dev/sda7': Operation not permitted The NTFS partition is in an unsafe state. Please resume and shutdown Windows fully (no hibernation or fast restarting), or mount the volume read-only with the 'ro' mount option. 

我有ubuntu 13.10和win8。 我使用uefi安全启动。

我发现了一种在发生任何错误时以只读模式挂载hibernateWindows分区的方法

我希望它对你也有用。 我在下面描述如何做到这一点。

  • 在任何编辑器中以root权限打开/etc/rc.local文件。

     sudo gedit /etc/rc.local 
  • 现在添加以下行:

     sudo mount /dev/sda7 /media/Dane if [ $? -eq 14 ] then sudo mount -o ro /dev/sda7 /media/Dane fi exit 0 

    如果已经写入exit 0则删除副本。 确保/etc/sda7是您在发生错误时要安装的Windows分区,并且还有一个名为Dane的目录,在/media创建。 如果没有,则相应地更改/dev/sdaX并创建目录。

  • 现在使用以下命令更新:

     sudo update-rc.d -f /etc/rc.local 

    我不确定这个命令是否需要,但只是执行它给出的每条消息。

  • 现在,当Windowshibernate时,最终重新启动系统。

一点描述:

写在文件/etc/rc.local实际上在系统引导之前和之后执行,因此充当启动。 脚本中的第一个命令将尝试挂载分区并获取它返回的错误代码。 好吗? 发生任何错误时为14。 $? 分区已经安装并尝试再次安装时为16

如果出现问题,请回复。 我等着你的回复..

首先,您需要使用以下命令查找设备ID:

 sudo fdisk -l 

在System下查找格式化为NTFS的那个,并记住设备ID(应该看起来像/ dev / sda2)。 然后创建安装目录并安装它。

 mkdir Windows sudo mount -o ro /dev/sdaX Windows 

(将X替换为您的设备ID)

这是我的解决方案,它不是最好的解决方案。

我只是使用nobootwait选项将第二个条目添加到fstab。 如果第一个条目不起作用,则第二个条目有效,系统不报告任何消息。 如果第一次输入有效,则第二次输入因第一次输入而无效。 我们会看看它是否能正常工作:D

 #/dev/sda7 UUID=D0B43178B43161E0 /media/Dane ntfs defaults,nobootwait,errors=remount-ro 0 1 UUID=D0B43178B43161E0 /media/Dane ntfs suid,dev,exec,auto,nouser,async,nobootwait,ro 0 2