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].