Recebemos um howto de
Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo
ensinando como criar um LiveCD do FreeBSD. O documento demonstra a preparação prévia necessária, a estrutura (árvore) de diretório a ser criada, opções de kernel, e da ainda algumas dicas complementares para você criar seu próprio Live CD manualmente. Espero que vocês gostem.
1. Preparação
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
|--mdfs
|--mnt
|--modules
|--proc
|--root
|--sbin
|--tmp -> /var/tm
|--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 diretório 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 diretrios (ex: tar -jcpf
var.tbz /var) e coloque os arquivos tbz
dentro do diretório /mdfs. Os diretórios que
devem ser compactados são o /etc, /usr/local/etc
e /var (caso tenha configurações definidas
para o root, compacte também o /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. É 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.
2. Memory Disks (MDs)
1 - É 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 linha 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
(lembre-se de tar permissão de execução
ao mesmo) e edite-o da seguinte forma:
#!/bin/sh
# swap
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:
/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
d - se você está usando FreeBSD 5.x pra
cima, copie o executável /sbin/rcorder
para dentro de livecd/sbin/rcorder
3. CD Bootável
Copie do CD original o seguinte arquivo,
respeitando a posição dentro do livecd:
/boot/cdboot => livecd/boot/cdboot
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 até que tudo esteja em ordem.
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
4. Notas Finais
- Tornando seu liveCD útil:
Você tem vários motivos para fazer um liveCD.
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 voce)
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 voce)
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 removendo o root do HD).
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
a usar.
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, estou 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!
5. Webliografia
http://neon1.net/misc/minibsd.html
http://alf.dyndns.ws/numero3/articulo01.php |