Linux sin disco Mini-COMO
 Robert Nemkin, [email protected]
 [email protected]
 v0.0.3 12 Sep 1996

 Este documento describe c�mo configurar un sistema Linux sin disco.
 ______________________________________________________________________

 �ndice General:

 1.      Copyright

 2.      Cambios

 3.      C�mo configurar una m�quina Linux sin disco

 4.      Documentaci�n de referencia.

 5.      Hardware

 6.      Conceptos fundamentales

 6.1.    Configuraci�n del PC

 6.2.    Instalaci�n de bootpd  en el servidor

 6.2.1.  Configuraci�n de bootpd  en el servidor

 6.3.    tftp

 6.4.    Servidor. Instalaci�n m�nima de Linux remota.

 6.5.    Configuraci�n del servidor tftp

 6.6.    �ltimos retoques

 6.7.    Requerimientos de memoria y espacio en disco; velocidad

 7.      Posibles errores

 8.      Errores y posibles ampliaciones futuras de este documento

 9.      Anexo: El INSFLUG
 ______________________________________________________________________

 1.  Copyright

 Los derechos de autor son propiedad de Robert Nemkin.  La pol�tica de
 derechos es GPL.  Deseo agradecer a Bela Kis [email protected]
 por traducir este documento al ingl�s.

 2.  Cambios

 �  v0.0.3 12 Sept 1996: Correcci�n de peque�os errores.

 3.  C�mo configurar una m�quina Linux sin disco

 Este documento trata sobre c�mo configurar una m�quina Linux sin
 disco.  Algunas veces puede ser necesario correr Linux en PCs que no
 tienen ni discos ni disqueteras.  Esto es posible, por ejemplo, en red
 con otro sistema Unix corriendo bootp, tftp y servidor NFS, y una
 EPROM (burner) en las m�quinas Linux sin disco/disquetera.

 4.  Documentaci�n de referencia.

 �  Ra�z-NFS Mini COMO

 �  Linux NET-2/3-HOWTO de Terry Dawson, [email protected]

 �  /usr/src/linux/README referido a la configuraci�n y compilaci�n de
    nuevos n�cleos.

 5.  Hardware

 Para preparar este documento el sistema fue chequeado utilizando la
 siguiente configuraci�n:

 �  Sun-OS 4.1.3 como servidor de arranque

 �  Slackware 2.3 + Linux 1.2.8 + Tarjeta ethernet Western Digital 8013

 �  Red Ethernet

 6.  Conceptos fundamentales

 La idea fundamental es la siguiente:  el PC buscar� su direcci�n IP en
 el servidor de arranque v�a protocolo bootp, usando 0.0.0.0 como
 direcci�n IP inicial y recibiendo su n�cleo v�a el protocolo tftp.
 Arrancar a trav�s de segmentos (v�a un router o encaminador) no es
 simple: se puede o bien colocar ambos, servidor y las computadoras sin
 disco, en el mismo segmento de red o configurar un asistente de
 direcciones UDP en su encaminador hacia la direcci�n del servidor.
 Refi�rase al manual de su encaminador para obtener m�s informaci�n.

 Para hacer esto siga los siguientes pasos:

 6.1.  Configuraci�n del PC

 Instale el paquete nfsboot (el paquete estar� disponible en su
 servidor Linux favorito en el directorio /pub/Linux/system/Linux-
 boot). Este paquete contiene la imagen de una EPROM de arranque para
 la tarjeta wd8013 que puede ser grabada directamente.

 Existen varias v�as alternativas para preparar el PC:

 �  si la m�quina no est� totalmente exenta de discos, entonces es
    posible utilizar un peque�o programa DOS, o

 �  la imagen binaria del disquete contenida en el mismo paquete.  Si
    elije esta �ltima opci�n puede escribir la imagen en el disquete
    con el comando dd:

 dd if=imagen of=/dev/fd0H1440

 Estas im�genes contienen un cliente bootp y tftp. Es necesario
 preparar tambi�n un n�cleo de Linux, el cual tenga la opci�n nfs-root
 habilitada.

 �  Si est� usando un n�cleo 1.2.13, es necesario poner al d�a el
    n�cleo con el parche inclu�do en el paquete nfsboot. Refi�rase a
    patch(1)

 �  Si est� usando uno de los �ltimos n�cleos (1.3.x o superior)  tiene
    que habilitar la opci�n nfs-root.

 Puede o no configurar soporte para dispositivos de sistemas de archivo
 (disquetes o discos duros), pero es obligatorio habilitar soporte
 TCP/IP, soporte para tarjeta ethernet y soporte de sistema de archivos
 nfs. Y, una vez realizado esto, recompilar el n�cleo de la manera
 acostumbrada.

 6.2.  Instalaci�n de bootpd  en el servidor

 Bootpd puede encontrarse en el paquete bootpd-2.4.tar.gz (el cual se
 obtiene de su servidor favorito de software Linux en el directorio
 /pub/Linux/system/Network/boot.net).  Obtenga el paquete, comp�lelo e
 inst�lelo.  Si alguna m�quina Linux tiene la distribuci�n Slackware,
 es posible saltarse este paso instalando la distribuci�n normal
 conteniendo bootpd.  El demonio se puede ejecutar directamente
 utilizando el comando

      bootpd -s

 o a trav�s de inetd.  En ese caso ser� necesario:

 1. editar /etc/inetd.conf, eliminando la marca de comentario (#) de
    las siguientes l�neas:

      # tftp    dgram  udp  wait  root  /usr/sbin/in.tftpd   tftpd   /ex
      # bootps  dgram  udp  wait  root  /usr/sbin/in.bootpd  bootpd

 2. inserte o descomente las siguientes dos l�neas en el archivo
    /etc/services:

              bootps          67/tcp          # BOOTP server
              tftp            69/udp          # TFTP server

 3. reiniciar inetd usando

      kill -HUP PID_de_inetd

 6.2.1.  Configuraci�n de bootpd  en el servidor

 Lo primero de todo: bootpd tiene un archivo de configuraci�n llamado
 bootptab el cual usualmente se encuentra en /etc. Debe ser modificado
 insertando la direcci�n IP de su pasarela, servidor de nombres y la/s
 direcci�n/es ethernet de su/s m�quina/s sin disco.  Un ejemplo de
 /etc/bootptab:

       global.prof:\
           :sm=255.255.255.0:\
           :ds=192.168.1.5:\
           :gw=192.168.1.19:\
           :ht=ethernet:\
           :bf=linux:
       machine1:hd=/export/root/machine1:tc=global.prof:ha=0000c0863d7a:ip=192.1
       machine2:hd=/export/root/machine2:tc=global.prof:ha=0800110244e1:ip=192.1
       machine3:hd=/export/root/machine3:tc=global.prof:ha=0800110244de:ip=192.1

 �  global.prof: Archivo de esquema general para las configuraciones de
    cada m�quina, donde:

 �  sm: Corresponde a la M�scara de subred

 �  ds: Direcci�n del servidor de nombres (DNS)

 �  gw: Direcci�n de la pasarela por defecto

 �  ht: Tipo de hardware de red

 �  bf: Nombre del archivo de arranque

 Despu�s de esto, cada m�quina debe tener una l�nea:

 �  El primer campo contiene el nombre de la m�quina

 �  hd contiene el directorio del archivo de arranque

 �  el archivo de esquema general debe ser inclu�do en el campo tc

 �  ha contiene la direcci�n de hardware de la tarjeta de red

 �  ip contiene la direcci�n ip que se asigna

 6.3.  tftp

 TFTP (Trivial File Transfer Protocol) es un protocolo de transferencia
 de archivos, como lo es ftp, pero mucho m�s simple, a fin de que quepa
 en las EPROMs.  TFTP puede ser usado de dos maneras:

    tftp simple:
       El cliente puede acceder a la totalidad de su sistema de
       archivos.  Es simple pero puede generar un gran problema de
       seguridad (cualquiera puede obtener su archivo de claves v�a
       tftp).

    tftp seguro:
       El servidor tftp utiliza un llamada de sistema chroot.2 para
       cambiar a su propio directorio ra�z.  Cualquier cosa que est�
       fuera del nuevo directorio ra�z es completamente inaccesible, ya
       que el directorio que sufre el chroot se transforma en el nuevo
       directorio ra�z;  el campo hd del archivo bootptab debe reflejar
       esta nueva situaci�n.

       Por ejemplo:  cuando se utiliza tftp simple, el campo hd
       contiene el path o camino completo del directorio de arranque:
       /export/root/machine1. Cuando se utiliza tftp seguro con /export
       como directorio ra�z, entonces /export pasa a ser / y el campo
       hd debe ser /root/machine1.

 Asimismo, cada implementaci�n Unix contiene el servidor tftp y,
 probablemente, no sea necesario que Usted instale su propio servidor.

 6.4.  Servidor. Instalaci�n m�nima de Linux remota.

 El servidor debe contener los paquetes a, ap, n y x de la distribuci�n
 Slackware.  No hay inconvenientes para instalar m�s cosas; sin
 embargo, los paquetes mencionados son suficientes para los prop�sitos
 de una terminal X sin disco.

 Para la instalaci�n se necesita un sistema Linux funcionando.

 Buscar algo de espacio en disco para exportarlo para lectura-escritura
 en la m�quina remota.

 Montar el directorio exportado en alg�n lugar (por ej. /mnt) sobre el
 sistema de archivos de la m�quina Linux.

 Iniciar la instalaci�n de Linux y cambiar el lugar de instalaci�n de /
 a /mnt. Instalar los paquetes referidos de la forma usual. Si se desea
 correr s�lo un Linux sin disco no son necesarios m�s cambios. De otra
 forma, si se planea utilizar m�s de una m�quina sin disco esta
 instalaci�n no funcionar� ya que algunos archivos y directorios deben
 ser privados para cada m�quina.  El problema puede ser solucionado
 moviendo /usr (que no contiene elementos privados) y creando
 subdirectorios separados para cada m�quina sin disco.  Por ejemplo, si
 /export/linux/machine1 fue montado en /mnt entonces la estructura de
 directorios despu�s de la instalaci�n inicial se ver� as�:

 /export/linux/machine1/bin
 /export/linux/machine1/sbin
 /export/linux/machine1/lib
 /export/linux/machine1/etc
 /export/linux/machine1/var
 /export/linux/machine1/usr

 Y despu�s de los cambios debe de quedar:

      /export/linux/machine1/bin
      /export/linux/machine1/sbin
      /export/linux/machine1/lib
      /export/linux/machine1/etc
      /export/linux/machine1/var
      /export/linux/usr

 Ahora es posible crear los subdirectorios para las otras m�quinas.
 Asumimos que las m�quinas sin disco son llamadas machine1, machine2,
 machine3, etc.; puede utilizar el siguiente macro de bash para
 instalar los otros directorios:

              cd /export/linux
              for x in machine2 machine3 ; do
                      mkdir $x; cd $x
                      (cd ../machine1; tar cf - *) | tar xvf -
              done

 Una vez hecho esto, realice las siguientes exportaciones:

 �  /export/linux/usr: S�lo lectura para todo el mundo

 �  /export/linux/machine1: Solamente para machine1 con permisos
    rw,root

 �  /export/linux/machine2: Solamente para machine2 con derechos
    rw,root

 �  /export/linux/machine3: Solamente para machine3 con derechos
    rw,root

 como se indica a continuaci�n (el formato de este ejemplo est� en la
 sintaxis de SunOs 4.1.3 para export)

         # Este archivo es /etc/export
         # para terminales X con Linux remotas
         # La siguiente linea es una unica:
         /etc/root/usr                   -access=linuxnet
         # Las siguientes lineas corresponden a una por cada maquina
         /export/root/machine1           rw=machine1,root=machine1
         /export/root/machine2           rw=machine2,root=machine2
         /export/root/machine3           rw=machine3,root=machine3

 No olvidar ejecutar exportfs -a

 6.5.  Configuraci�n del servidor tftp

 Ahora es el momento de configurar el servidor tftp.  Si no necesita
 seguridad en el protocolo tftp todo resultar� m�s simple para sus
 clientes ya que arrancar�n desde el directorio /export.

 Si utiliza seguridad con el protocolo tftp entonces se debe crear una
 estructura de directorio completa /export/linux bajo /tftpboot (con un
 n�cleo real y enlaces simb�licos para las otras m�quinas), o dejar que
 el directorio /export sea el directorio de arranque para el tftp
 seguro.  O, si dispone de un directorio tftpboot separado necesita, de
 igual forma, la estructura de directorios original con un n�cleo �nico
 y enlaces simb�licos para los otros. Se puede conseguir esta
 configuraci�n ejecutando lo siguiente:

      mkdir -p /tftpboot/export/linux/machine1
      cd /tftpboot/export/linux/machine1
      cp /export/linux/machine1/nombre_del_nucleo

 Teclee lo siguiente:

      mkdir -p /tftpboot/export/linux/machine2
      cd ../machine2
      ln -s ../machine1/nombre_del_nucleo

 6.6.  �ltimos retoques

 Para terminar, se debe insertar:

      /sbin/mount nombre_servidor_nfs:/export/linux/usr /usr

 como la primera l�nea de

      /export/linux/machineX/etc/rc.d/rc.S

 6.7.  Requerimientos de memoria y espacio en disco; velocidad

 Todo lo indicado ha sido comprobado �nicamente con Slackware 2.3; para
 otras distribuciones/versiones los datos que se indican a continuaci�n
 pueden variar.

 �  Espacio en disco:  28Mb + 6.5Mb/m�quina

 �  RAM: Yo utilizo X con 8Mb.  Para lo cual se necesita 4Mb de swap,
    el cual puede ser creado, separadamente para cada m�quina, mediante
    un fichero de swap en el directorio /tmp.  No olvide ponerlo a
    punto con mkswap y swapon.

 �  Velocidad: No he tenido problemas con un 486 DX2/66 con 8 Mb.

 7.  Posibles errores

 �  Me encontr� con un extra�o error:  SunOS corrompi� los dispositivos
    del directorio /dev, por lo que me fue necesario ejecutar MAKEDEV
    montando los subdirectorios en un disco con Linux (La raz�n fueron
    las diferencias entre el nfs de Linux y el de SunOS:  ambos
    utilizan 32 bit para el n�mero de dispositivo Mayor y Menor, pero
    mientras Linux usa campos de tama�o 16 bit para ambos, SunOS
    utiliza 14 bit para el Mayor y 18 bit para el n�mero Menor de
    dispositivo)

 �  Cuando la m�quina Linux sin disco comienza el arranque, existe
    solamente una ruta incluida en la tabla de rutas del servidor tftp,
    por lo que es necesario configurar una tabla correcta de rutado; se
    disponen de dos opciones:

    1. configurar el fichero rc.S para cada m�quina a mano

    2. usar un cliente bootp y escribir un macro de configuraci�n

 8.  Errores y posibles ampliaciones futuras de este documento

 �  Corrige citas de los documentos referidos

 �  SunOS est� basado en BSD.  Necesita la inclusi�n de una
    configuraci�n basada en SVR4 (por ej. Solaris).

 �  Ya que Linux es muy semejante a SunOS en sus servidores bootp y
    tftp, el ejemplo de servidor basado en Linux podr�a ser de
    utilidad.

 �  Poner al d�a este documento con el paquete actual etherboot.

 �  Mostrar las diferencias entre n�cleos con nfs-root incluido como
    parche y n�cleos, posteriores al 1.3.x, que ya contengan nfs-root
    como opci�n.

 9.  Anexo: El INSFLUG

 El INSFLUG forma parte del grupo internacional Linux Documentation
 Project, encarg�ndose de las traducciones al castellano de los Howtos
 (Comos), as� como la producci�n de documentos originales en aquellos
 casos en los que no existe an�logo en ingl�s.

 En el INSFLUG se orienta preferentemente a la traducci�n de documentos
 breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs.
 :) ), etc.

 Dir�jase a la sede del INSFLUG para m�s informaci�n al respecto.

 En la sede del INSFLUG encontrar� siempre las �ltimas versiones de las
 traducciones:  www.insflug.org. Aseg�rese de comprobar cu�l es la
 �ltima versi�n disponible en el Insflug antes de bajar un documento de
 un servidor r�plica.

 Se proporciona tambi�n una lista de los servidores r�plica (mirror)
 del Insflug m�s cercanos a Vd., e informaci�n relativa a otros
 recursos en castellano.

 Francisco Jos� Montilla, [email protected].