Mount and Access NTFS and Ext2FS from Solaris x86
By moinakg on Aug 23, 2006
As I had mentioned in my previous post, some filesystem stuff have been brewing in a wooden kitchen in my bedroom as part of the ongoing BeleniX work. The stuff now looks good enough to be served. So a new SVR4 package is now available that provides the following features: (Without any kernel change)
\* Utility to dump detailed partition table info on x86 platforms (prtpart). \* Ability to read-only mount EXT2FS and NTFS partitions (both primary and extended).
Download it from www.belenix.org
The read-only mount capability is an enhancement of the initial NTFS mount work done by Martin Rosenau.
Essentially the approach is to run an instrumented userland NFS server that reads raw blocks from a device and interprets them as per the filesystem format.
The NTFS support was already present in Martin's work and I modified it to also suport Ext2FS using libext2fs from e2fsprogs. In addition I have done a bunch of enhancements to integrate better with the OpenSolaris way of doing things. So for eg. you can use "mount -F ext2fs ..." instead of having to run a custom binary.
Because of the NFS server way of doing things "df -h" or /etc/mnttab shows all such mounts as NFS client mounted from 127.0.0.1:/. Thus I had to use temp files and a write small utility called xlsmounts to display the real detailed mount information. In addition NFS is stateless, so doing a umount does not affect the NFS server in the background. It does not maintain client state. So I after debating over overloading the NFS umount, I decided to play safe and write another utility called xumount that unmounts and terminates the NFS server. The way portable code has been written in the e2fsprogs and ntfsprogs projects is quite neat.