BSDes
ezine 3
esn@x123.info
Copyright © 2004 por Sebastian Yepes F. [ESN]
Primero debemos obtener una versión actualizada del codigo fuente de FreeBSD -CURRENT, lo cual esta explicado en el capítulo 18 del HandBook (Lo último de lo último).
Editamos el fichero /etc/make.conf y elegimos lo que queremos introducir en el LiveCD.
Recomendamos estas opciones:
CPUTYPE?= su tipo de CPU, ej: p4, k6, etc NOGAMES= true NOINFO= true NOMAN= true NOSHARE= true COMPAT4X= yes
Aviso |
* No elimine el comentario de `#COPTFLAGS= -O -pipe` o ponga cualquier tipo de optimizaciones. * Recomiendo usar el CPUTYPE?=i386 para que la LiveCD nos funcione bien en todos los modelos de CPU. |
# mkdir -p /tmp/LIVE <-- Nuestro Directorio CHROOT # cd /usr/src/etc && make distrib-dirs DESTDIR=/tmp/LIVE # cd /usr/src/etc && make distribution DESTDIR=/tmp/LIVE # cd /usr/src && make buildworld
Nota: Para que la compilación se haga mas amena podemos instalar el port sysutils/worldtools/ con el cual podemos ir viendo con mas claridad por donde va la compilación de sistema, En vez de user el comando 'cd /usr/src && make buildworld' usaremos
# cd /usr/src && make buildworld 2>&1 |tee /tmp/buildw.log |whereintheworld
Este proceso puede tardar bastante tiempo, todo depende de su hardware, en mi Intel Penitum 4 Mobile a 2.4 Ghz tarda unos 35 minutos asi que puede irse mientras a tomar un cafe ;-)
Ahora que ya esta aqui otra vez... ya estamos preparados para instalar el sistema base en el directorio del chroot.
# cd /usr/src && make installworld DESTDIR=/tmp/LIVE
# cd /usr/src/sys/i386/conf # cp GENERIC LIVE_KERN # cp GENERIC.hints LIVE_KERN.hints
Edite LIVE_KERN y configurelo según sus necesidades
Importante: Es imprescindible tener estas opciones:
options CD9660 options ROOTDEVNAME=\"cd9660:acd0\" device md
Si nunca ha configurado un kernel y no sabe como hacerlo puede mirar el capítulo 8 del HandBook (Configurando el Kernel de FreeBSD).
Una vez terminado el proceso de configuración del kernel, es momento para compilarlo.
# cp LIVE_KERN.hints /boot/device.hints # cd /usr/src # make buildkernel KERNCONF=LIVE_KERN ... .. Compilando ... ... # make installkernel KERNCONF=LIVE_KERN DESTDIR=/tmp/LIVE
# cd /etc # cd /boot # cd /root
Edite los ficheros de configuracion que necesite, por ejemplo: rc.conf, resolv.conf, .bashrc, etc.
Si se esta preguntando que es un mdfs, es un Memory File System (sistema de ficheros en memoria), sobre el cual vamos a tener todos los ficheros de nuestro LiveCD que necesiten tener acceso de lectura y escritura.
Por ejemplo: /etc/*, /tmp/*, si necesitas mas información sobre este tipo de sistemas de ficheros mira el capitulo 12.10 del HandBook.
Necesitaremos montar y extraer los tars al mdfs cuando el sistema arranque, para conseguir esto tenemos que añadir al fichero: /etc/rc estas tres lineas.
-- @@ -52,6 +52,13 @@ . /etc/rc.subr + +if [ -r /etc/rc.mdfs ]; then + sh /etc/rc.mdfs +fi + ---
Edite /etc/rc.mdfs , /etc/fstab y cree los mdfs, creamos los sistemas de ficheros con newfs, los montamos y extraemos los tars a sus respectivos mdfs.
Mi /etc/rc.mdfs#!/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 ",3" mdconfig -a -t malloc -o compress -s 2m -u 3 newfs -U -O 2 md3 >/dev/null 2>&1 # /root echo -n ",4" mdconfig -a -t malloc -o compress -s 1m -u 4 newfs -U -O 2 md4 >/dev/null 2>&1 # /tmp echo -n ",5]" mdconfig -a -t malloc -o compress -s 1m -u 5 newfs -U -O 2 md5 >/dev/null 2>&1 # montando todos los MDfs mount -a # unTaring.. files to MDfs's echo -n " tgz[var" tar xjpf /mdfs/var.bz2 -C / echo -n ",etc" tar xjpf /mdfs/etc.bz2 -C / echo -n ",etc-local" tar xjpf /mdfs/etc-local.bz2 -C / echo -n ",root]" tar xjpf /mdfs/root.bz2 -C / echo -e "\n"y mi /etc/fstab:
# Device Mountpoint FStype Options Dump Pass# /dev/acd0 / cd9660 ro 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 /dev/md5 /tmp ufs rw 0 0
Una vez configurados todos los ficheros es momento de meter en un tar todos los directorios necesarios:
# cd /tmp/LIVE # mkdir mdfs # tar cjpf mdfs/etc.bz2 etc # tar cjpf mdfs/etc-local.bz2 usr/local/etc # tar cjpf mdfs/root.bz2 root # tar cjpf mdfs/var.bz2 var
Para esto necesitamos tener instalado el por sysutils/mkiosfs
# cd /tmp/LIVE # mkisofs -b boot/cdboot -no-emul-boot -c boot/boot.catalog \ -r -J -V "LiVeBSD" -o /tmp/live.iso .
Ahora que tenemos la iSO del LiveCD, es un buen momento para grabarla en un cdrom y asi poderla utilizar:
Agradeceria recomendaciones, correcciones, comentarios y sugerencias sobre este Mini-HowTo y para nuevas versiones de este.
De momento tengo pensado explicar como realizar la instalacion de Ports en nuestra LiveCD y un poco como monte un FW usando el Modulo de PF.