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

    在这里插入图片描述

    把快速启动关了就行。

    但是这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参数。

  • 相关阅读:
    源码安装php7.2
    Docker虚拟化之<基础命令>
    Docker虚拟化之<基础理论>
    旧版Linux系统下载地址
    Linux磁盘分区,挂载
    linux crond任务调度
    Linux学习之组管理和权限管理
    mysql 外键的基本使用
    Linux指令(压缩和解压类)
    Linux指令(搜索查找类)
  • 原文地址:https://www.cnblogs.com/6b7b5fc3/p/14010409.html
Copyright © 2020-2023  润新知