  Linux sin disco Mini-COMO
  Robert Nemkin, buci@math.klte.hu
  rodolfo@linux.org.uy
  v0.0.3 12 Sep 1996

  Este documento describe cmo configurar un sistema Linux sin disco.
  ______________________________________________________________________

  ndice General:

  1.      Copyright

  2.      Cambios

  3.      Cmo configurar una mquina Linux sin disco

  4.      Documentacin de referencia.

  5.      Hardware

  6.      Conceptos fundamentales

  6.1.    Configuracin del PC

  6.2.    Instalacin de bootpd  en el servidor

  6.2.1.  Configuracin de bootpd  en el servidor

  6.3.    tftp

  6.4.    Servidor. Instalacin mnima de Linux remota.

  6.5.    Configuracin 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: Grupos LiNUXeros en Espaa.
  ______________________________________________________________________

  1.  Copyright

  Los derechos de autor son propiedad de Robert Nemkin.  La poltica de
  derechos es GPL.  Deseo agradecer a Bela Kis bkis@cartan.math.klte.hu
  por traducir este documento al ingls.

  2.  Cambios

    v0.0.3 12 Sept 1996: Correccin de pequeos errores.

  3.  Cmo configurar una mquina Linux sin disco

  Este documento trata sobre cmo configurar una mquina 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 mquinas Linux sin disco/disquetera.

  4.  Documentacin de referencia.

    Raz-NFS Mini COMO

    Linux NET-2/3-HOWTO de Terry Dawson, 94004531@postoffice.csu.edu.au

    /usr/src/linux/README referido a la configuracin y compilacin de
     nuevos ncleos.

  5.  Hardware

  Para preparar este documento el sistema fue chequeado utilizando la
  siguiente configuracin:

    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 direccin IP en
  el servidor de arranque va protocolo bootp, usando 0.0.0.0 como
  direccin IP inicial y recibiendo su ncleo va el protocolo tftp.
  Arrancar a travs de segmentos (va 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 direccin del servidor.
  Refirase al manual de su encaminador para obtener ms informacin.

  Para hacer esto siga los siguientes pasos:

  6.1.  Configuracin 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 vas alternativas para preparar el PC:

    si la mquina no est totalmente exenta de discos, entonces es
     posible utilizar un pequeo programa DOS, o

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

  dd if=imagen of=/dev/fd0H1440

  Estas imgenes contienen un cliente bootp y tftp. Es necesario
  preparar tambin un ncleo de Linux, el cual tenga la opcin nfs-root
  habilitada.

    Si est usando un ncleo 1.2.13, es necesario poner al da el
     ncleo con el parche includo en el paquete nfsboot. Refirase a
     patch(1)

    Si est usando uno de los ltimos ncleos (1.3.x o superior)  tiene
     que habilitar la opcin 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 ncleo de la manera
  acostumbrada.

  6.2.  Instalacin 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, complelo e
  instlelo.  Si alguna mquina Linux tiene la distribucin Slackware,
  es posible saltarse este paso instalando la distribucin normal
  conteniendo bootpd.  El demonio se puede ejecutar directamente
  utilizando el comando

       bootpd -s

  o a travs de inetd.  En ese caso ser necesario:

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

       # 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 lneas 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.  Configuracin de bootpd  en el servidor

  Lo primero de todo: bootpd tiene un archivo de configuracin llamado
  bootptab el cual usualmente se encuentra en /etc. Debe ser modificado
  insertando la direccin IP de su pasarela, servidor de nombres y la/s
  direccin/es ethernet de su/s mquina/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 mquina, donde:

    sm: Corresponde a la Mscara de subred

    ds: Direccin del servidor de nombres (DNS)

    gw: Direccin de la pasarela por defecto

    ht: Tipo de hardware de red

    bf: Nombre del archivo de arranque

  Despus de esto, cada mquina debe tener una lnea:

    El primer campo contiene el nombre de la mquina

    hd contiene el directorio del archivo de arranque

    el archivo de esquema general debe ser includo en el campo tc

    ha contiene la direccin de hardware de la tarjeta de red

    ip contiene la direccin 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 ms 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 va
        tftp).

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

        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 raz, entonces /export pasa a ser / y el campo
        hd debe ser /root/machine1.

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

  6.4.  Servidor. Instalacin mnima de Linux remota.

  El servidor debe contener los paquetes a, ap, n y x de la distribucin
  Slackware.  No hay inconvenientes para instalar ms cosas; sin
  embargo, los paquetes mencionados son suficientes para los propsitos
  de una terminal X sin disco.

  Para la instalacin se necesita un sistema Linux funcionando.

  Buscar algo de espacio en disco para exportarlo para lectura-escritura
  en la mquina remota.

  Montar el directorio exportado en algn lugar (por ej. /mnt) sobre el
  sistema de archivos de la mquina Linux.

  Iniciar la instalacin de Linux y cambiar el lugar de instalacin de /
  a /mnt. Instalar los paquetes referidos de la forma usual. Si se desea
  correr slo un Linux sin disco no son necesarios ms cambios. De otra
  forma, si se planea utilizar ms de una mquina sin disco esta
  instalacin no funcionar ya que algunos archivos y directorios deben
  ser privados para cada mquina.  El problema puede ser solucionado
  moviendo /usr (que no contiene elementos privados) y creando
  subdirectorios separados para cada mquina sin disco.  Por ejemplo, si
  /export/linux/machine1 fue montado en /mnt entonces la estructura de
  directorios despus de la instalacin 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 despus 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 mquinas.
  Asumimos que las mquinas 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: Slo 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 continuacin (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.  Configuracin del servidor tftp

  Ahora es el momento de configurar el servidor tftp.  Si no necesita
  seguridad en el protocolo tftp todo resultar ms simple para sus
  clientes ya que arrancarn 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
  ncleo real y enlaces simblicos para las otras mquinas), 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 ncleo nico
  y enlaces simblicos para los otros. Se puede conseguir esta
  configuracin 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 lnea 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 continuacin
  pueden variar.

    Espacio en disco:  28Mb + 6.5Mb/mquina

    RAM: Yo utilizo X con 8Mb.  Para lo cual se necesita 4Mb de swap,
     el cual puede ser creado, separadamente para cada mquina, 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 extrao 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 razn fueron
     las diferencias entre el nfs de Linux y el de SunOS:  ambos
     utilizan 32 bit para el nmero de dispositivo Mayor y Menor, pero
     mientras Linux usa campos de tamao 16 bit para ambos, SunOS
     utiliza 14 bit para el Mayor y 18 bit para el nmero Menor de
     dispositivo)

    Cuando la mquina 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 mquina a mano

     2. usar un cliente bootp y escribir un macro de configuracin

  8.  Errores y posibles ampliaciones futuras de este documento

    Corrige citas de los documentos referidos

    SunOS est basado en BSD.  Necesita la inclusin de una
     configuracin 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 podra ser de
     utilidad.

    Poner al da este documento con el paquete actual etherboot.

    Mostrar las diferencias entre ncleos con nfs-root incluido como
     parche y ncleos, posteriores al 1.3.x, que ya contengan nfs-root
     como opcin.

  9.  Anexo: Grupos LiNUXeros en Espaa.

  Francisco Jos Montilla, pacopepe@iname.com, FidoNet 2:345/402.22 es
  coordinador del INSFLUG: (Impatient & Novatous Spanish Fidonet LiNUX
  Users Group) uno de los varios grupos de usuarios existentes en
  Espaa, y ms concretamente en la mejor ;-) rea de FidoNet: R34.LINUX
  junto con LuCas (LinUx en CAStellano).

  El INSFLUG se orienta preferentemente a la traduccin de documentos
  breves, como los COMOs y PUFs (-- Preguntas de Uso Frecuente, las
  FAQs. :)--) , etc.

  LuCas Coordina y realiza las traducciones de las guides, es decir,
  documentos ms extensos.

  Por supuesto, la orientacin de cada grupo no tiene carcter
  excluyente;  si quiere colaborar en las dos, mejor! ;-).

  Otra fuente de informacin obligada para el recin incorporado son las
  PUF elaboradas a partir del correo circulante por R34.LINUX por Pablo
  Gmez, pgomez@arrakis.es, 2:341/43.40, disponibles prximamente en los
  formatos habituales de documentacin (.ps, especificados ms adelante,
  as como en el mismo rea.

  Necesitamos su colaboracin para futuras traducciones! si quiere
  unirse a nosotros pngase en contacto con:

  INSFLUG: (Traduccin y autora de COMOs)

  Francisco Jos Montilla, pacopepe@iname.com, FidoNet 2:345/402.22

  LuCas:  (Traduccin y autora de guas)

  1. Juan Jos Amor, jjamor@ls.fi.upm.es, FidoNet 2:341/12.19

  2. Alfonso Belloso, alfon@bipv02.bi.ehu.es, FidoNet 2:344/17.2

  Por ltimo, recordar que un inmejorable lugar para estar informado,
  as como consultar y discutir todo lo relacionado con LiNUX lo tiene
  en FidoNet, en R34.LINUX.

  Actualmente, ambos grupos poseen las siguientes listas de correo:

    LuCas: lucas@bipv02.bi.ehu.es

    INSFLUG: insflug@nova.es

  Ambas son listas tipo majordomo; para suscribirse:

  enve un email a majordomo@nova.es, con "subscribe insflug" en el
  cuerpo del mensaje.

  En el caso de LuCAS sera a majordomo@infor.es, con "subscribe lucas"
  en el cuerpo del mensaje.

  Dispone de todos los ``COMOs'' traducidos hasta ahora, as como
  informacin puntual sobre el INSFLUG y temas relacionados en:

  http://www.insflug.nova.es en sus versiones html (-- Actualizacin
  lenta--) , y listas para bajar, en
  ftp://ftp.insflug.nova.es/es (-- Este es el lugar actualizado con ms
  frecuencia; en Sunsite y sus mirrors est replicado en el directorio

  ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/translations/es

  De todos modos, probablemente con su distribucin de Linux vengan
  incluidos.--)

  Otro buen punto de bsqueda, consulta, y obtencin de la documentacin
  traducida, en formato HTML, con links a los dems formatos, as como
  las traducciones de las guas traducidas por LuCAS es:

  http://www.infor.es/LuCAS/

  junto con su ftp:

  ftp://ftp.infor.es/pub/LuCAS/

  Tanto el INSFLUG, como LuCAS, y todos los traductores implicados,
  esperamos que esta traduccin le haya sido de utilidad.

