• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Disk Arbitration Doesn't Search /Library/Filesystems
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Disk Arbitration Doesn't Search /Library/Filesystems


  • Subject: Disk Arbitration Doesn't Search /Library/Filesystems
  • From: Matt Bauer <email@hidden>
  • Date: Mon, 28 Oct 2013 08:51:42 -0500

This is filed under the bug rdar://15331230 but copied here as others may find it helpful.

The move to 10.9 encourages all KEXT and filesystems to be placed in /Library instead of /System/Library. Unfortunately diskarbitrationd doesn't look in /Library/Filesystems when scanning for filesystems. This can be seen in the source here: where the FS_DIR_LOCATION is set.

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/sys/loadable_fs.h:59

This variable is the one used by autodiskmount.c/DiskArbitration to search for filesystems. As a result, all filesystems placed in /Library/Filesystems are overlooked. The can be confirmed by looking at the /var/log/diskarbitrationd.log when diskarbitrationd is run in debug (-d) mode.

I’m running OS X 10.9 GM Build (13A598) and below is output showing the observed behavior.

$ pkill diskarbitrationd

$ sudo mv /System/Library/Filesystems/msdos.fs /Library/Filesystems

$  sudo /usr/libexec/diskarbitrationd -d &

#
# No msdos.fs found
#

$ cat /var/log/diskarbitrationd.log

08:40:38 server has been started.
08:40:38   console user = bauer [501].
08:40:38
08:40:38 filesystems have been refreshed.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/acfs.fs/.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/afpfs.fs/.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/cd9660.fs/.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/cddafs.fs/.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/exfat.fs/.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/ftp.fs/.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/hfs.fs/.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/JulianeFS.fs/.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/nfs.fs/.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/ntfs.fs/.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/smbfs.fs/.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/udf.fs/.
08:40:38   created filesystem, id = file:///System/Library/Filesystems/webdav.fs/.
08:40:38
08:40:38 iokit [0] -> diskarbitrationd [39957]
08:40:38   created disk, id = /dev/disk3.
08:40:38   created disk, id = /dev/disk1.
08:40:38   created disk, id = /dev/disk0s3.
08:40:38   created disk, id = /dev/disk0s2.
08:40:38   created disk, id = /dev/disk0s1.
08:40:38   created disk, id = /dev/disk0.
08:40:38
08:40:38 diskarbitrationd [39957] -> diskarbitrationd [39957]
08:40:38   probed disk, id = /dev/disk0s3, with hfs, ongoing.
08:40:38   probed disk, id = /dev/disk1, with hfs, ongoing.
08:40:38   probed disk, id = /dev/disk3, with udf, ongoing.
08:40:38   probed disk, id = /dev/disk3, with udf, failure.
08:40:38   probed disk, id = /dev/disk3, with hfs, ongoing.
08:40:38   probed disk, id = /dev/disk3, with hfs, failure.
08:40:38   probed disk, id = /dev/disk3, with cd9660, ongoing.
08:40:38   probed disk, id = /dev/disk3, with cd9660, failure.
08:40:38   probed disk, id = /dev/disk3, with exfat, ongoing.
08:40:38   probed disk, id = /dev/disk0s3, with hfs, success.
08:40:38   probed disk, id = /dev/disk1, with hfs, success.
08:40:38   probed disk, id = /dev/disk3, with exfat, failure.
08:40:38   probed disk, id = /dev/disk3, with ntfs, ongoing.
08:40:38   probed disk, id = /dev/disk3, with ntfs, failure.
08:40:38   probed disk, id = /dev/disk3, with JulianeFS, ongoing.
08:40:38   probed disk, id = /dev/disk3, with JulianeFS, success.

$ pkill diskarbitrationd

$ sudo mv /Library/Filesystems/msdos.fs /System/Library/Filesystems

$  sudo /usr/libexec/diskarbitrationd -d &

#
# Now msdos.fs is found
#

$ cat /var/log/diskarbitrationd.log

08:41:53 server has been started.
08:41:53   console user = bauer [501].
08:41:53
08:41:53 filesystems have been refreshed.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/acfs.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/afpfs.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/cd9660.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/cddafs.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/exfat.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/ftp.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/hfs.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/JulianeFS.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/msdos.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/nfs.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/ntfs.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/smbfs.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/udf.fs/.
08:41:53   created filesystem, id = file:///System/Library/Filesystems/webdav.fs/.
08:41:53
08:41:53 iokit [0] -> diskarbitrationd [39998]
08:41:53   created disk, id = /dev/disk3.
08:41:53   created disk, id = /dev/disk1.
08:41:53   created disk, id = /dev/disk0s3.
08:41:53   created disk, id = /dev/disk0s2.
08:41:53   created disk, id = /dev/disk0s1.
08:41:53   created disk, id = /dev/disk0.
08:41:53
08:41:53 diskarbitrationd [39998] -> diskarbitrationd [39998]
08:41:53   probed disk, id = /dev/disk0s1, with msdos, ongoing.
08:41:53   probed disk, id = /dev/disk1, with hfs, ongoing.
08:41:53   probed disk, id = /dev/disk3, with udf, ongoing.
08:41:53   probed disk, id = /dev/disk3, with udf, failure.
08:41:53   probed disk, id = /dev/disk3, with hfs, ongoing.
08:41:53   probed disk, id = /dev/disk3, with hfs, failure.
08:41:53   probed disk, id = /dev/disk3, with cd9660, ongoing.
08:41:53   probed disk, id = /dev/disk0s1, with msdos, success.
08:41:53   probed disk, id = /dev/disk0s3, with hfs, ongoing.
08:41:53   probed disk, id = /dev/disk3, with cd9660, failure.
08:41:53   probed disk, id = /dev/disk3, with exfat, ongoing.
08:41:53   probed disk, id = /dev/disk1, with hfs, success.
08:41:53   probed disk, id = /dev/disk3, with exfat, failure.
08:41:53   probed disk, id = /dev/disk3, with msdos, ongoing.
08:41:53   probed disk, id = /dev/disk3, with msdos, failure.
08:41:53   probed disk, id = /dev/disk3, with ntfs, ongoing.
08:41:53   probed disk, id = /dev/disk3, with ntfs, failure.
08:41:53   probed disk, id = /dev/disk3, with JulianeFS, ongoing.
08:41:53   probed disk, id = /dev/disk0s3, with hfs, success.
08:41:53   probed disk, id = /dev/disk3, with JulianeFS, success.


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Filesystem-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Prev by Date: Re: CatalogSearch suddenly case-sensitive in Mavericks?
  • Next by Date: more hybrid MBR bugs
  • Previous by thread: Re: CatalogSearch suddenly case-sensitive in Mavericks?
  • Next by thread: more hybrid MBR bugs
  • Index(es):
    • Date
    • Thread