Red Hat Bugzilla – Bug 430084
RFE: Add abillity to define ntfs mount points in anaconda
Last modified: 2009-02-16 16:09:41 EST
Description of problem:
If you look at this bug:
you will see that fedora now supports ntfs via 3g-ntfs you need to add your
paritions manually after the install to me mounted.
Anaconda needs to be able to handle ntfs partition so users during the install
can define where they would like their ntfs partitions to be mounted.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
I tested latest rawhide (Fedora 9 Alpha) and it also is missing this feature.
Adding FutureFeature keyword to RFE's.
I tested this feature in Fedora 9 final release and it is not there. Will this
be in Fedora 10?
Wouldn't something like this be sufficient to achieve this?
--- anaconda-184.108.40.206/fsset.py.BAD 2008-08-09 20:05:21.000000000 -0400
+++ anaconda-220.127.116.11/fsset.py 2008-08-09 20:05:57.000000000 -0400
@@ -1022,6 +1022,8 @@ class NTFSFileSystem(FileSystemType):
log.warning("Unable to discover minimum size of filesystem on %s" %(device,))
+ def getMountName(self, quoted = 0):
+ return "ntfs"
That won't work, because we still check the return value of getMountName() to see if it's supported by the kernel. "Supported by the kernel" is defined as being listed in /proc/filesystems. The ntfs-3g stuff exists completely outside of the kernel so doing this right requires:
(1) Adding ntfs-3g to upd-instroot and making sure its programs are on the install.img.
(2) Modifying our definition of supported filesystems to also include anything that's supported by programs external to the kernel.
(3) Then going through and making sure the UI supports the new type everywhere, etc.
Created attachment 328504 [details]
Patch to enable ntfs-3g mounts
While you said that anaconda asks the kernel what filesystems are supported, I could not find any code that did that. Instead, what I found was isLinuxNativeFS(), which simply checked to see if self.linuxnativefs was set. I altered that function to first check if self.fusefs was set, and return that instead if it was. This is untested by me, but I think it should do the trick.
Created attachment 328509 [details]
Immediately after writing the description for the last patch, I realized where it was looking through /proc/filesystems. It only seems to do this for a fstype if isMountable is not overridden, so I overrode it in the NTFSFilesystem case. This patch should be applied after the previously attached patch.
This won't quite do the trick, but it is close. The things I see off-hand that need fixing are
a) We don't want ntfs to be linuxnativefs -- that would allow us to use ntfs for things like /usr. Instead, we care more about supportable and mountable
b) We probably should have the isMountable() check also for the fact that fuse really is loaded.
Those said, I'll fix those up after lunch.
Okay, after giving up on getting something useful for testing and just going instead on the "fix it up and hope I'm right", I've sent something to anaconda-devel-list for review. So should be in soon, hopefully in time for the alpha