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.