help with condensing bsd

Anton Yuzhaninov citrin+bsd at
Fri Sep 8 19:03:36 UTC 2017

On 09/08/17 12:04, Littlefield, Tyler wrote:
> I wish to create a smaller BSD as I have a vps with a minimal amount of
> space.

1. Reducing kernel size.

create custom config - add to it all you need (drivers, geom/netgraph
modules e. t. c.) and add line
makeoptions     NO_MODULES=yes

only kernel will be build without modules.
Kernel can be compressed using gzip -9

2. World.

Simple way - just disable optional stuff via src.conf
Read man src.conf and add knobs like
to you src.conf

Not all can be switched off via src.conf, but if you not building image
for tiny embedded system a few extra Mb probably doesn't matter.

> I know that I can buildworld and cut a lot of things out (does
> anyone have a good example from where to start)?
> My question is this: Once I buildworld and buildkernel, how do I package
> these up? I have a few systems that need this new buildworld and
> buildkernel, and i also want to replace the base iocage jail.

Different options are possible.

I use this way:

On build host I run script [1]
result of this script: files base.txz kernel.txz e. t. c.

/usr/src/release/ can be used instead, but for me it was more
easy to write own script than customize

To upgrade OS on VPS I use shell script [2] which fetches this files and
extracts them using tar. To upgrade files in /etc I currently use
etcupdate (because mergemaster needs /usr/src).

If you already have OS installed in this VPS you can install you custom
build (and copy /etc/src.conf used for this build) and then run
make delete-old && make delete-old-libs
to delete switched off parts (but you will need /usr/src for this task).

Also you can save space by not keeping /usr/ports and installing binary
packages. If custom options are need you will have to run own package
repo using poudriere.


More information about the freebsd-questions mailing list