如何自动将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