SourceForge has been redesigned. Learn more.
Close

Ext2fs support on Mac OS X 10.1 ?

Help
2004-03-28
2004-03-30
  • Aluminum Sponge

    Aluminum Sponge - 2004-03-28

    Hi,

    I would like to know if their is _anyway_ possible to get ext2fs disks to mount under Mac OS X 10.1? I have OS X & Linux installed on a Mac and I would like to be able to access the ext2 partitions from OS X. Even though the latest release of Ext2fs for Mac OS X claims to support only 10.2+, I went ahead and tried it and got several errors. In particular, this is what I get when trying to manually mount the ext2 partition (disk0s12):

    #> mount_ext2 /dev/disk0s12 /mnt12
    Installed version 6.0 of dependency com.apple.kernel.bsd is not compatible with extension net.sourceforge.ext2fs.fs.ext2.
    Error loading module: one or more dependencies lack compatible versions.
    mount_ext2: /dev/disk0s12 on /mnt12: Operation not supported by device

    The device should be good as I continuously ran fsck several times from Linux on the particular partition without it reporting a single error or problem.

    Is their anyway to overcome this? Did any older release of Ext2fs for OS X ever support 10.1? Would downloading the code and building it on a 10.1 machine help?

    Im an experienced *NIX/OS X user, is their *anything* at all I can do to achieve even basic command-line functionality (dont need  PrefPane, startup auto-mount, etc) on 10.1?

    Please advise,
    Thanks

     
    • Brian Bergstrand

      From the beginning, the driver was never intended to support 10.1. But, there is nothing stopping you from taking the code and making it work on 10.1. It will take some doing though; the project file is not compatible with the 10.1 dev tools (1.2 is xcode only, and earlier versions require the jag version of PB), but it's not an impossible task.

      Before that though, try changing the kext dependency requirement and see if it works, it may.

      sudo -s
      vi /System/Library/Extensions/ext2fs.kext/Contents/Info.plist
      /com.apple.kernel.bsd
      j
      :s/6.0/1.1/
      :wq
      touch /System/Library/Extensions
      reboot

      Everything else from 1.1.x or earlier may work too, I don't really know though.

      Personally, I'd say the easiest thing would be to upgrade to Jaguar and not worry about it anymore. Jag is so much better than 10.1, and it's pretty cheap. Amazon has Jag for $35. Given the possible hassle and the ensuing time sink trying to get things to work on 10.1, Jag will probably cost you a lot less money.

      HTH.

       
    • Aluminum Sponge

      Aluminum Sponge - 2004-03-29

      Thanks so much for you advice bbergstrand. I will look into 10.2 soon. In the short-term though, I tried the fix you suggested above.

      The name of my ext2 partition (disk0s12) is Adelante and my hostname is Mugzi, as you will see. During startup, this is the error message I get:
      Adelantekmodload: kld(): kmodload: Undefined symbols:kmodload:
      kmodload: _microuptime
      kmodload: _nanotime
      kmodload: kld_load() failed.Error loading module: kmod load error.
      kmodload: kld(): kmodload: Undefined symbols:kmodload:
      kmodload: _microuptime
      kmodload: _nanotime
      kmodload: kld_load() failed.Error loading module: kmod load error.
      ext2: /dev/disk0s12 on /Volumes/Adelante: Operation not supported by device
      /System/Library/Filesystems/ext2.fs/Contents/Resources/../../ext2fs.util: /sbin/mount command failed, exit status 71: Too many levels of remote in path
      Mar 28 22:43:54 Mugzi /sbin/autodiskmount[119]: DiskVolume_mount_foreign: There is a filesystem error with the device disk0s12 which was attempting to mount at /Volumes/Adelante

      Mar 28 22:43:54 Mugzi /sbin/autodiskmount[119]: disk0s12   ???    ext2     yes   yes   Adelante         [not mounted]   

      When I try to mount it manually using mount_ext2, it now displays the following (similar to above):

      # mount_ext2 /dev/disk0s12 /Volumes/Adelante/
      kmodload: kld(): kmodload: Undefined symbols:kmodload:
      kmodload: _microuptime
      kmodload: _nanotime
      kmodload: kld_load() failed.Error loading module: kmod load error.
      mount_ext2: /dev/disk0s12 on /Volumes/Adelante: Operation not supported by device

      I hope this information can be useful to you. Also, the process of back-porting Ext2fs 1.1.1 to OS X 10.1, how difficult would that be? Would I have to be proficient in driver level/IOKit programming on OS X?

      Thanks

       
      • Brian Bergstrand

        Those errors mean that the load is failing because the kernel does not contain symbols that the KEXT requires. Specifically:
        kmodload: _microuptime
        kmodload: _nanotime

        These routines are used to get the system time. So to get this to work on 10.1, you'd have to find the correct replacement for both of these and then build a version of the KEXT for 10.1.

        I can't say how difficult back-porting would be. I don't have 10.1 installed anymore, so I can't tell you what the differences are. As for proficiency, you wouldn't have to be an expert, but I think some experience in a kernel environment would be required. Just getting the PB project setup is going to be a chore.

         
    • Aluminum Sponge

      Aluminum Sponge - 2004-03-30

      Ok, thanks for the info. I'll download the source to 1.1.1 and check it out to see if it's a job I or other people can handle. If anyone still has some working knowledge of 10.1, feel free to contact me to see what we can do.

      BTW, is pulling the src from CVS the only way to get it or are the ProjBuilder files for v. 1.1.1 posted somewhere in an archive?

      Thanks

       
      • Brian Bergstrand

        CVS is currently the only way to get the source. I don't distribute tarballs.

        Just the follow the instructions on the CVS page for anonymous login, only replace the checkout with the following:

        cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ext2fsx co -r EXT2FSX_R_1_1_1_0 .

        This will get you the 1.1 branch.

        As for the PB files, you are going to have create those by hand. As I said before the PB files in CVS will only work on Jag or later. PB on 10.1 will fail to open them. That's what I meant when I said that just setting up the project is going to be a hassle.

        Also with 1.1, you are going to have get the external dependencies yourself (1.2 includes these). Build.rtf explains what the requirements are.

        HTH.

         

Log in to post a comment.