1 问题描述
由于笔者因为某些需要把Windows装在了U盘上面(在这里建议一下如果有需要请使用固态U盘),在Linux下挂载时,能读取但并不能写。
2 尝试的解决方案
2.1 remount
一开始是因为没有读写权限,所以就重新挂载,命令如下:
mount -o rw,remount /dev/sda2
(/dev/sda2是因为笔者的U盘大小64G,把Windows直接装在了里面,默认分了两个分区,一个是启动分区/dev/sda1,一个是系统分区/dev/sda2)
但是还是不能写入。
2.2 ntfs-3g
首先安装了ntfs-3g,然后再次尝试挂载:
sudo mount -t ntfs-3g /dev/sda2 /run/media/point
sudo ntfs-3g /dev/sda2 /run/media/point
还是不能写入。
2.3 ntfsfix
ntfsfix能修复常见的错误以及NTFS分区不一致的问题,尝试了一下:
sudo ntfsfix /dev/sda2
还是不能写入。
3 最终解决方案
再次查了一下资料(戳这里)发现这个可能是因为Windows的快速启动导致的:
把快速启动关了就行。
但是这U盘里面的快速启动貌似关闭不了。。。
最后在StackExchange(戳这里)上找到了答案:
核心是remove_hiberfile这个挂载选项,同时也查了一下man:
在启动Linux时,Windows是有可能处于hibernate状态的,该状态下是不能写的并且强制只读挂载,加入remove_hiberfile参数后,去除了hibernation file,这样在笔者的环境上测试就能正常写入了,但是要注意使用该参数可能会导致保存的Windows session
数据全部丢失:
所以最终挂载命令如下:
sudo ntfs-3g -o remove_hiberfile /dev/sda2 /run/media/point
测试了一下Windows并没有任何损坏,因此如果出现上述的问题可以尝试加上remove_hiberfile参数。
文章来源: ,作者:氷泠,版权归原作者所有,如需转载,请联系作者。
原文链接:/a/1190000038236768