Test new NTFS3 driver for Linux
Background
New NTFS Driver Misses Out On Linux 5.12 But Revved A 22nd Time
NTFS read-write driver GPL implementation by Paragon Software
Get kernel source rpm
Enable the rawhide repo.
~]# dnf se rawhide
...
======================= Name & Summary Matched: rawhide ========================
fedora-repos-rawhide.noarch : Rawhide repo definitions
fedora-repos-rawhide-modular.noarch : Rawhide modular repo definitions
rpmfusion-free-release-rawhide.noarch : RPM Fusion Rawhide free repo definitions
~]# dnf in fedora-repos-rawhide fedora-repos-rawhide-modular
~]# dnf repolist --all
repo id repo name status
fedora Fedora 33 - x86_64 enabled
...
rawhide Fedora - Rawhide - Developmen disabled
rawhide-debuginfo Fedora - Rawhide - Debug disabled
rawhide-modular Fedora - Modular Rawhide - De disabled
rawhide-modular-debuginfo Fedora - Modular Rawhide - De disabled
rawhide-modular-source Fedora - Modular Rawhide - So disabled
rawhide-source Fedora - Rawhide - Source disabled
...
~]# dnf list --disablerepo=\* --enablerepo=rawhide-source kernel\*
...
Available Packages
kernel.src 5.12.0-0.rc0.20210225gitc03c21ba6f4e.160.fc35 rawhide-source
kernel-headers.src 5.11.0-1.fc35 rawhide-source
kernel-srpm-macros.src 1.0-4.fc34 rawhide-source
kernel-tools.src 5.11.0-1.fc35 rawhide-source
kernelshark.src 1:1.2-3.fc34 rawhide-source
Download SRPM and install it.
~]# dnf download --source --disablerepo=\* --enablerepo=rawhide-source kernel
~]# rpm -ivh kernel-5.12.0-0.rc0.20210225gitc03c21ba6f4e.160.fc35.src.rpm
warning: kernel-5.12.0-0.rc0.20210225gitc03c21ba6f4e.160.fc35.src.rpm: Header V4 RSA/SHA256 Signature, key ID 9867c58f: NOKEY
Updating / installing...
1:kernel-5.12.0-0.rc0.20210225gitc0warning: user mockbuild does not exist - using root
...
Modify kernel.spec
.
~]# diff ~/rpmbuild/SPECS/kernel.spec kernel.spec
99c99
<
---
> %define buildid .ntfs3
762a763,772
> Patch999901: 0001-ntfs3-01.patch
> Patch999902: 0001-ntfs3-02.patch
> Patch999903: 0001-ntfs3-03.patch
> Patch999904: 0001-ntfs3-04.patch
> Patch999905: 0001-ntfs3-05.patch
> Patch999906: 0001-ntfs3-06.patch
> Patch999907: 0001-ntfs3-07.patch
> Patch999908: 0001-ntfs3-08.patch
> Patch999909: 0001-ntfs3-09.patch
> Patch999910: 0001-ntfs3-10.patch
1264a1275,1284
> ApplyOptionalPatch 0001-ntfs3-01.patch
> ApplyOptionalPatch 0001-ntfs3-02.patch
> ApplyOptionalPatch 0001-ntfs3-03.patch
> ApplyOptionalPatch 0001-ntfs3-04.patch
> ApplyOptionalPatch 0001-ntfs3-05.patch
> ApplyOptionalPatch 0001-ntfs3-06.patch
> ApplyOptionalPatch 0001-ntfs3-07.patch
> ApplyOptionalPatch 0001-ntfs3-08.patch
> ApplyOptionalPatch 0001-ntfs3-09.patch
> ApplyOptionalPatch 0001-ntfs3-10.patch
1304c1324
< cp $RPM_SOURCE_DIR/kernel-*.config .
---
> cp $RPM_SOURCE_DIR/kernel-x86_64*.config .
Modify kernel-local
.
~]# cat kernel-local
# This file is intentionally left empty in the stock kernel. Its a nicety
# added for those wanting to do custom rebuilds with altered config opts.
CONFIG_NTFS3_FS=m
# CONFIG_NTFS3_64BIT_CLUSTER is not set
# CONFIG_NTFS3_LZX_XPRESS is not set
# CONFIG_NTFS3_FS_POSIX_ACL is not set
Generate new SRPM.
~]# cp *.patch kernel-local ~/rpmbuild/SOURCES/
~]# cp kernel.spec ~/rpmbuild/SPECS/
~]# rpmbuild -bs ~/rpmbuild/SPECS/kernel.spec
Build with copr and install it.
~]# copr build kernel-macbook ~/rpmbuild/SRPMS/kernel-5.12.0-0.rc0.20210225gitc03c21ba6f4e.160.ntfs3.fc33.src.rpm
~]# dnf copr enable pany/kernel-macbook
~]# dnf up kernel
Or build with better perfomance server.
~]# mock -r fedora-33-x86_64 --rebuild kernel-5.12.0-0.rc0.20210225gitc03c21ba6f4e.160.ntfs3.fc33.src.rpm
Or build with current fedora.
~]# dnf in bison dwarves elfutils-devel gcc-c++ gcc-plugin-devel net-tools nss-tools perl-devel perl-generators pesign -y
~]# rpmbuild -bb ~/rpmbuild/SPECS/kernel.spec
Without copr, install the RPM.
~]# dnf in ./kernel-{,core-,modules-}5.12.0-0.rc0.20210225gitc03c21ba6f4e.160.ntfs3.fc33.x86_64.rpm
Try NTFS3 driver
Reboot to new kernel.
~]# modprobe ntfs3
~]# lsmod | grep ntfs3
ntfs3 245760 1
~]# lsblk /dev/sdc
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc 8:32 0 931.5G 0 disk
├─sdc1 8:33 0 16M 0 part
└─sdc2 8:34 0 931.5G 0 part
~]# mount -t ntfs3 /dev/sdc2 /media/
~]# mount | grep sdc2
/dev/sdc2 on /media type ntfs3 (rw,relatime,nls=utf8)
~]# cp kernel-{,core-,modules-}5.12.* /media/
~]# ls /media/
'$RECYCLE.BIN'/
kernel-5.12.0-0.rc0.20210225gitc03c21ba6f4e.160.fc35.src.rpm
kernel-5.12.0-0.rc0.20210225gitc03c21ba6f4e.160.ntfs3.fc33.x86_64.rpm
kernel-core-5.12.0-0.rc0.20210225gitc03c21ba6f4e.160.ntfs3.fc33.x86_64.rpm
kernel-modules-5.12.0-0.rc0.20210225gitc03c21ba6f4e.160.ntfs3.fc33.x86_64.rpm
'System Volume Information'/
So far so good.