Unix File System Issues on Mac OS X? 93
rlthomps-1 asks: "I've been thinking about reformatting my Mac's hard drive in UFS, since I've seen the option on the install screen. I was looking for advantages of the Unix file system since it sounds like it would have better performance over HFS+. After viewing this Apple kbase article I wasn't so sure. A test system at work won't install software correctly because the drive name is stuck as '/' among other problems. Why would Apple include the UFS option if it offers such reduced functionality, and is anyone out there using it for non-server applications? What for? Are there advantages to UFS on the desktop Mac OS?"
For developers (Score:1)
UFS is there for historical reasons (Score:4, Insightful)
Also understand that many carbon applications have trouble coping with non-HFS+ file-systems. Here in the lab, I mount my solaris home directory thru NFS, and some carbon apps cannot start from my home directory because of this. Some carbon applications even have trouble with files in this file-system (on bad days Acrobat Reader tells me the file does not exist).
As applications and system frameworks become more file-system agnostic. I suspect Apple will probably put less emphasis on HFS+ and put more effort in other file-systems.
Re:UFS is there for historical reasons (Score:1)
HFS+ versus UFS (Score:5, Informative)
When Darwin [opendarwin.org] was built, Apple used FreeBSD 3.2 has its core BSD os, since then many changes where applied in the UFS code in FreeBSD (softupdates [cnri.dit.ie] are the ones comes to mind). Since then Apple's version of UFS has not change too much.
HFS+ is Apple's MacOS native enhanced file system. So if you need to run Classic, if you need to run carbonised application that do have a resource fork then you need an HFS+ partition (see Mozilla's readme).
If you're more a unix guy like and want to compile OSS, host some CVS reposiroty then you 'll need UFS.
UFS is case sensitive. HFS+ is not (it might seems to be but is not). I'de say for all macos Apps use HFS+ an create a second UFS partition where you'd put all your unix apps and other unix related stuff (CVS etc
Other references can be found
Re:CVS Ref... (Score:3, Informative)
I then can ssh anywhere I want.
The problem with CVSd is the case-sensitive issue that can be found in found in HFS.
Re:CVS Ref... (Score:1)
I have no idea what the deal is...
Re:HFS+ versus UFS (Score:5, Informative)
Re:HFS+ versus UFS (Score:3, Informative)
Use HFS+.
Unless you have a concrete reason to use UFS... and no, wanting to have to get the case right, or wanting "better performance" is not a reason.
HFS+ is the native file system of Mac OS X... UFS is just a compatibility layer.
Just like Classic is a compatibility layer...
You don't want to use Classic do you?
Well, then you don't want to use UFS.
UFS does not get tested as heavily as HFS+ (hell why do you think AirPort doesn't work... because it makes case insensitive assumptions)
Commercial software is NOT tested on UFS.
UFS is ONLY there to allow the porting of large unix software which makes case sensitive assumption... such as having two files with the same name in the same directory, but different cases.
Running such software is the only valid reason to install UFS, and normally you'd just fix the problem anywho, doing this (the same files in the one directory) is bad practise anywho.
So, the moral of the story is, don't use UFS on Mac OS X. (unless you have a DAMN good reason)
(developing cross-platform UNIX software is actually a fairly good reason to have one UFS partition about)
HEAD vs head (Score:2)
Yes advantages (Score:3, Informative)
OpenDarwin.org is looking into getting up-to-date UFS with FreeBSD and then maybe UFS2 from FreeBSD -current. I have been one of few people on the opendarwin.org list to respond and the exchange has been good about how to begin. Jordan Hubbard has provided good guidance.... now I just need the time and some help I am sure.
If you are interested... please sign up.
Re:Yes advantages (Score:1)
Re:Yes advantages (Score:1)
Dave
Re:Yes advantages (Score:2, Informative)
As I recall, the "special module" is included in MacOS X v10.1 (Server and Client) and it's in the Darwin source repository. It's not too difficult to come by, it just isn't in the apache master distribution.
And anyway, it's just fine for people who are using it to host a personal site, and still be able to use their computer to run Mozilla and Quake. If I wanted to host a real site I wouldn't hesitate to use UFS.
Re:Yes advantages (Score:2)
Re:Yes advantages (Score:2)
Sync writes on BSD are not magic -- they have to wait the the disk mechanics to operate just like on other OSes.
Re:Yes advantages (Score:2)
Re:Yes advantages (Score:1)
- There are literally dozens of vendors that use UFS for their filessystems due to it's reliability. Sun, HP, BSD, etc. I don't see anybody beating a path to Apple's door because HFS+ is *so* superior.
- I see no mention of HFS+ from filesystem researchers. If it were superior (in any way), I tend to think that features from HFS+ would make it into other filesystems.
- Apple can't even get fsck to work right -- you have to depend on external vendors (Norton, others) to fsck your data. That's LAME.
I trust UFS and ext3. I trust vxfs more.
I trust HFS+ not at all.
Re:Yes advantages (Score:3, Interesting)
So far one other OpenDarwinite and myself seem to be interested in making this happen + Jordan Hubbard [who probably just doesn't have the time to help much.]
Dave
Re:Yes advantages (Score:2)
What Apple needs is XFS, or Reiser with Named Streams (or Extended Attributes).
Or perhaps even UFS with softupdates and named streams support, plus a case-insensitive-but-case-retaining option.
Re:Yes advantages (Score:2)
Re:Yes advantages (Score:2)
Check it out, go into /etc/httpd/httpd.conf and look in the LoadModule directives. At the very end will be something like mod_hfs. This comes from Apple. Comment it out, restart Apache and you'll see that you can now use any case you want.
Re:Yes advantages (Score:1)
Re:Yes advantages (Score:3, Informative)
You haven't done much then.
[dave@tivo dave]$ ssh dleimbac@mac1
dleimbac@mac1's password:
Welcome to Darwin!
mac1% cd
mac1% ls
mac1% touch Hello
mac1% touch HeLLo
mac1% ls -l
total 0
-rw-r--r-- 1 dleimbac wheel 0 Jun 14 13:14 Hello
mac1%
Re:Yes advantages (Score:1)
NTFS is another filesystem that appears to be case-insensitive - create a file called foo and try and create another called Foo from Explorer and it wll barf. Write your own version of 'touch' using the NT Native API and you can create foo, Foo, FOO and foO in the same directory - the downside is you confuse the hell out of all the Windows apps. You can also create files with reserved or 'illegal' names like '....', ' leadingSpace' and 'prn'. These tend to crash Explorer if tou try and use them!
In summary a filesystem can be case-senstive and behave as HFS+ (or NTFS) does if the OS does not expose the case-sensitivity.
case sensitivity as a security measure?! (Score:2)
The fact is, I've never heard anyone come up with a good idea for case sensitivity. The only one anyone ever comes up with is, "Well, with case sensitivity, I can have a file named 'Hello' and one named 'HELLO', etc." Hello, that's not an advantage - it's confusing as hell!
Case insensitivity with case-retention is the ideal - and that's what HFS+ has. If Apple would just fix their slow-ass hardware, I'd change over in a heartbeat (assuming I had the $).
Re:case sensitivity as a security measure?! (Score:3, Insightful)
Re:case sensitivity as a security measure?! (Score:2)
Things that are complex and take time to do correctly are the reason computers were made in the first place. Shying away from such situations with computers is not the brightest thing I could think of. Doing so when there are benefits is REALLY not smart.
ufs not for desktop usage (Score:4, Interesting)
Use HFS+ if you are going to use it as a desktop. Many apps including Office will have problems because they expect a HFS+ system supporting Type/Creator info.
Re:ufs not for desktop usage (Score:2, Informative)
The main problem that desktop apps will have with UFS is its case sensitivity. Many apps expect to be able to ask for a file in any case and get a like-named but differently cased file.
Personally, I would be surprised if any program as robust as Office had this problem.
Re:ufs not for desktop usage (Score:2, Informative)
Back in the day... (Score:1)
Re:Back in the day... (Score:2)
Re:Back in the day... (Score:1)
Microsoft?
Re:Back in the day... (Score:1)
What I want to know is why it took so long to introduce file names longer than 31 chars to the MacOS. Back when Win95 came out, Apple had a ridiculous ad campaign making fun of it, congratulating MS for putting out a system that supports more than 8 char filenames. Except that Windows 95 leapfrogged the Mac's 31-char file limit. Really, is it so hard to have data structures for file io that have more than 31 places for filenames?
Re:Back in the day... (Score:3, Insightful)
With 15 years of code under their belt that relied on just that fact, well, yes.
Re:Back in the day... (Score:1)
I use both at home (Score:3, Interesting)
I haven't really had any problems with my setup. Maybe there are some things I'll find the more I use it, but I've had this setup for months, and I haven't really noticed anything. But I certainly wouldn't format my system partition UFS. I tried that once, and it didn't work for non-server use at all. Mostly because, if something went wrong with the hard drive, I didn't have a boot disc that could do anything about it. That probably isn't a problem with things like the new HD tool from Micromat, but at the time it was a pain.
=Brian
Re:I use both at home (Score:1)
=Brian
re:I use both at home (Score:1)
anyone can waltz into your home? where do you live? instead of dual boot worries, i lock my door.
Re:I use both at home (Score:1)
=Brian
Re:I use both at home (Score:1)
Re:I use both at home (Score:2, Informative)
This way, the user data is protected, and all the apps work properly. Swap 1 is a system swap, and Swap 2 is for applications like Photoshop that have their own swap files.
=Brian
Re:I use both at home (Score:2)
Re:I use both at home (Score:2, Interesting)
Personally, I think there should be a secure option in OS X, that allows you to disable the various methods of password resetting. Of course, the clever and knowledgeable user will be able to bypass any of those, since there's always a way around security if you have physical access to the computer itself.
Fortunately, my roommates are very rarely that knowledgeable about macs and unix. Also, I don't really have anything of import on my computer. I just never liked pretending to have security that could be defeated by booting into OS 9. It was the same in the pre-X days, where most of the security programs relied on people not having a standard boot floppy. It's just wasteful to have to be bothered typing in a password if the security is too easy to crack.
=Brian
Do NOT install UFS (Score:5, Informative)
I was wrong. All of the mac applications run much better under HFS. Things like Appleworks need an HFS partition so they work with OS 9 as well as X. And mozilla still won't run in a UFS partition. As of version 10.1.3 (not exactly sure which one I tried) there were still a LOT of problems with UFS. I got a lot of data corruption on my UFS partition. Also, disk IO seemed a lot slower than with an HFS partition. The system kept getting slower and slower.
Finally, I reinstalled again with HFS. All of my troubles went away. In my opinion, don't use UFS unless you have a really important reason to do so.
Re:Do NOT install UFS (Score:1)
In addition, if you're moving from a HFS+ drive to a UFS, and you just simply copy all your stuff over, all your invisible "Icon " files will no longer be invisible on folders that have custom icons. this is a PAIN.
OS 9 & Classic (Score:4, Informative)
ufs performance sucks (Score:1)
This is qualitative, not quantitative, unfortunately, but I installed OS X on my powerbook G4 with ufs once. The install alone took over an hour. Booting OS X took forever, things started up slowly, I thought OS X was a dog.
Later I was reinstalling OS X (repartitioning the disk a bit) and decided to go to HFS+ because a friend said OS X on his powerbook with the same hardware wasn't nearly as slow as I was describing. I re-installed onto HFS+ and the install only took 20 minutes this time and things ran noticably faster.
Next time, I'll run bonnie++ on both and find out for sure how much slower ufs is than HFS+. Regardless, my qualitative feeling is that OS X's UFS sucks performance wise.
performances (Score:2)
Ones should definitively choose HFS+ for OSX, a secondary partition using UFS can be a good idea for UN*X addict, but is absolutely useless for everyday desktop use.
Beware of UFS (Score:2, Informative)
The bottom line: Stick with HFS.
Why Not Port XFS (Score:1)
This would afford one common file system across all modern operating systems. Regardless of architecture, this permits transfer of data from machine to another machine by simply connecting the hard drive (particularly useful for Firewire drives). For common architecture machines, this permits dual booting or simplified data migration. And, it leverages across all operating systems improvements to the XFS file system and file system utilities.
Given Mac OS X's Unix underpinnings, it would seem relatively trivial to port XFS to the OS. The technology is fully journaled, and proven for many years in Apple's target media market.
Re:Why Not Port XFS (Score:3, Informative)
There's a icensing issue Here. SGI'sxfs [sgi.com] is GPLed, apple does not endorse GPL or LPGLed software. They removed wget because it was gpled, gnutar has also been removed. Apple want to use BSD like licence exclusively, so one day if they want to they can make a closed source OS again
If you'de want xfs on OS X it should come from The GNU-Darwin [sf.net] project or from Fink [sf.net]. Both project are leading software port (one bringing support for AMD powered ia32 machines).
Re:Why Not Port XFS (Score:3, Informative)
Re:Why Not Port XFS (Score:2)
My take on HFS+ vs. UFS in a Mac OS X setting (Score:1, Informative)
Re:My take on HFS+ vs. UFS in a Mac OS X setting (Score:1)
UFS breaks Retrospect (Score:1)
UFS can be used, in its place (Score:4, Informative)
A big bonus would be implementing posix compliant multiple stream bsd userland commands like cp so that you don't axe your resource fork when you cp a file from the command line, etc.
Re:UFS can be used, in its place (Score:1)
formatting as UFS (Score:2, Informative)
You want UFS? Here's a trick: (Score:5, Informative)
So my advice is this: format your drive hfs, and when you need to do a project that requires UFS, simplly create a big enough blank UFS drive using Disk Copy, and do your work in it. Talk about having your cake and eating it too!
...mmmm... cake.....
Oh shit, someone else is out of alcohol! (Score:2)
In many cases Darwin project Ports and Fink packages work much better with a UFS partition than they do with an HFS+ partition because they contain absolute paths using slashes for directories rather than colons. Classic and some Carbon applications do the opposite, they use absolute paths with colons. Your best bet is to make an HFS+ partition for your Mac software and then a smaller separate UFS partition to mount as
Hardcoded Path Names (Score:1)
If a carbon app uses a hard-coded path with
If i make a folder on an HFS+ volume called, say, "Documents 15/06/02" it will be saved with the
Basically, it all just works.
Mac apps will see
The only difference you will notice is that files with resource forks can't be stored on UFS volumes and some other apps (ported from unix) prefer to be on UFS volumes so they can play with inodes and other UFS features.
Re:Hardcoded Path Names (Score:2)
Re:Hardcoded Path Names (Score:2)
At the API to the system level, the seperator is slash. At some point after you typed in the 15/06/02 filename, some library or app replaced all the slashes with colons. This is the filename that was passed to the system through the Unix API.
Later on the shell used the Unix API to get the filename, and retrived the filename with the colons. The changes were made when the file was created, not when the shell listed it.
You may be confused because the HFS probably (I don't know for sure) translates colons in the names back to slashes so that the disk image can be read by OS9, and translated them back when read. However you could make a filesystem that rot13 or otherwise mangled the filenames when storing, but that fact is totally invisible to a program that does not examine the actual disk blocks, so that fact can be ignored.
I am disappointed to see Apple favoring slashes in names over colons. The OSX finder will translate slashes to colons and back again, while translating colons the user types into into dashes and not back again. I would prefer if they turned slashes into dashes and left colons alone. This current scheme messes up two letters instead of one, also allowing people to think they can put slashes into their filenames is going to mess them up when they try to make web pages (which Apple seems to be pushing...)
10.0 vs. 10.1 (Score:1)
support ReiserFS (Score:2)
can hardly see apple supporting little-endian FSs (Score:1)
Now apple's not going to support a multiplicity of file systems, so they're only going to work on one system; i doubt they'd write their own filesystem, so i'd say that will integrate XFS.
10.1 doesnt like to boot from UFS (Score:1)
looking back, i'm glad i tried HFS+.
--Muncus.
Myths and Facts, plus a suggestion (Score:5, Informative)
Second, I cannot recommend UFS for a root partition. Too many installers rely on the root partition being HFS+. They give errors about not being able to install on a "network file system" (which should be possible regardless). I had my system set up with several UFS partitions and no HFS+ partition at all, and ran into problems trying to install a bunch of stuff I genuinely wanted. So I gave up and made my root partition HFS+.
What I recommend, however, is that only the root be HFS+. My /Users partition is UFS. A couple of other partitions are UFS. I ordered an external FireWire drive and the several partitions I will be putting on it (including /Library, /Applications, and /Developer) will all be UFS.
(For those who are worried about /Library being externally mounted -- I haven't figured out what difference Apple intends there to be between /System/Library and /Library since both seem to be used identically, but I have chosen to treat /System/Library as containing things central to the running system such as StartupItems and Extensions, and /Library to be things related to applications, such as Application Support and Fonts.)
To maintain my various UFS partitions, I have an /etc/fstab and run fsck -p in the Disks StartupItem. I've been doing things this ways for months and it seems to work quite nicely. I will mention that I do not use any Classic applications, so having partitions (such as my home directory) visible from Classic is not a concern. YMMV.
Re:Myths and Facts, plus a suggestion (Score:3, Informative)
HFS+ was designed for performance (Score:4, Insightful)
UFS was included for those few people who needed a real, genuine, Unix file system. It has the "real inodes" and the case sensitivity that Unix apps expect. But (as far as I know), directories are stored as files with a special attribute, all over the disk, just like the MS-DOS FAT file system does. It does things this way after all this time because that's the way Unix has always done things.
HFS+, however, is an extension to HFS to give it a few extra things that it needed to become a serious file system. Stuff like support for volumes larger than 2G, really long file names, Unix file attributes, etc. HFS stores directories in a B-tree file. In other words, it uses a database. This is much more efficient than a bunch of scattered files and inodes holding directory information.
Basically, if you don't know a specific reason why you need UFS, don't use it.
Re:HFS+ was designed for performance (Score:1)
My experience: don't do it (Score:2, Informative)
I got myself a G4 as a workstation about six months back. Being new to both OS X and the Mac world, I chose to format my partitions as UFS. BAD move. A lot of software simply refused to work (Mozilla being an example) if started from an UFS partition. Others (like the Harpoon 3 [harpoon3.com] Demo) worked if I did some tweaking. Since OS9 doesn't know anything about UFS volumes, I was deprived of Classic apps as well (not that I have really needed any, but anyway). All this was a pain in the ass, though. For a long time I thought the software I tried was badly coded, but soon realized that it was due to my partitions being UFS only.
Today I finally found the time to repartition as HFS+ and everything works like a charm. Finally I have a decent browser instead of that Microsoft crap. :-)
To summarize: don't do it, unless you really, REALLY, REALLY know what you are doing.
Just my .02 €
No Mozilla... (Score:1)
Mac OS X: Mozilla will not run when the application is installed on a UFS partition. The workaround is to move the application folder to an HFS+ partition and it will run correctly.
So you could just make a HFS+ Disk Image, but that's just a pain. And what about mounting your hard disk in OS 9? No dice. I say keep the HFS+ scheme.
Orange
Why you should use HFS+ (Score:2, Informative)
I also suspect iterating directories is faster with HFS+.
I'm hopeful somebody will develop a better filesystem which also supports FileIDs. HFS+ has a couple problems like fragmentation and corruption when interrupted. However Disk Warrior and Plus Optimizer fix those problems.
Mozilla and Netscape will not work! (Score:1)