4. Construyendo un sistema de archivos desde cero

Como las tarjetas compact-flash compatibles con ATA son vistas por FreeBSD como discos duros IDE estándar, en teoría se podría instalar FreeBSD desde la red usando floppies kern y mfsroot o desde un CD.

Sin embargo, incluso una pequeña instalación de FreeBSD que utilice procedimientos normales de instalación puede producir un sistema con un tamaño superior a 200 megabytes. Como la mayoría de la gente utilizará dispositivos de memoria flash más pequeños (128 megabytes se consideran razonablemente grandes - 32 o incluso 16 megabytes son comunes), una instalación utilizando mecanismos normales no será posible - simplemente no hay suficiente espacio en el disco incluso para las instalaciones convencionales más pequeñas.

La forma más fácil de superar esta limitación de espacio es instalar FreeBSD utilizando medios convencionales en un disco duro normal. Una vez finalizada la instalación, reduzca el sistema operativo a un tamaño que se ajuste a su medio flash, y comprima el sistema de archivos completo en un fichero tar. Los siguientes pasos le guiarán en el proceso de preparación de una memoria flash para su sistema de archivos comprimido en un fichero tar. Recuerde que no estamos ejecutando una instalación normal, luego las operaciones como particionado, etiquetado, creación del sistema de archivos, etc. deben ejecutarse manualmente. Además de los disquetes kern y mfsroot, también necesitará usar el disquete fixit.

  1. Particionando su dispositivo flash

    Después de arrancar con los disquetes kern y mfsroot, seleccione custom en el menú de instalación. En el menú de instalación personalizado, seleccione partition. En el menú de particiones, debe borrar todas las particiones existentes mediante la tecla d. Después de eliminar todas las particiones existentes, cree una partición utilizando la tecla c y acepte el valor predeterminado para el tamaño de la partición. Cuando se le pregunte el tipo de partición, asegúrese de que el valor esté establecido en 165. Ahora escriba la tabla de particiones en el disco presionando w (es una opción oculta en esta pantalla). Si está utilizando una tarjeta compact flash compatible con ATA, debe elegir el FreeBSD Boot Manager. Ahora presione q para salir del menú de partición. Verá de nuevo el menú del gestor de arranque - repita la opción hecha anteriormente.

  2. Creación de sistemas de archivos en su dispositivo de memoria flash

    Salga del menú de instalación personalizado y, en el menú de instalación principal, elija la opción fixit. Después de entrar en el entorno de fixit, escriba el siguiente comando:

    # disklabel -e /dev/ad0c

    En este punto, habrá accedido al editor vi guiado por el comando disklabel. A continuación, debe agregar una línea a: al final del archivo. La línea a: debería ser similar a la siguiente:

    a:      123456  0       4.2BSD  0       0

    Donde 123456 es exactamente el mismo número que la entrada c:. Básicamente, está duplicando la línea c: como a:, asegúrese de que el fstype es 4.2BSD. Guarde el archivo y ciérrelo.

    # disklabel -B -r /dev/ad0c
    # newfs /dev/ad0a
  3. Colocando su sistema de archivos en el medio flash

    Monte el medio flash recién preparado:

    # mount /dev/ad0a /flash

    Coloque esta máquina en la red para poder transferir nuestro archivo tar y extraerlo en nuestro sistema de archivos del medio flash. Un ejemplo de cómo hacerlo es:

    # ifconfig xl0 192.168.0.10 netmask 255.255.255.0
    # route add default 192.168.0.1

    Ahora que la máquina está en la red, transfiera su archivo tar. Es posible que se enfrente a un pequeño dilema en este punto - si su memoria flash tiene por ejemplo 128 megabytes, y su archivo tar tiene más de 64 megabytes, no podrá tener el archivo tar en el medio de flash al mismo tiempo que realiza la descompresión - se quedará sin espacio. Una solución a este problema, si está utilizando FTP, es descomprimir el archivo mientras se transfiere por FTP. Si realiza la transferencia de esta forma, nunca tendrá el archivo tar y los contenidos en el disco al mismo tiempo:

    ftp> get tarfile.tar "| tar xvf -"

    Si su archivo tar está comprimido en gzip, puede hacerlo de esta forma:

    ftp> get tarfile.tar "| zcat | tar xvf -"

    Una vez que el contenido de su sistema de archivos comprimido por tar está en el sistema de archivos de la memoria flash, puede desmontar la memoria flash y reiniciar:

    # cd /
    # umount /flash
    # exit

    Suponiendo que configuró correctamente su sistema de archivos cuando lo construyó en su disco duro normal, (con sus sistemas de archivos montados en modo solo lectura, y con las opciones necesarias compiladas en el kernel) ahora se debería iniciar con éxito su sistema embebido FreeBSD.

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.

Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.