Provavelmente não precisa usar bsdinstall , mas fornece um certo grau de confirmação. Tudo isso está na página man: bsdinstall (8) . Eu apenas não li com cuidado o suficiente. Para o registro:
O download requer duas variáveis de ambiente: DISTRIBUTIONS e BSDINSTALL_DISTSITE ( BSDINSTALL_DISTDIR é opcional e o padrão é /usr/freebsd-dist ). Os nomes listados em DISTRIBUTIONS precisam corresponder aos nomes de arquivos reais (por exemplo, doc.txz em vez de doc ). BSDINSTALL_DISTSITE é o URL de download. O URL tem o efeito colateral de especificar a plataforma e a versão ( amd64 e 10.0-RELEASE abaixo).
A extração requer mais 1 variável a ser definida: BSDINSTALL_CHROOT . Nesse caso, / está correto (caso de uso típico, quando inicializado no CD e instalado em um novo disco, é mais provável que seja /mnt ).
export DISTRIBUTIONS="src.txz doc.txz games.txz lib32.txz"
export BSDINSTALL_DISTDIR=/var/tmp/freebsd-dist
export BSDINSTALL_DISTSITE="http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.0-RELEASE"
bsdinstall distfetch
export BSDINSTALL_CHROOT=/
bsdinstall distextract