This is a memo after installing FreeBSD on my MicroServer. Before that it was Arch Linux.
Nothing tricky, just boot from
FreeBSD-11.1-RELEASE-amd64-memstick.img and go through the steps in installer.
The only hardware-related issue is about DMA timeout messages in dmesg. They are SATA "READ" commands issued to the SSD but did not return in 5 seconds:
(ada3:ata2:0:1:0): READ_DMA. ACB: c8 00 80 30 3b 40 00 00 00 00 01 00 (ada3:ata2:0:1:0): CAM status: Command timeout (ada3:ata2:0:1:0): Retrying command
This seemingly correlates to sys load, but nothing is wrong except the timeout itself (at least
zpool scrub zfs scrub says so).
There are similar problem reports
and even a merged patch, however their workaround did not save me.
I found a possible explanation after days: the
hint.ahci.0.msi="1" helps when the disk is connected to AHCI controller 0, whereas my SSD was connected to a non-AHCI ATA controller.
A similar hint for
man ata (4)) may have fixed this issue, but I went another way: to flash a custom BIOS firmware that enables AHCI on all SATA ports. After SSD is recognized as AHCI device (
ada3 at ahcich5 bus 0 scbus5 target 0 lun 0), the timeout vanished.
References during my quest:
/boot/loader.conf prevents system to boot from USB before it gets ready.
BSD have a binary package manager
# pkg install \ bash zsh screen git coreutils rsync curl wget \ sudo vim-lite cmake ruby devel/rubygems \ htop smartmontools ddrescue \ vm-bhyve grub2-bhyve
(Binary packages constitutes a good example of the 20 / 80 rule. Personally I cannot recall a single time when I have to touch
make.conf in my short Gentoo journey.)
pw group mod wheel -m MY_USERNAME
My no.1 reason to change to FreeBSD is for ZFS. It seems to me that zfsonlinux still have a not-quite-short way to go. The whole storage is like:
syspozpool, created during install
ZFS settings and tuneables:
When in doubt, check how much... in ZFSTuningGuide