FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD - Criando um liveCD do FreeBSD.
Criando um liveCD do FreeBSD.
Por Pablo Santiago Sanchez   
23/09/2004

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 

Comentrios
disponibilizar .iso
Por Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo em 21/06/2006 03:00:22
Pablo, 
 
Bem que voc poderia disponibilizar esta imagem para o pessoal. 
 
Obrigado.
ProXbsd
Por Marcelo Dias em 31/03/2007 09:48:34
Cara estou num projeto de desenvolvimento de um proxy para os clientes da empresa, diponibilize o ISO de seu CDLive, OK !!!


Comente!*
Nome:
E-mail
Homepage
Ttulo:
Comentrio:

Cdigo:* Code

ltima Atualizao ( 11/06/2006 )