无名阁
使用ufsd驱动代替默认的NTFS-3g
2019-1-15 笑看风云
最近需要通过移动硬盘传输大文件,为了兼容性硬盘用的是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


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

邮件地址 (选填)

个人主页 (选填)

内容