10.3: Install an older extension to fix broken USB drives

Nov 16, '03 11:12:00AM

Contributed by: iDG

Since I installed Panther, I was unable to read anything except very short files from my USB disk: the "Copy" progress indicator did not appear, and every attempt to access the USB drive would freeze the Finder (and everything would "unfreeze" as soon as I removed the USB disk). Initially I believed the upgrade had done something that rendered my (non Mac certified) disk incompatible, but a simple


dd if=/dev/disk1 of=/tmp/x bs=1M
verified that the drive worked perfectly. Even the ancient mtools, once compiled, were able to read from the disk without any difficulty. So what next?

I decided (as I do like to live dangerously) to transplant the Jaguar msdosfs into the new system to see if it would work. Well, it did! My USB disk works fine again. One could use Pacifist to install the old kext, but we like to live dangerously, so we'll do it by hand. Insert the "Mac OS X v 10.2" Install Disk 1, and let the Finder mount it. Open a Terminal and type:

 % sudo sh
 % cd  /tmp
 % gzcat /Volumes/Mac\ OS\ X\ Install\ Disc\ 1/System/Installation/
  Packages/Essentials.pkg/Contents/Archive.pax.gz | pax -r '*msdosfs*'
 % mv /System/Library/Extensions/msdosfs.kext ~/
 % chown -R root:wheel /tmp/System
 % mv /tmp/System/Library/Extensions/msdosfs.kext /System/Library/Extensions
 % rm -rf /System/Library/Extensions.kextcache /System/Library/Extensions.mkext
 % exit
NOTE: The gzcat line has been split into two for easier reading. Remove the line break such that Packages comes immediately after the Installation/ bit on the previous line.

Now, restart the system -- yes, a restart is needed, as a kextunload - kextload of the extension will cause some weird behavior you don't really want to see! If something goes wrong, in your home directory you can find the original msdosfs.kext.

[robg adds: I'm quite hesitant to replace a current driver with that of a previous generation, and would hope that (if this problem is pervasive) Apple would address it in a system update (though 10.3.1 doesn't seem to include an updated msdosfs.kext file). However, if you have a drive that you must access, this seems to be a potential solution.]

Comments (5)


Mac OS X Hints
http://hints.macworld.com/article.php?story=20031109092020442