Siguiente Anterior Contenidos

10. Creando los scripts iniciales de arranque

10.1 Preparando los directorios y ficheros maestros

Es necesario el paquete Sysvinit para completar esta sección.

Crea los directorios apropiados con los comandos:

   cd /etc
   mkdir rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d init.d rcS.d
 

   #!/bin/sh
   # Begin /etc/init.d/rcS
   
   runlevel=S
   prelevel=N
   umask 022
   export runlevel prevlevel
 
   trap ":" INT QUIT TSTP
   
   for i in /etc/rcS.d/S??*
   do
      if [ ! -f  "$i" ] && continue
      $i start
   done
 
   # End /etc/init.d/rcS
 

10.2 Creando el script de reinicio

   #!/bin/sh
   # Begin /etc/init.d/reboot
  
   echo -n "Reiniciando el sistema..."
   
   /sbin/reboot -d -f -i
 
   # End /etc/init.d/reboot
 

10.3 Creando el script de parada

   #!/bin/sh
   # Begin /etc/init.d/halt
 
   /sbin/halt -d -f -i -p
 
   # End /etc/init.d/halt
 

10.4 Creando el script mountfs

#!/bin/sh
# Begin /etc/init.d/mountfs
 
check_status()
{
  if [ $? = 0 ]
  then
    echo "OK"
  else
    echo "FALLO"
  fi
}
 
echo -n "Montando el sistema de ficheros raíz en modo lectura/escritura..."
/sbin/mount -n -o remount,rw /
check_status
 
> /etc/mtab
/sbin/mount -f -o remount,rw /
 
echo -n "Montando el sistema de ficheros proc..."
/sbin/mount proc
check_status
 
# End /etc/init.d/mountfs
 

10.5 Creando el script umountfs

#!/bin/sh
# Begin /etc/init.d/umountfs
 
check_status()
{
  if [ $? = 0 ]
  then
    echo "OK"
  else
    echo "FALLO"
  fi
} 
echo -n "Desmontando sistemas de ficheros..."
/sbin/umount -a -r 
check_status
 
echo -n "Montando el sistema de ficheros raíz en modo sólo lectura..."
/sbin/mount -o remount,ro /
check_status
 
# End /etc/init.d/umountfs
 

10.6 Creando el script sendsignals

#!/bin/sh
# Begin /etc/init.d/sendsignals
 
check_status()
{
  if [ $? = 0 ]
  then
    echo "OK"
  else
    echo "FALLO"
  fi
}
echo -n "Enviando a todos los procesos la señal TERM..."
/sbin/killall5 -15
check_status
 
echo -n "Enviando a todos los procesos la señal KILL..."
/sbin/killall5 -9
check_status
 

10.7 Establecer permisos y crear enlaces simbólicos

   cd ../rc6.d; ln -s ../init.d/umountfs S90umountfs
   ln -s ../init.d/reboot S99reboot
   ln -s ../init.d/sendsignals S80sendsignals
 
   cd ../rc0.d; ln -s ../init.d/umountfs S90umountfs
   ln -s ../init.d/halt S99halt
   ln -s ../init.d/sendsignals S80sendsignals
 
   cd ../rcS.d; ln -s ../init.d/mountfs S10mountfs
 

10.8 Creando el fichero /etc/fstab

   /dev/<LFS-partition device> / ext2 defaults 0 1
   /dev/<swap-partition device> none swap sw 0 0
   proc /proc proc defaults 0 0
 

10.9 Probando el sistema

Puedes probar el sistema reiniciando el ordenador y arrancando de nuevo con LFS. Cualquier error que hubiese debería haber desaparecido, y la partición raíz debería haberse montado en modo lectura-escritura de forma automática.

A modo de prueba final, deberías poder reiniciar el ordenador con el comando shutdown -r now


Siguiente Anterior Contenidos