解决Linux无法读写U盘中的NTFS问题

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的快速启动导致的:

解决Linux无法读写U盘中的NTFS问题_第1张图片

把快速启动关了就行。

但是这U盘里面的快速启动貌似关闭不了。。。

最后在StackExchange戳这里)上找到了答案:

解决Linux无法读写U盘中的NTFS问题_第2张图片

核心是remove_hiberfile这个挂载选项,同时也查了一下man

解决Linux无法读写U盘中的NTFS问题_第3张图片

在启动Linux时,Windows是有可能处于hibernate状态的,该状态下是不能写的并且强制只读挂载,加入remove_hiberfile参数后,去除了hibernation file,这样在笔者的环境上测试就能正常写入了,但是要注意使用该参数可能会导致保存的Windows session
数据全部丢失:

在这里插入图片描述

所以最终挂载命令如下:

sudo ntfs-3g -o remove_hiberfile /dev/sda2 /run/media/point

测试了一下Windows并没有任何损坏,因此如果出现上述的问题可以尝试加上remove_hiberfile参数。

你可能感兴趣的