From SUSE Linux 10.0 to FreeBSD 7.0 Migration - Part 0 (Intro)
My home server, which acts as a development web server as well as a file and print server for the numerous PCs around my household, was running on SUSE Linux 10.0. This version of SUSE was the only one of its kind, before Novel re-branded the free version of the OS as OpenSUSE. It was getting increasingly difficult for me to get the updates for SUSE Linux 10.0, so I figured it was time to upgrade to something a little newer. Of course I was planning on loading OpenSUSE 10.3, the current stable release.
Looking for ultra-light linux for kids’ PC
About this time my kids’ old Window 98 PC seemed to be grinding down to a halt as they tried to get it to do more - IM, online games, etc. I tried a couple of small linux loads known for good performance on old hardware, like Puppy Linux and Damn Small Linux (DSL). While both of these are great distros, on this hardware Puppy Linux bogged down with too little memory, and DSL had problems with the USB wireless network adapter on that PC. I even put in an old 16 bit Intel NIC and spent a couple of evenings fishing CAT-5 cable through the attic and wall, but still had some problems with DSL recognizing it.

Someone Mentioned FreeBSD
On some forum (can’t recall where), someone mentioned FreeBSD as a viable option for old, slow hardware, so I decided to try it out on the kids’ PC. After some tweaking of the device hints to get it to use the old NIC, it worked great. Performance is acceptable for the hardware (300 mhz Pentium II), and it runs most Linux software in addition to native FreeBSD code. After some more online research about the relative strengths and weaknesses of FreeBSD vs. other BSDs vs. Linux, I decided to reload the server with FreeBSD. This server is built on a DELL Dimensions platform, with a 2 Gigahertz Intel processor and 256 Meg of memory. It has 2 internal hard drives, a 30 Gig Maxtor 6E030L0, and a 160 Gig Seagate ST3160215A (which came out of a failed external USB SimTech drive.
The Plan
Since the Seagate had a lot of unused space, I wanted to use part of it to back up stuff I wanted to save, but I also knew I would need some of it free for the FreeBSD installation. The trouble is, it was formatted as a ReiserFS file system, which FreeBSD can read but not write to. So the plan included steps to shrink that file system and leave enough unallocated space for FreeBSD to create usable storage. So the steps in general were:
- Estimate space required to backup user data and development work.
- Shrink the ReiserFS file system to create unallocated space on the disk, but leave enough on ReiserFS to accommodate the backup.
- Change the partition sizes on the disk (shrinking the file system does not affect the underlying partition size).
- Backup desired files.
- Download FreeBSD and create installation CDs.
- Install
- Restore files and configure applications (samba, cups, apache, quanta Plus, etc.)
Next: Part 1 (coming soon): Using resize_reiserfs and cfdisk.

