NTFS-3G on OpenIndiana

Updated: Sep 16th, 2020





Installation steps

Several problems have been reported when running ntfs-3g on OpenIndiana. Digging into them showed they stemmed from defects in the FUSE kernel module which was originally developed by Sun and appears to be orphaned now.Below is a FUSE kernel module with all the identified defects fixed. Moreover ntfs-3g has been upgraded to support requirements specific to OpenIndiana. They have been tested with oi_151a* and Hipster desktop versions , both in 32-bit and 64-bit modes, and the 2340 tests from Posix file system test suite pass with no error.Binary packages have been made available by the Hipster package publisher and SFE OpenCSW publisher. They are also available in the Hipster install iso.Note that the extended attributes and the Posix ACLs have not been implemented in this FUSE kernel module.Attention is drawn on the fact that the modifications to the FUSE kernel module have not been reviewed by a kernel expert, and they may have hidden defects. You should be cautious and you should backup your important files. Do not expect to get support if the modified packages lead to loss of data.

Apart from downloading the packages, all the steps below have to be executed in privileged mode.

Download one of the ntfs-3g_ntfsprogs package files, unpack and install it. Both packages contain the integrated FUSE library, the ntfs-3g driver and several ntfsprogs utilities. The one in 32-bit mode can be used on 32-bit or 64-bit computers, the one in 64-bit mode can be used on 64-bit computers only. Do not install both packages.

# If ntfs-3g was already installed :

pkgrm ntfs-3g

# On any computer :

unzip -x ntfs-3g_ntfsprogs-2017.3.23AR.5.pkg.zip

pkgadd -d ntfs-3g_ntfsprogs-2017.3.23AR.5.pkg all

# Alternately, on 64-bit computers only :

unzip -x ntfs-3g_ntfsprogs-2017.3.23AR.5.pkg64.zip

pkgadd -d ntfs-3g_ntfsprogs-2017.3.23AR.5.pkg64 all



Download the FUSE kernel module package file , unpack and install it. This package contains the kernel modules for both the 64-bit and 32-bit kernels, but only the one matching your OpenIndiana kernel will be used. Unless stated otherwise, there is no version dependencies between fusefs and ntfs-3g, any fusefs version can be used for any ntfs-3g version, though the more recent ones are supposed to contain fewer bugs.

# If a fuse kernel module was already installed :

pkgrm fusefs

# Anyway :

unzip -x fuse-kernel-1.3AR.5.pkg.zip

pkgadd -d fuse-kernel-1.3AR.5.pkg all

# The commands below only for the first installation

add_drv -m 'fuse 0666 root sys' fuse

ln -s /devices/pseudo/fuse@0:fuse /dev/fuse

# Rebooting may be needed to use the new module

, unpack and install it. This package contains the kernel modules for both the 64-bit and 32-bit kernels, but only the one matching your OpenIndiana kernel will be used. Unless stated otherwise, there is no version dependencies between fusefs and ntfs-3g, any fusefs version can be used for any ntfs-3g version, though the more recent ones are supposed to contain fewer bugs. Find the paths to your NTFS partitions :

# check which /dev/dsk/* have an NTFS signature (ignore garbage)

head -v -c 11 `ls /dev/dsk | sed -e 's!.*!/dev/dsk/&!'`

This is all you need, you can now mount an ntfs file system. You can use either the ntfs-3g or the lowntfs-3g driver, both of them provide the full range of features : # device path and mount point to be adjusted to configuration

mount -F lowntfs /dev/dsk/c2t1d0p1 /mnt/windows

Of course you can recompile the driver and utilities from the provided source tarball. Doing so, you may use either the FUSE library from the tarball, or an external one, such as the one available from the SFE repository.



ntfs-3g is distributed according to GPL v2 or higher,

and the fuse library is distributed according to LGPL v2 only.

2017.3.23AR.5

release

Source tarball

ntfs-3g_ntfsprogs-2017.3.23AR.5.tgz OpenIndiana package (32-bit executables) (1)

ntfs-3g_ntfsprogs-2017.3.23AR.5.pkg.zip

OpenIndiana package (64-bit executables) (2) ntfs-3g_ntfsprogs-2017.3.23AR.5.pkg64.zip 2017.3.23AR.4

release Source tarball ntfs-3g_ntfsprogs-2017.3.23AR.4.tgz OpenIndiana package (32-bit executables) (1)

ntfs-3g_ntfsprogs-2017.3.23AR.4.pkg.zip OpenIndiana package (64-bit executables) (2) ntfs-3g_ntfsprogs-2017.3.23AR.4.pkg64.zip Global

Changelog

changelog

System Compression

0.2 (3) Plugin source and executables for reading system compressed files

systcomp.zip

Deduplicated files

1.2.5 Plugin source and executables for reading deduplicated files

dedup.zip

OneDrive

1.1.0 Plugin source and executables for reading OneDrive files

onedrive.zip



(1) This contains executables and library in 32-bit mode, usable with 64-bit and 32-bit kernels.(2) This contains executables and library in 64-bit mode, usable with 64-bit kernels only.(3) Contributed by Eric Biggers, seefor updated versions.

The plugins for reading system compressed files and deduplicated files have to be installed in a specific directory. See the included README file for details.

Below are the fuse kernel module source files and the pluggable kernel modules. Users wanting to use OpenIndiana standard tools have to get the development files from github. Compiling a kernel module also requires the kernel headers which you have to collect from OpenIndiana.



Older versions of the compiled kernel module and the source files are also available from the SFE repository.



The fuse kernel module for OpenIndiana is distributed according to CDDL and/or BSD-type license.



1.4AR.1

release (5)

Source tarball

fuse-kernel-1.4AR.1.tgz Kernel module (4)

fuse-kernel-1.4AR.1.pkg.zip

1.3AR.5

release (5)

Source tarball

fuse-kernel-1.3AR.5.tgz Kernel module (4)

fuse-kernel-1.3AR.5.pkg.zip

1.3AR.3

release

Source tarball fuse-kernel-1.3AR.3.tgz Kernel module (4) fuse-kernel-1.3AR.3.pkg.zip Global

Changelog

fuse-kernel-changelog



Installation from a package publisher

(4) this contains two kernel modules for oi_151a* or Hipster with 32-bit (i386) and 64-bit (x86_64) kernels.(5) Version 1.4AR.1 to be used with kernels from July 2020, version 1.3AR.5 is identical, to be used with kernels before July 2020.

The required binary packages have been made available in the Hipster and SFE package publishers. In both cases three packages are needed, as the fuse library has been taken apart.

# Using publisher http://pkg.openindiana.org/hipster

pkg install pkg:/driver/fuse pkg:/library/libfuse \

pkg:/system/file-system/ntfsprogs

# Using publisher http://sfe.opencsw.org/localhostoih

pkg install pkg:/sfe/filesystem/fusefs pkg:/sfe/file-system/libfuse \

pkg:/sfe/system/file-system/ntfs-3g

They can be used with 32-bit and 64-bit kernels, though only the FUSE packages (kernel module and library) install true 64-bit variants. The plugins for reading system compressed, deduplicated or OneDrive files have not been packaged, but the ones from above are compatible and can be used with the packages from publishers.