I'm retiring my old FreeBSD 6.3 box because, well, it's dying. It blew the power supply, then one of the drives failed, plus all the hardware is at least 5 years old. It is time to upgrade.

So I have my fancy new home server built with lots of RAM and terabyte drives and it's running Debian (wait! I can explain!). I wanted to learn more about Linux and I wanted to be able to run VirtualBox, which isn't ready for BSD yet (though there's progress, which is very cool).

(Let me quickly share my thoughts on Debian: I picked it because people seem to like its stability, and that's my first priority for a box that's going to run 24/7. It's good - but it's almost too easy. What I mean is, when I configured samba on my FreeBSD box I edited smb.conf by hand. In Debian I just cllick a few things; it's practically like Windows. Now, that's not necessarily bad, but I liked how FreeBSD installed, gave me a command prompt, and then demanded I learn how to install X, configure apache, etc. Yes, I realize I can do things manually in Debian as well, but the thing is, FreeBSD FORCED me to learn, to do a lot of things by hand, and doesn't that make you more knowledgeable overall? Okay, I suppose this is more of a character flaw I have than anything, but I digress...)

Anyway, Debian is okay and all, but I don't want to abandon FreeBSD, because I really have liked using it. So I'm still going to run it, just virtually. It's still going to be my squid proxy server, and my apache server.

So, what I want to know is, when doing a fresh install, what should I back up from my old server (which may only live a few days longer)? I already have my data, but what about config stuff to reference? Here's what I figured so far:

/etc
/usr/local/etc

And that's about it. I imagine I'm missing something obvious (I've really only been playing with BSD for less than two years) and I'd be very grateful if anyone else had any suggestions.

/etc and /usr/local/etc are the two big configuration folders.. however, I'd pull /var as well... there are certain apps that (for whatever reason) elect to store configuration data in /var (BIND comes to mind). I'd probably also (if possible) run a pkg_info so you know what ports/packages are installed (for reference).

What I mean is, when I configured samba on my FreeBSD box I edited smb.conf by hand.

Samba has a web interface which is independent of OS. You could just click
your way out of Samba configuration on FreeBSD box as well if that was the goal. You would obviously trade security for convenience but that seems to be the goal. The price of auto-configuration on Debian is very HIGH besides security. You install same small peace of desktop related software just to find out that Apache and eleven other services are happily running compromising your system and eating resources. Well that kind a "user friendliness" is exact reason why proprietary systems like Windows are can of worms. If Windows had all services shut by default and required users to start up necessary services it would not be actually that bad OS at all.

For the mere act of installing the system -- stripping down the machine to its components, then rebuilding its capabilities one by one -- led me to think about what has happened to the profession of programming, and to consider how the notion of technical expertise has changed. I began to wonder about the wages, both personal and social, of spending so much time with a machine that has slowly absorbed into itself as many complications as possible, so as to present us with a façade that says everything can and should be "easy."

I once worked on a project in which a software product originally written for UNIX was being redesigned and implemented on Windows NT. Most of the programming team consisted of programmers who had great facility with Windows, Microsoft Visual C++ and the Foundation Classes. In no time at all, it seemed, they had generated many screenfuls of windows and toolbars and dialogs, all with connections to networks and data sources, thousands and thousands of lines of code. But when the inevitable difficulties of debugging came, they seemed at sea. In the face of the usual weird and unexplainable outcomes, they stood a bit agog. It was left to the UNIX-trained programmers to fix things. The UNIX team members were accustomed to having to know. Their view of programming as language-as-text gave them the patience to look slowly through the code. In the end, the overall "productivity" of the system, the fact that it came into being at all, was the handiwork not of tools that sought to make programming seem easy, but the work of engineers who had no fear of "hard."

Oko, I have used SWAT before, yes. Maybe samba was a bad example. But overall FreeBSD just feels like something you build from the ground up, which means you learn how it works and what's running on your system in a way you don't when a system is more "user-friendly". A point that you make quite well.