|
Warner Losh, membro do Core Team do FreeBSD lista, em 18 passos simples, como criar um FreeBSD customizado e bootável, demonstrando que ao contrário do que muitos pensam - ou reclamam - criar um FreeBSD do zero, a partir dos fontes, é muito simples. Segue a tradução, a íntegra, do post de Warner em seu blog:
De tempos em tempos ouço pessoas reclamar sobre o quão difícil é criar uma imagem à partir dos fontes do FreeBSD. Essa semana vou explicar como criei uma imagem de i386 bootável em um dispositivo USB, e também fazer observações sobre o resultado. Recentemente precisei criar uma imagem bootável de i386. A forma mais fácil foi compilar uma nomeu amd64. Configurei meu ambiente para os processos de compilação (passos 1 a 3), construí as aplicações de userland e kernel do FreeBSD (passos 4 e 5), preparei a flash (passos 6 a 11), instalei a userland e o kernel (passos 12 e 13) e adicionei alguns arquivos extras, necessários para o boot (passos 14 a 18). Seguem os comandos abaixo:
- setenv MAKEOBJDIRPREFIX /blah
- setenv TARGET i386
- setenv TARGET_ARCH i386
- make buildworld
- make buildkernel KERNCONF=GENERIC
- fdisk -I da0
- fdisk -B da0
- bsdlabel -w da0s1 auto
- bsdlabel -B da0s1
- newfs /dev/da0s1a
- mount /dev/da0s1a /mnt
- make installworld DESTDIR=/mnt
- make installkernel DESTDIR=/mnt KERNCONF=GENERIC INSTALL_NODEBUG=t
- make distrib-dirs DESTDIR=/mnt
- make distribution DESTDIR=/mnt
- echo /dev/da0s1a / ufs rw 1 1 > /mnt/etc/fstab
- echo ifconfig_DEFAULT=DHCP > /mnt/etc/rc.conf
- echo hostname=demo >> /mnt/etc/rc.conf
Coloquei tudo em um cartão SD e inseri-o em um adaptador USB, iniciando o laptop com ele. A base do FreeBSD não é muito grande hoje em dia, 205MB é suficiente para um sistema completo. % df /mnt Filesystem 1024-blocks Used Avail Capacity Mounted on /dev/da0s1a 484822 205570 240468 46% /mnt
Podemos ainda reduzir, mas considerando uma memória SD de 512MB com custo de 5 dólares, não faz sentido reduzir esse projeto para a memória que pretendi utilizar. Afinal só precisava de algo para fazer a transição de meu laptop de FreeBSD/amd64 para FreeBSD/i386. Se alguém desejar reduzir a quantidade de espaço usado, existem diversas opções que podem ser usadas para reduzir o tamanho do sistema. Em minha experiência, é melhor construir sem essas opções e depois usar as keywords WITHOUT_XXX na hora de instalar, com installworld, mantendo assim a imagem pequena. É simples reduzir o FreeBSD pelo menos pela metade dessa forma, além do kernel que pode ser reduzido a 5MB na maior parte dos casos.
Você pode ainda usar o nanobsd(8) para automatizar esse processo, como pode também o TinyBSD ser utilizado. No futuro vou citar como costumo construir um FreeBSD com 16MB em média.
|