Installing FreeBSD 6.0 - A Linux User's perspective

November 22, 2005
I have been a Linux user way back from the first time I was introduced to an alternate OS than windows. Even though I was aware of other Unices like FreeBSD and Solaris, I hadn't come around to installing them on my machine. Two days back, things changed when I downloaded the latest FreeBSD version 6.0 from their official website. It consists of 2 ISO images of 565 MB and 666 MB.
I burned the images on to two CDs using K3B CD burning software and then started the installation.
FreeBSD comes with a text based installer which is quite intuitive. But a person installing a non-windows OS for the first time will initially find it a bit confusing.
  • Unlike the previous versions of FreeBSD, this installer does not give you an option to configure the kernel but straight away loads the main menu (called sysinstall menu), see figure below. Here I chose the standard installation menu which is the recommended option for first time users of FreeBSD. There is also a Custom and Express installation choice for more advanced users.
  • Now I was presented with the FDisk main screen which prompted me to create partitions. I created one partition from the available free space and FreeBSD gave it the filesystem number 165 because FreeBSD uses the Unix FileSystem (UFS) where as in Linux it is ext3 (83).
    Note: For those who are uncomfortable using fdisk, there is a wizard mode which is enabled by pressing '' while in FDisk main screen, where you get some hand holding.
    One thing I found really interesting was the naming of the hard disks. I have a Seagate 40 GB IDE hard disk. It was recognized as /dev/ad0s where as in Linux it is recognized as /dev/hda .
  • Next screen gave the option to install the FreeBSD boot manager. I chose to install a boot manager because I wanted to boot between multiple OSes.
  • Next the installer prompts you to create the mount points. Here I chose the auto option by pressing 'A' and FreeBSD created mount points automatically. This was how FreeBSD created the mount points on my machine.
    Part       Mount    Size     Newfs    Part
    ad0s3a / 512MB UFS2 Y
    ad0s3b swap 166MB SWAP
    ad0s3d /var 1107MB UFS2+S Y
    ad0s3e /tmp 512MB UFS2+S Y
    ad0s3f /usr 3292MB UFS2+S Y
    I found this unique because in linux, it is up to the user to decide to allocate space for swap and other partitions. Where as here, I created one single partition from the available space for the OS and FreeBSD further divided this space optimally for swap and other mount points.
  • After the successful creation of mount points, I was prompted to choose the type of installation. Like in Linux, here too you can select from a Developer, X-Developer, Kern-Developer, X-Kern-Developer, Minimal, User, X-User or Custom choices. I selected the 'User' choice which installs all the tools except X server and GUI tools. I felt this was desirable choice because it is easy to install more packages via the FreeBSD ports later.
  • Next the installer asked which installer medium I wanted to use. As FreeBSD is a network operating system, it gave me multiple choices like installing from a CD/DVD, NFS, Floppy, via FTP and so on.
    After it accepted my choice, it started copying all the files which included documentation and man pages to the FreeBSD partition which took about 10-15 minutes.

Fig: sysinstall Main Menu

Finally, It asked me a series of questions and made some changes to the configuration files according to my preferences. The questions asked were as follows:
  1. Would you like to configure any ethernet or SLIP/PPP network devices ?
  2. Do you want this machine to function as a network gateway?
  3. Do you want to configure inetd and the network services that it provides ?
  4. Would you like to enable the SSH login ?
  5. Do you want to have anonymous FTP access to this machine ?
  6. Do you want to configure this machine as a NFS server ?
  7. Do you want to configure this machine as a NFS client ?
  8. Would you like to customize your system console setting ?
  9. Would you like to set this machine's time zone now ?
  10. Would you like to enable Linux binary compatibility ?
  11. Does this system have a PS/2, serial or Bus mouse ?
For all the above questions all I had to do was give a Yes or No answer. And accordingly suitable action was taken by the FreeBSD installer.
  • In the next step, I was given the choice of fine tuning which packages I want installed on my machine. Here I chose the default selection.
  • Lastly I was prompted to create an ordinary user account and also set the password for the root account.
That is it. Now I was free to reboot into the newly installed FreeBSD.

Characteristics of FreeBSD
1) A robust OS with its own set of command line tools similar to (but not same as) those found in Linux. This I realized when I executed the command :
# fdisk -l
In FreeBSD, it gave me a short help on the options to be used with fdisk command. Where as in Linux, it lists the partition table. In fact all the command line tools in FreeBSD have been inherited from the BSD port and only their names are similar to their counterparts in Linux.
2) FreeBSD boots into C Shell by default. Though you can also switch to the bash shell.
3) Has a wide collection of applications (Over 8000 packages) in its ports system which is equivalent to the Yum/Apt-Get in Linux and installation of new applications is a snap with automatic resolution of dependencies.
4) Installs a very secure OS by default.
5) The file system used is the Unix File System (UFS2) which supports additional features not supported in Ext2(3) filesystems.
6) Will run applications compiled on Linux platform if the Linux compatibility package is installed.

Initial drawbacks for FreeBSD converts
1) Even though I found the FreeBSD installer rather intuitive, a first time user might find it a bit unfriendly when compared to the installers of RedHat or SuSe.
2) Users migrating from Linux will encounter a slight learning curve as they will have to learn some new commands and unlearn a few others. Also the file hierarchy is different than in Linux.
3) If your system has ISA cards, then there is a fair chance that you might encounter some trouble in installing FreeBSD 6.0 basically because you do not have the option of configuring the kernel during install time when you can enable ISA support - which I think is disabled by default. I was able to install FreeBSD 6.0 on one of my PCs which had an Aztec2320 chipset based ISA sound card. But each time I booted into FreeBSD, the system hung for close to 30 minutes during booting, after which it booted up normally. I didn't encounter this problem when I installed on a newer Pentium 4.0 machine which didn't have any ISA slots.

12 comments:

  • (1) Does reiserfs/XFS/JFS support ACLs? UFS2 does
    (2) You shouldn't run your whole linux system within freebsd, it's just for some proprietary software and for me it worked very well yet
    (3) Have a look into the ports collection, WINE is supported
    (4) yes upgrading a system takes some work (and time), but often isn't that complicated
    e.g:
    cd /usr/src
    make buildworld
    make buildkernel
    make installkernel
    -> reboot into single user
    cd /usr/src
    make installworld
    mergemaster
    -> reboot

  • (1) Yes there is support for ACL for reiserfs/XFS/JFS in linux. Check out http://acl.bestbits.at/

  • make buildworld...
    takes 6-7 hours on a dual PII Overdrive 333 MHz, not several days.

  • the freebsd-update package makes updating freebsd quite simple for the average user and it uses cryptographic signatures

  • You should have loaded www.pcbsd.org, a GUI based distro, with FreeBSD underneath and done an evaluation.

  • Richard

    Good article, BSD is very interesting. I found that Desktop BSD (www.desktopbsd.net) was easy to install for a basic desktop OS.

  • I used linux since 1998 (not so long) started with RH 5.0 and I switch to FreeBSD two years ago because I wanted something stable and easy to run (not bloated and heavy to run). FreeBSD can be installed in 45 minutes on an old pc (p166 64ram) with X running. I have got about 10000 packages with the ports collection (no rpm evil), great support (BSDForum.org), great documentation (Handbook) and the best of the best: a unix kernel.

  • As a very wise and experienced sys admin once told me,

    "Linux is like they took a perfectly good Unix and fscked it up"

    Obviously edited for content but you get the idea.

  • On the issue of executing commands from single user/runlevel 1, it is not all that uncommon on FreeBSD and even Linux, Solaris, NetBSD, etc. for that matter to run critical tasks from a networked serial console or KVM. This allows administration of the most critical tasks without worrying about network connectivity on the individual machine.

  • For servers I dunno, but most of the interesting desktop stuff is happening on Linux. What are *BSD answers for DBUS, HAL, UDEV, true *user* plug&play experience? What about INotify, do *bsd user still have too poll for fs modifications?
    Sure for me a KDE user, I could care less if I'm running KDE on my gentoo or freebsd box, but I still love konqueror opening when I plugin a mmc card/dvd/cam. If there is a way to do this without major hacks in freebsd I might try it out, until then I pass.

  • I run many Windows apps on FreeBSD under WINE. WinZIP, HJ-Split, FreeAgent, WinRAR, etc. Whoever said WINE doesn't work is either ignorant or dishonest, or both.

  • Problem is, they spent FIVE YEARS getting to 6.0, and many of the features it was supposed to deliver is STILL NOT quite there yet, like properly DEBUGGED multi threading (check the freebsd-threading mailing list), and they have yet to publish any numbers on SMP scalability (you'd think that if it performed well, they would be touting those numbers all over). Also, these were goals FreeBSD had targeted for 5.0, which was supposed to be out and about and ready for production use in 2002! Not only was 5.x severely delayed, but it also underdelivered. Big time. 6.x is merely a continuation of 5.x, and the major version number has only been bumped to get away from the stigma of the 5.x series.

    Also, not having a journaling fs at a time when we have half-a-terabyte disks for sale at an affordable price is beyond ridiculous. Having to do an fsck on a volume after an unclean shutdown five years ago was fine, today it's simply not acceptable.