Openwrt中挂载NTFS格式USB硬盘无法正常显示中文目录及文件的解决办法

在试图挂载硬盘使用alist作视频站的时候,我发现Openwrt访问自动挂载上的USB硬盘目录时,只能看得到英文的目录和文件。这就是固件自动挂载不太灵光的地方了
自动挂载是Openwrt导航栏 系统 挂载点[自动挂载磁盘]选项与[挂载已连接的设备]按钮。平常不想动手敲命令的时候固然很方便,但出现这种情况,就是要自己动手的时候了
具体步骤如下:

卸载kmod-fs-ntfs

导航栏 系统 软件包,过滤器搜索ntfs,删除搜索出来的kmod-fs-ntfs

或者在终端中分次输入

opkg unistall kmod-fs-ntfs
opkg unistall kmod-fs-ntfs3

安装ntfs-3g

卸载完kmod-fs-ntfs之后顺手安装一下接下来要用到的工具
请在筛选器中输入ntfs-3g,找到这个软件包并安装
或者终端中输入

opkg update
#如果已经更新过软件列表就不用上面这一步
opkg install ntfs-3g

关闭自动挂载

不关闭自动挂载的话,卸载自动挂载的文件系统的那一瞬间,自动挂载就会帮你重新挂载上你卸载的东西。

请在 导航栏 系统 挂载点 这一栏底下找到[自动挂载磁盘]选项,取消勾选,保存并应用。

卸载已挂载硬盘

请在 导航栏``系统 挂载点_已挂载的文件系统 这一栏底下找到被自动挂载的硬盘,看可用空间比较容易分辨。点击旁边的[卸载分区]即可
也可以使用unmount命令,此处不赘述。

使用ntfts-3g来挂载硬盘

首先创建挂载点的路径,此处设置为/mnt/usb
在终端中输入:

mkdir -p /mnt/usb

目录创建完成后,查一下硬盘的参数。在终端中输入:

block info

会得到:
/dev/sda1: UUID="你硬盘的uuid" LABEL="你硬盘的标签" TYPE="ntfs"
注意这个/dev/sda1,不同硬盘得到的这一串大抵是不同的,接下来会用到

ntfs-3g /dev/sda1 /mnt/usb -o locale=zh_CN.UTF-8

至此就结束了,在挂载点中可以正常查到自己的硬盘,在文件系统中也能正常地看到中文目录与文件夹了

可能出现的问题

  1. Failed to mount '/dev/sda1': I/O error
    把硬盘接回电脑,用管理员权限打开cmd,输入以下命令来检查和修复 NTFS 文件系统(此处硬盘在 Windows 上的盘符为 E:,请根据实际情况替换)
chkdsk E: /f
  1. OP重启后又不好使了
    设置自动挂载(持久化挂载):
    修改/etc/fstab,添加以下内容:
UUID=你硬盘的uuid /mnt/usb ntfs-3g defaults,locale=zh_CN.UTF-8 0 0

原理

openwrt固件安装的samba4版本内置的ntfs固件太高,无法对NTFS文件系统兼容,需使用低版本兼容性更好的samba版本ntfs-3g固件

参考文献

Openwrt挂载NTFS硬盘提示“只读”、不显示等问题解决办法

新版OpenWRT在挂载NTFS磁盘时只读的问题

一点小小的疑问

  • 系统-挂载点-挂载点-[添加]-高级设置-[挂载选项]这里似乎可以直接加参数
  • 不用卸载kmod-fs-ntfs好像也可以
posted @ 2024-09-03 17:38  MugenG7  阅读(476)  评论(0编辑  收藏  举报