无名阁

美好的生活需要用心记录

使用ufsd驱动代替默认的NTFS-3g

2019-1-15 笑看风云 linux知识

最近需要通过移动硬盘传输大文件,为了兼容性硬盘用的是NTFS文件系统,因为以前没怎么传过大文件,这几天才发现NTFS-3g驱动来挂载NTFS文件系统的时候只要传输的文件过大就卡会导致系统的卡死,然后过一会系统恢复正常,但是文件传输已经失败,于是想把默认的NTFS-3g换掉,于是在网上找了一下资料,准备更换成paragon家的ufsd驱动。
1:下载源码
因为我用的系统的manjaro,内核已经升级成了4.19的版本,paragon加最新的驱动只支持到了4.12的版本,所以我们不能直接下载他们家的软件,而是要下载这个大号补丁的版本:https://github.com/antonio-petricca/paragon-ufsd-ntfs-driver-porting
下载好后进入对应目录。
2:编译软件:
./apply-patches
cd sources
./configure
make driver
sudo make driver_install
在这编译的时候如果缺少啥依赖就安装对应的依赖库,执行完成之后ufsd驱动就已经安装好了,可以正常使用了。
3:使用
想要挂载NTFS的时候用mount命令进行挂载:
sudo mount -t ufsd /dev/sdd1 ./atmp/ntfs -o uid=1000,gid=1000

现在就成功得以ufsd驱动挂载好了NTFS分区。
经过测试文件的传输速度与稳定性和之前的NTFS-3g相比有了很大的提升,不过这个还是有一点问题就是默认情况下点击NTFS分区还是会自动得以NTFS-3g挂载,在网上找了点资料后找到了解决方法,创建mount.ntfs文件:
sudo touch /usr/local/bin/mount.ntfs

在里面写入以下内容:
#!/bin/bash
mount -t ufsd "$@",dmask=0002,fmask=113

然后赋予可执行权限:
sudo chmod +x /usr/local/bin/mount.ntfs

最后创建软连接:
sudo mv /bin/mount.ntfs /bin/mount.ntfs.bak
sudo ln -s /usr/local/bin/mount.ntfs /bin/mount.ntfs

现在在点击NTFS分区就会自动以ufsd驱动挂载了。
然后在开机自动加载ufsd模块,在/etc/modules-load.d/文件夹下面创建ufsd.conf文件,里面写入以下内容
ufsd
然后保存。

2019-4-5日更新:ufsd的官网已经更新了最新版的驱动,直接到https://www.paragon-software.com/home/ntfs-linux-professional/# 下载最新版的ufsd,解压后用root权限执行里面的安装脚本了就可以安装了.
不过我发现manjaro的udisk2升级到最新版之后用啥年的自动挂载脚本无法用ufsd模块挂载NTFS,于是发现把/usr/lib/udisks2/udisksd文件替换成老版本的,然后重启udisk2服务就行了,下面附上老版本的文件.
udisksd.tgz
2019-9-17日更新:附上删库前最后的补丁,用以支持5.0内核.
ufsd.7z

标签: 驱动 ntfs

et_highlighter51

评论:

Jason
2019-09-12 17:32
博主能否分享下UFS的代码? 您给的那个地址已经不存在了. 谢谢
笑看风云
2019-09-17 01:13
@Jason:如果里的内核版本低于≤4.20的版本可以直接去官网下载最新的ufsd,如果用的是5.0的内核的可以下载我在补丁作者删库前的版本.

发表评论: