BSDes

ezine 3

Creación de un LiveCD basada en FreeBSD [I]

Sebastian Yepes F. (ESN)enlace_articulo01


Configuración de PostgreSQL para soporte de conexiones seguras SSL

Borja López Río (Wu)enlace_articulo02



2. Opciones de configuración

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.


3. Creando un directorio chroot e instalando el sistema en él.

	# 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
    

6. Creando el MDfs

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.

Nota: Por favor mire las paginas man de mdconfig y newfs

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