one of the most common, but at the same time easiest problems to solve, when you’re working with FreeBSD system installed on too small disk is rebuilding the system.

in my specific case, it was very old i386 system initially installed around release 6 on a 20GB HDD. at around release 11 I ran out of tricks to pull and still make it, so had to finally add a disk. fortunately, just before that, the machine was moved from physical box to virtual machine.

OK, so how to rebuild the system in such situation?

first of all, you have to add filesystem somewhere. in my case, I’m using /home (here’s /etc/fstab):

/dev/da1p1      /home           ufs     rw      0       0

then, every build stage needs to be passed env settings to know where to build - buildworld, kernel and installworld will be executed in this way:

env MAKEOBJDIRPREFIX=/home/build make -j4 buildworld
env MAKEOBJDIRPREFIX=/home/build make -j4 kernel KERNCONF=server
env MAKEOBJDIRPREFIX=/home/build make -j4 installworld

obviously, what we’re left with is mergemaster:

mergemaster -FiU

and then:

reload

hopefully, that solves your problem. you just need to remember to clean up /home/build and /usr/obj.