在试图挂载硬盘使用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
至此就结束了,在挂载点中可以正常查到自己的硬盘,在文件系统中也能正常地看到中文目录与文件夹了
可能出现的问题
- Failed to mount '/dev/sda1': I/O error
把硬盘接回电脑,用管理员权限打开cmd,输入以下命令来检查和修复 NTFS 文件系统(此处硬盘在 Windows 上的盘符为 E:,请根据实际情况替换)
chkdsk E: /f
- 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硬盘提示“只读”、不显示等问题解决办法
一点小小的疑问
- 系统-挂载点-挂载点-[添加]-高级设置-[挂载选项]这里似乎可以直接加参数
- 不用卸载kmod-fs-ntfs好像也可以