Galera, apesar de ter umas ferramentas para facilitar a cria��o de
liveCDs ou releases do FreeBSD, eu queria fazer um na m�o que
funcionasse de verdade. Tentei usar o rc.diskless, fiz mudancas no
loader.rc e no loader.conf para mudar o root para o CD, e tudo mais, mas
n�o funcionava nem a pau. Misturei uns 20 tutoriais e no final sa� com
esta f�rmula torpe, mas que funcionou. Ent�o repasso para voc�s.
Basicamente acabei usando as informa��es de apenas 2 tutoriais (citados
ao final).

=========================================================================

Criando um liveCD do FreeBSD
Autor torpe: Pablo Santiago S�nchez

1 - Crie um subdiret�rio chamado livecd (por exemplo, pode ser o nome
que voc� quiser)

2 - Crie a estrutura m�nima de diret�rios conforme a lista abaixo

/
|-- bin
|-- boot
|   `-- defaults
|   `-- kernel
|-- dev
|-- etc
|   |-- defaults
|   |-- mtree
|   |-- namedb
|   |-- ppp
|   |-- ssh
|   `-- ssl
|-- mnt
|-- modules
|-- proc
|-- root
|-- sbin
|-- tmp -> /var/tmp (fa�a um link simb�lico para o /var/tmp, fica mais
f�cil depois na cria��o dos ram disks)
|-- usr
|   |-- bin
|   |-- lib
|       `-- aout
|   |-- libexec
|   |-- local
|       `-- etc
|   |-- sbin
|   `-- share
|       `-- misc
`-- var

3 - Copie todos os execut�veis,bibliotecas e configura��es requeridas,
respeitando a posi��o original dos mesmo (ex: /bin/ls => livecd/bin/ls,
/etc/rc.conf => livecd/etc/rc.conf). Se quiser, pegue os scripts perl
deste site para facilitar sua vida: http://neon1.net/misc/minibsd.html

4 - Fa�a todas as altera��es necess�rias dentro do diretorio livecd/etc
(resolv.conf, rc.conf, etc) e crie todos os subdiret�rios e arquivos
necess�rios no /var. Ap�s tudo pronto, compacte os diret�rios (ex: tar
-jcpf var.tbz /var) e coloque os arquivos tbz dentro do diret�rio /mdfs.
Esse passo � importante pois tais diret�rios precisam permiss�o de
escrita e devem ser criados em mem�ria durante o boot, conforme descrito
mais abaixo. � aconselh�vel que o liveCD seja configurado para utilizar
DHCP e que exista um servidor DHCP na sua rede.

5 - Recompile seu kernel acrescentando as op��es
        options         CD9660
        options         ROOTDEVNAME=\"cd9660:acd0\"
        device          md

6 - Copie seu kernel para o diretorio livecd/boot/kernel. Se quiser,
voc� pode compact�-lo fazendo "gzip -9 kernel" e copiar o kernel
compactado (kernel.gz) para o diret�rio citado. O FreeBSD consegue
entender que o kernel est� compactado e utiliz�-lo mesmo assim. Copie
tamb�m todos os m�dulos necess�rios.

7 - � imposs�vel criar um FreeBSD que n�o precise de �reas de escrita.
Essas �reas ser�o criadas utilizando o recurso de md (Memory Disks).
Para tal � preciso fazer v�rias mudan�as dentro do /etc.

        a - no arquivo rc, adicione a seguinte linha, logo ap�s a linah que
cont�m . /etc/rc.subr
        sh /etc/rc.d/rc.livecd.diskless

        b - Crie agora o arquivo livecd/etc/rc.d/rc.livecd.diskless e edite-o
da seguinte forma (voc� pode mudar o tamanho dos discos de acordo com
suas necessidades):

        #!/bin/sh

        echo -n "Swap"
        mdconfig -a -t malloc -o compress -s 20m -u 0
        swapon /dev/md0

        # /etc
        echo -n "MDfs 1"
        mdconfig -a -t malloc -o compress -s 2m -u 1
        newfs -U -O 2 md1 > /dev/null 2>&1

        # /usr/local/etc
        echo -n "MDfs 2"
        mdconfig -a -t malloc -o compress -s 1m -u 2
        newfs -U -O 2 md2 > /dev/null 2>&1

        # /var
        echo -n "MDfs 3"
        mdconfig -a -t malloc -o compress -s 2m -u 3
        newfs -U -O 2 md3 > /dev/null 2>&1

        # /etc
        echo -n "MDfs 4"
        mdconfig -a -t malloc -o compress -s 2m -u 4
        newfs -U -O 2 md4 > /dev/null 2>&1

        # montando todos os MDfs's
        mount -a

        # descompactando os arquivos dos MDfs's
        echo -n " tgz[var"
        tar -xjpf /mdfs/var.tbz -C /
        echo -n ",etc"
        tar -xjpf /mdfs/etc.tbz -C /
        echo -n ",local-etc]"
        tar -xjpf /mdfs/local-etc.tbz -C/

        echo -e "\n"

        c - Altere agora seu /etc/fstab deixando-o da seguinte forma:
        #Device         Mountpoint              FSType  Options         Dump    Pass
        /dev/acd0       /                       cd9660  ro                      0      
         0
        proc            /proc                   procfs  rw                      0      
         0
        #MDfs's
        /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

        d - se voc� precisa est� usando FreeBSD 5.x pra cima, copie o
execut�vel /sbin/rcorder para dentro de livecd/sbin/rcorder

8 - Copie do CD original o seguinte arquivo, respeitando a posi��o
dentro do livecd:
        /boot/cdboot

9 - Gere o ISO e queime o CD. Aconselho a utilizar um CD-RW, pois com
certeza algo foi deixado de fora e voc� ver� v�rios erros no primeiro
boot. Corrija-os e queime um novo CD.
Para gerar o ISO, utilize o seguinte comando:
mkisofs -b boot/cdboot -no-emul-boot -c boot/boot.catalog -r -J -V
"LiVeBSD" -o live.iso livecd

e para gravar o cd
burncd -f /dev/acd0 data live.iso fixate

10 - Tornando seu liveCD algo �til:

Voc� tem v�rias motivos para fazer um liveCD

        1 - Um firewall com regras bem definidas que n�o devem ser alteradas e
que possam ser rapidamente reativadas caso o servidor sofra um DoS,
apenas resetando ele (qualquer oreia seca pode resetar para voc�)
        2 - Uma mini-instala��o padr�o para sua rede, acrescentando um script
para transfer�ncia e ativa��o da instala��o em um HD (lembre que no caso
voc� ter� que compilar outro kernel).
        3 - Uma mini-instala��o com a qual voc� possa utilizar qualquer
computador onde quer que v�, j� com as ferramentas que voc� est�
acostumado.
        4 - Uma demo de um produto utilizando FreeBSD (ex: um sistema que
requer um servidor Apache com PHP e banco de dados MySQL)
        5 - Uma mini-instala��o com ferramentas de auditoria e recupera��o.
        6 - Tirar onda com o pessoal do Linux mostrando seu LiveCardCD (minha
micro instala��o ficou com apenas 22MB e tem de tudo: servidor web,
proxy, servidor de e-mail, firewall, vpn, suporte pra som, etc., s� n�o
tem X - ainda, hehehe, to tentando fazer a vers�o mais pequena e
rid�cula de simples existente - s� suporte vesa e coisa e tal, tipo o
Damn Small Linux)
        7 - Sei l�! Inventa!

11 - Webliografia
        http://neon1.net/misc/minibsd.html <- mostra como selecionar os
arquivos e montar a estrutura de diret�rios para o seu liveCD
        http://alf.dyndns.ws/numero3/articulo01.php <- mostra como fazer os MDs


-- 
Pablo Santiago S�nchez
==========================================
Coordenador de Desenvolvimento e Sistemas
Minist�rio das Cidades
==========================================
Microsoft: "Where do you want to go today?"
Linux: "Where do you want to go tomorrow?"
FreeBSD: "What are you doing back there? Are you coming or what?"

_______________________________________________________________
Para enviar um novo email para a lista: [EMAIL PROTECTED]
Sair da Lista: http://lists.fugspbr.org/listinfo.cgi
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/

Responder a