I was setting up some simple jails following the useful instructions in the FreeBSD Handbook. Setting up a thin jail using ZFS snapshots is pretty straightforward and I was able to get a jailed system up and running in short order. That’s when the fun began. I wanted to test a NGINX server running in the jail on an inherited IP. When I tried to do the install from the host using pkg -j thinjail install nginx-lite it failed essentially saying that it couldn’t connect to update the repository catalog.
Read Morezsh on FreeBSD
After some deliberation, experimentation and research, I’ve decided to go with zsh as my interactive shell on FreeBSD. zsh has nice modern shell features that I’m missing when I’m at the shell prompt in sh, the default FreeBSD shell. Simple stuff like !! or !$ that I tend to use quite a bit. I’m most familiar with bash, but that seems to cut against the grain of FreeBSD. Also, zsh is the default on MacOS now so I use it quite freqently there.
Read Morebyhve
Although the name is resonant of a Beyonce fan group, bhyve is an interesting hypervisor for FreeBSD. To get started, I followed the script in the FreeBSD Handbook and within about 5 minutes, had a FreeBSD guest running on a VM inside my FreeBSD host. I did get caught in a boot loop. Going to the shell and using shutdown -p now got me out of it and I was able to start the VM normally using sh /usr/share/examples/bhyve/vmrun.
Read MoreFreeBSD jail
One of the most interesting aspects of FreeBSD to me was the virtualization features. There are two main ones: jails and bhyve. I haven’t looked at bhyve in detail yet, but jails are very interesting. Jails are akin to LXD/LXD as they are both ways to improve on chroot. They are both more about system virtualization rather than the application virtualization approach of Docker. On a first comparison, creating a jail seems more involved than creating a container on LXD.
Read MoreZFS boot environments
I had some passing familiarity with ZFS in Linux and it seemed interesting. On FreeBSD, ZFS is more core to the platform. There is lot to it but the concepts aren’t difficult. One of the core elements of ZFS are datasets. A dataset is sort of like a partition but more flexible. You can use them for snapshots and other things. A list of the datasets in a system is produced with zfs list:
Read MoreUbuntu to FreeBSD
Having been an Ubuntu user for many years, a new OS is taking some getting used to. Although there is a nice quickstart guide for Linux users on the FreeBSD website, there are still some things that are muscle memory for me that is requiring some more time. They are mostly around shell differences. sh is definitely not bash. I understand why bash isn’t in the base system due to licensing and a preference for simple solutions, but sh has a few limitations that seem to bite me.
Read MoreFirst BSD config
I was poking around on my recently installed FreeBSD system and I noticed a strange message in /var/run/dmesg.boot that said est: CPU supports Enhanced Speedstep, but is not recognized.. That seemed odd, so I looked it up and found some information about what it was. It seems that the system was not set in the BIOS to allow the OS to manage the performance profile. It also led me to look at powerd to enable the performance mode.
Read MoreIT yak has been shaved
After a good experience running FreeBSD on LXD, I decided to install it directly on the server. As I discovered earlier, it seemed to be a good idea to update the storage adapter to support IT mode. I found a great set of instructions and updated the H310 card to LSI IT firmware. Essentially, it was just following a recipe. It took about an hour or so with much of that time spent creating the bootable vFlash partitions(pdf) and rebooting the server a few times.
Read MoreFreeBSD...now with networking
I sorted out the DHCP issue I saw yesterday. There was a discussion on this topic that was very helpful. There was a checksum problem in the request for an address. The fix was to apply sudo ethtool --offload lxdbr0 tx off to disable checksum offloading on the bridged network in LXD. This site has a nice description of the what that means: Checksum offloading is usually beneficial as it allows the checksum to be calculated (outgoing) or verified (incoming) in hardware at a much faster rate than it could be handled in software.
Read MoreFreeBSD at last
I was finally able to get FreeBSD installed on LXD: rob@bsd:~ $ uname -a FreeBSD bsd 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 After all of the Ubuntu upgrades, I found that I had done some strange configuration on my LXD system. It’s been a bit since I looked at it and instead of trying to fix it, I just uninstalled (sudo snap remove --purge lxd) and reinstalled. After LXD was installed and configured, I downloaded the FreeBSD 14.
Read More