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.