This project provides a simple and easy-to-understand script that can be used to build a LiveCD for FreeBSD. The implementation is largely based on AvgLiveCD article written by Andriy Gapon.
Unlike most other scripts to automate the process of building LiveCD, it doesn’t try to hide the complexity behind a fancy user interface. Instead, users can easily configure steps needed to run and see commands run in each step. Modification and debugging is very easy once you know how to use it.
It is called "FreeBSD GNOME LiveCD" because it was originally made to test and preview the next version of GNOME. There is no GNOME-specific things in the script, and it can be used to build LiveCD for any other environments.
-
Install
sysutils/cdrtools
to getmkisofs
program.
pkg install sysutils/cdrtools
-
Download and build FreeBSD source code of the version you want to use.
svn co https://svn.freebsd.org/base/head freebsd-base cd freebsd-base make buildworld buildkernel
-
Get a local copy of the pkgng repository you want to use. You can build your own repository with programs like
poudriere
.
poudriere jail ... poudriere ports ... poudriere bulk ...
-
The build script read configuration from shell variables.
-
Create a copy of
build-release.sh
orbuild-debug.sh
and set the following required variables in it:-
src
: path to FreeBSD source code. -
repo
: path to pkgng repository. -
pkgs
: list of packages to be installed. -
image
: path to the output LiveCD image. -
vol
: volume name of the output LiveCD image. -
root
: empty directory used to prepare the root filesystem. -
cdroot
: empty directory used to prepare files on LiveCD.
-
-
Remember to set environment variables like
MAKEOBJDIRPREFIX
if you use it during build of FreeBSD source code. -
Run the script you created in the previous part to start the build. It will read the real build script
build.sh
and execute commands in it. -
The build process is split into several steps, so a failed step can be restarted without re-run the complete build process. Choose "Run" to do all steps or choose "Edit" to enter steps you want to run.
-
An easy way to set the size of memory disk without interrupting the boot.
-
Allow using prebuilt binaries to install base.
-
Allow using
freebsd-update
to apply binary patches. -
Support memory stick. Use FAT32, UFS, or ext2 instead of ISO9660.
-
Support GRUB2 to enable booting multiple operating systems on single medium.
-
Support UEFI boot.