No meu trabalho, eu sempre tinha que ficar instalando e desinstalando máquinas para fazer testes. Com isso, perdíamos muito tempo. Então surgiu a idéia de criar um LiveCD com todas as ferramentas que utilizávamos nos testes.
Levando em consideração que você saiba como instalar o FreeBSD, vamos lá:
Faça uma instalação normal em um HD.
Crie um subdiretório chamado livecd na raiz. Lembre-se que o / tem que ter bastante espaço!
Copie todo o seu sistema de arquivos para o diretório /livecd.
# cp -rf / /livecd/
Crie um subdiretório "mdfs" dentro do diretório livecd.
# mkdir /livecd/mdfs
É complicado criar um LiveCD que não precise de áreas de escrita. Com isso, vamos criar essas áreas utilizando o recurso de md (Memory Disks). Para tal, é preciso fazer algumas mudanças dentro do etc (/livecd/etc).
No arquivo /livecd/etc/rc, logo após a linha que contém:
. /etc/rc.subr
adicione e linha:
sh /etc/rc.d/rc.livecd.diskless
Faça todas as alterações necessárias dentro do diretório /livecd/etc (resolv.conf, rc.conf). Após tudo pronto, compacte os diretórios e coloque os arquivos tbz dentro do subdiretório mdfs. Os diretórios que devem ser compactados são o /livecd/etc, /livecd/usr/local/etc, /livecd/var e /livecd/root.
# tar -jcpf var.tbz /livecd/var
# tar -jcpf etc.tbz /livecd/etc
# tar -jcpf usrlocaletc.tbz /livecd/usr/local/etc
# tar -jcpf root.tbz /livecd/root
Este passo é muito importante, pois tais diretórios precisam permissão de escrita e devem ser criados em memória durante o boot, conforme descrito mais abaixo.
Altere agora seu /livecd/etc/fstab deixando-o da seguinte forma:
/dev/acd0 / cd9660 ro 0 0
proc /proc procfs rw 0 0
/dev/md1 /etc ufs rw 0 0
/dev/md2 /usr/local/etc ufs rw 0 0
/dev/md3 /var ufs rw 0 0
/dev/md4 /root ufs rw 0 0
Recompile seu kernel acrescentando as opções:
options CD9660
options ROOTDEVNAME="cd9660:acd0"
device md
Copie seu kernel e todos módulos necessários para o diretório /livecd/boot/kernel.
# cp -rf /boot/kernel/* /livecd/boot/kernel