It has always bothered me that this site and my experiences stay inside of Linux so much, when the whole site is about "free and open source software". I've only dabbled in non-Linux FOSS with live CDs and such, but I'm ready to install a real BSD and stick with it for awhile. So, the recently-acquired box with Windows-XP will now be sharing space with a daemon. Windows on the first hard drive, BSD on a second, exactly as I did with Windows and Red Hat almost a decade ago.
First impressions: FreeBSD is hard to install. Damn hard. I am the veteran of some 50 to 100 operating system installs in my lifetime, and I blew FreeBSD five amazing times and had to start over. It is well-documented and everything, but I still fumbled around with it. One misfire was the result of filling the 4.1 gig hard drive to capacity by selecting "all" for install options, reasoning that it couldn't get that big. It could. It would help if somewhere it told you how much space each installed module would take up.
My chief hassle was disk partitioning. It might be argued that it's more difficult to come from Windows to BSD than it is to come from Linux to BSD, because when you came from Windows you're a blank slate and can learn Unix the BSD way. Come from Linux, and you already have Linux-based ideas about Unix, and BSD is only about 75% similar to Linux. You get comfortable with BSD, thinking you can handle this, and then it throws a partition named "/dev/ad2s3b" at you.
Anyway, I would stress that you should not trust the auto-partition option in fdisk. I did that, and it allocated 1.4 Gigabytes to /var with only 500 Megabytes given to /usr. After that install, I discovered that /var was at 0% capacity while /usr was full to 106% capacity. Yes, I know "106% full" is impossible, but that's what 'df -h' told me!
Anyway, Linux users trying to grok BSD will have to throw away their definition of 'partition'. In BSD, what you call a partition is actually a slice, and the slice is divided into partitions. I'll explain this byzantine scheme in a later post.
Note that I'm not complaining here. I wanted a challenge, and I got one. I'll conquer this, too. And I have a poetic anecdote to share: At my most recent attempt, I got a working install going, but it was still pretty hosed up. At this point, I questioned whether this was worth the bother. I was in the console.
Wandering around and coming back, I was surprised to find that the FreeBSD text-mode screensaver had kicked in. There, before me, was the cutest colored-ASCII drawing of the daemon mascot I'd ever seen, happily bouncing around the screen. A text-mode screensaver - something you never see in Linux. It looked at me with it's soulful puppy eyes. I melted.
That daemon was a messenger to me. It told me, "If you persist on this path and overcome your struggles, you will be rewarded with new delights you never knew existed." Yes, and I'm going to get there. Here I come!
How I finally did it: I threw all caution to the wind in the partition-label part and just made a 256MB swap partition and the rest is / ! Ha! After that, I picked the base "X-User" install and added some packages after that (Emacs, Window Maker, rxvt, and such). Clean install, room to spare, works like a charm. I know there are partition-zealots out there fainting at this, but this box isn't even going online or fooling with ports - just a test-install to get ready to dual-boot it on my Slackware box, perhaps, someday.
I also chose not to install a boot manager, because we're sharing this computer with you-know-who. When it comes to dual-booting with Microsoft, I like to just slap in a second hard drive, put the other OS there, and boot to it from a floppy, leaving Windows in the only known condition in which it cannot possibly cause trouble: like a mushroom. Kept in the dark and fed manure.
I found no obvious way to make a FreeBSD boot floppy. Instead, I used my handy-dandy all-purpose GRUB floppy. At GRUB's prompt it was a simple matter of typing:
- root (hd1,a)
- kernel /boot/loader
...and FreeBSD lives and breathes! The daemon is back to frolicking happily on the screen while I run /usr/libexec/locate.updatedb in the background to begin exploring. All is right with the world!