Arrancar GNU/Linux desde una llave USB Imprimir
SOFTWARE - General
Miércoles, 21 de Febrero de 2007 15:38
En este artículo explicamos como llevar una distribución liveCD basada en Linux a una llave ,arrancar desde ella y operar directamente sobre la llave…...

Arrancar GNU/Linux desde una llave USB

 

 

0.- Introducción

Un liveCD permite ejecutar un sistema operativo desde un medio de almacenamiento, normalmente CD-ROM, de forma temporal. Generalmente para permitirlo, se descomprime una parte del sistema en la memoria RAM del ordenador y la usa como disco duro virtual, sin necesidad de una instalación.

En este artículo explicamos como llevar una distribución liveCD basada en Linux a una llave USB (también conocidas como USB drives, discos USB o memorias USB), arrancar desde ella y operar directamente sobre la llave sin la necesidad de un disco duro. Eso sí, sólo funciona en ordenadores que puedan arrancar desde dispositivos USB, algo que empieza a ser común pero que no encontraréis en ordenadores más antiguos.

1.- ¿Qué es Linux?

Linux se trata de un clon gratuito del sistema operativo Unix que fue escrito desde cero y desarrollado inicialmente por un estudiante universitario finlandés y posteriormente, por numerosas personas repartidas por todo el Mundo.

Desde sus orígenes hasta la actualidad cada vez son más personas las que participan libremente en su crecimiento y mejora.

1.1.- Diferencias entre GNU/Linux y Linux

Un sistema operativo consiste en varios programas fundamentales que necesitan el ordenador para poder comunicar y recibir instrucciones de los usuarios, leer y escribir datos en el disco duro, controlar el uso de la memoria, y ejecutar otros programas.

La parte más importante de un sistema operativo es el núcleo. En un sistema GNU/Linux, Linux es el componente del núcleo. El resto del sistema consiste en otros programas, muchos de los cuales han sido escritos por o para el proyecto GNU. Dado que el núcleo de Linux en si mismo no forma un sistema operativo funcional, preferimos utilizar el término “GNU/Linux” para referirnos a los sistemas que la mayor parte de las personas llaman de manera informal “Linux”.

1.2.- Orígenes

Linus Torvalds, estudiante de la Universidad de Helsinki, comenzó un proyecto para suministrar una alternativa al sistema operativo Minix, creado por Andrew Tanenbaum en 1987. Mas tarde, este mismo proyecto evolucionó y Torvalds decide crear en el verano de 1991 su propio núcleo para un nuevo sistema operativo, Linux. Su idea era crear un Unix (sistema operativo propietario) para PC, para que todos los que quisieran lo pudieran utilizar en su ordenador.

Linus Torvalds

1.3.- Proyecto GNU y la FSF

El proyecto GNU fue concebido por Richard Stallman en 1983 con el objetivo de crear un sistema operativo completo libre y principalmente, como una forma de devolver el espíritu cooperativo que prevalecía en la comunidad computacional en días pasados y, hacer lo posible para eliminar los obstáculos impuestos por los dueños de software propietario.

Posteriormente, en 1985, Stallman creó la Free Software Foundation (FSF o Fundación del Software Libre) para proveer soportes logísticos, legales y financieros al proyecto GNU.

Richard Stallman

Logo de GNU

1.4.- Linux y GNU

Linux ha sido registrado bajo los términos de la Licencia Pública General (GNU General Public License) o GPL. Esta licencia está diseñada para evitar que alguna persona restrinja la distribución del software. Por ejemplo, si alguien cobra por una copia de Linux, ese alguien no podrá impedir que la copia que ha vendido se distribuya gratuitamente. Además, cualquier software registrado con la licencia GNU deberá tener disponible su código fuente.

En definitiva, cualquiera puede modificar Linux y aún distribuir sus modificaciones, siempre que mantenga el código bajo la misma licencia.

2.- Distribución Slax

Slax es una distribución liveCD que contiene el sistema operativo Linux. Esta está pensada para arrancar Linux “desde donde quieras”, desde el ordenador del trabajo, de tu casa, etc. Este liveCD de origen checo está basado en Slackware (distribución completa Linux) con las siguientes características*:

·        KDE versión 3.4 como escritorio por defecto.

·        Targz (tgz o tarballs, archivos empaquetados con tar y comprimidos con gzip o GNU ZIP) como administrador de paquetes.

·        KOffice versión 1.4 como suite de oficina.

·        i386 como arquitectura del procesador.

·        versión 2.6 del kernel o núcleo.

·        k3b como programa de grabación de CDs/DVDs.

·        OpenSSH versión 4.1 (protocolo para acceder a máquinas remotas a través de una red de forma segura).

·        Samba versión 3.0.14 (Programa que "imita" el protocolo de archivos compartidos de Microsoft Windows para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con Linux se vean como servidores o actúen como clientes en redes de Windows).

·        Alsa versión 1.0.9 (Advanced Linux Sound Architecture, drivers para las tarjetas de sonido).

·        Soporte para tarjetas Wi-Fi (Wireless Fidelity, es un conjunto de estándares para redes inalámbricas basado en las especificaciones IEEE 802.11.)

·        Sistema de ficheros unionfs (ver apartado 2.3).

·        Navegador Web Konqueror y Firefox.

·        ThunderBird como cliente de correo.

·        Reproductor de música KPlayer.

*depende de la versión de Slax

2.1.- Sistema de ficheros UnionFS

Normalmente, una distribución liveCD monta los directorios /home, /var y /tmp con permisos de lectura/escrituta en ramdisk (partición de la memoria RAM utilizada como disco duro virtual para el sistema operativo), mientras que el resto de directorios son montados con permisos sólo de lectura ubicados en el CD-ROM. Con esto, deducimos que no se pueden realizar tareas de actualización, instalación o borrado de aplicaciones o programas ya que, para ello necesitamos escribir/borrar sobre directorios como /usr o /etc.

Con unionfs no ocurre esto. Unionfs es un sistema virtual de ficheros que permite unir de manera transparente los datos de diferentes soportes, mientras que mantiene su contenido físico separado. Unionfs posibilita el uso conjunto de sistemas ficheros con permisos sólo de lectura con sistemas ficheros con permisos de lectura/escritura.

En la práctica todo el sistema, aunque esté en el CD-ROM (o en este caso en la llave USB), es “escribible”.

Sistema de ficheros de Slax

/(initrd, 4MB)

|

|---- /memory(tmpfs, 80% of RAM)

| |-- images

| | |-- base.mo <--loop--+

| | | |-- bin |

| | | |-- usr |

| | | +-- var |

| | | |

| | |-- xwindow.mo <-loop------+

| | | |-- etc | |

| | | |-- usr | |

| | | +-- var | |

| | | | |

| | +-- kde.mo <-loop----------+

| | |-- opt | | |

| | |-- usr | | |

| | +-- var | | |

| | | | |

| +-- changes | | |

| | | |

+---- /union | | |

|---- /mnt/cdrom | | |

| |--- base.mo -----+ | |

| |--- xwindow.mo ------+ |

| +--- kde.mo --------------+

+---- /mnt/live

Aquí “entra en juego” la potencia de Slax. Imaginemos que hemos instalado iptraf (programa que monitoriza las conexiones IP en tiempo real) en nuestro liveCD y bien, funciona perfectamente (recordemos que en la mayoría de distribuciones liveCDs no podríamos instalarlo); pero cuando apaguemos el ordenador, perderemos la instalación de este programa ya que, aunque sea transparente para nosotros, el disco duro es realmente la memoria RAM. Ante este problema, los desarrolladores de Slax "inventan" webconfig (ver apartado siguiente).

2.2.- Webconfig.

Grabar la configuración de Slax en la Web.

Como se ha mencionado antes, en un sistema liveCD todo lo que tú modifiques, crees o descargues se mantendrá en memoria RAM (ramdisk) hasta que apagues el ordenador.

Slax presenta una utilidad llamada webconfig que guarda todos los cambios realizados durante una sesión en un archivo (slaxconf.mo, ubicado en /mnt/live/memory/) para posteriormente obtenerlo y, utilizar Slax como lo habías dejado la última vez. Pero, ¿cómo lo hace?.

Por medio de los siguientes comandos restauramos o grabamos las configuraciones y modificaciones:

·        Cuando arranque la distribución, añadir la siguiente línea :

boot: slax webconfig=password

donde password debe ser una contraseña a nuestra elección de al menos 10 caracteres. A partir de aquí, cada vez que queramos volver a la misma sesión, utilizaremos la misma password.

o

boot: slax webconfig=ask

para que nos pregunte por la contraseña durante el proceso de arranque y el reinicio de Slax.

Con estas dos sentencias, se restaura la sesión (si ha sido grabada anteriormente) en el arranque y, se graba la misma en el proceso de apagado del sistema.

Y para restaurar y salvar los cambios de forma manual:

·        Para grabar, escribimos desde el intérprete de comandos:

root@myHost: ~# websave [password]

saving changes t oto /mnt/live/memory/slaxconf.mo...

Uploading Web configuration (24576 bytes)...

·        Para obtener información sobre la última sesión grabada, como la fecha, el tamaño, dirección IP, etc. ejecutamos desde la shell:

root@myHost: ~# webinfo [password]

SLAX web configuration

Uploaded: Thu, 03 Nov 2005 10:31:25 +0100

From: XXX.XX.XXX.XXX (XXX.pntic.mec.es)

Size: 1712128 bytes

·        Para restaurar u obtener los cambios, ejecutamos desde la shell:

root@myHost: ~# webrestore [password]

Downloading web configuration...

restoring changes from /mnt/live/memory/slaxconf.mo...

New generation 11

Cada vez que grabamos o restauramos una sesión, Slax se encarga de “subir o bajar” los datos necesarios.

IMPORTANTE. Webconfig tiene algunas limitaciones:

·        El password debe tener como mínimo 10 caracteres.

·        Como máximo se guardaran 8MB de datos por cada sesión.

·        Podemos tener varias sesiones guardadas, simplemente cambiando el password en el arranque.

·        La lista de los directorios (incluyendo sus archivos) que son guardados y restaurados son /home, /etc, /root y /var (excepto /var/log y /var/run por seguridad)

Los requisitos para utilizar webconfig son:

·        Versión 5.0 o posterior de Slax.

·        Tener conexión a Internet por supuesto.

·        Establecer una password de un mínimo de 10 caracteres sino, no funcionará.

En definitiva, gracias a webconfig y unionfs, podemos arrancar Slax desde cualquier ordenador del mundo y con la última configuración guardada del mismo. Eso si, el PC debe tener conexión a Internet necesariamente.

Podemos ver toda la información completa en:

http://slax.linux-live.org/webconfig.php

2.3.- Versiones Slax

Desde la página principal de Slax (http://slax.linux-live.org/download.php) nos podemos descargar varias versiones de este sistema operativo. La elección entre unas u otras depende sobretodo de la capacidad de nuestra llave USB.

Las diferencias entre ellas son las siguientes:

·        SLAX Standard Edition v 5.0.6, incluye sistema XWindow* con el entorno de escritorio KDE. Ocupa 177 MB.

·        SLAX KillBill Edition v 5.0.6, contiene KDE, Wine (WINdows Emulator ó programa emulador de aplicaciones Windows bajo sistemas Linux), DOSBox (emulador del sistema operativo MS-Dos para Linux), qemu (programa para emular diferentes sistemas operativos desde el sistema anfitrión, parecido al software propietario VMware) y kopete (programa de mensajería instantánea). Tamaño 188 MB.

·        SLAX Popcorn Edition v 5.0.6, contiene XFce como entorno de escritorio, Mozilla Firefox, XMMS (reproductor MP3), Gaim (software para la mensajería instantánea), AbiWord (procesador de textos). Ocupa 104 MB.

·        SLAX Frodo Edition v 5.0.6, contiene sólo el intérprete de comandos. No tiene GUI (Interface Gráfica de Usuario). Tamaño 47 MB.

*XWindow: es el encargado de visualizar la información de manera gráfica y es totalmente independiente del sistema operativo. La gran diferencia entre XWindow y la interfaz gráfica de otros sistemas operativos es que XWindow distribuye el procesamiento de aplicaciones, especificando un enlace cliente-servidor. El cliente X especificará "que hacer" al servidor X, que se encargará de "como hacerlo".

NOTA: en este articulo vamos a instalar y arrancar desde una llave USB la versión SLAX KillBill Edition por dos motivos: ser la más completa y, aunque su tamaño es el mayor, hoy en día es fácil encontrar memorias USB de mas de 200MB a un precio relativamente bajo.

Si queremos instalar otra distribución de Slax, el proceso de instalación es idéntico. Solamente nos ocuparemos de bajar el archivo imagen de Slax correspondiente.

3.- Requisitos

SLAX requiere un hardware mínimo para poder funcionar correctamente.

Requisitos:

·        Medio de almacenamiento

·        Puerto USB, para arrancar desde el dispositivo de almacenamiento USB.

·        BIOS

·        IMPORTANTE: es fundamental que la BIOS (Basic Input / Output System) soporte el arranque desde dispositivos USB, ya que si no es así, no nos servirá de nada instalar la distribución en la llave.

·        Memoria

·        36 MB para arrancar Slax.

·        96 MB para que funcione el sistema Xwindow con el entorno de escritorio fluxbox.

·        144 MB para que funcione el sistema Xwindow con el entorno de escritorio KDE.

·        Procesador

·        Intel i486, Pentium o AMD.

·        Dispositivos periféricos

·        Teclado.

·        PS/2 o ratón conectado USB (requerido para el sistema XWindow).

·        No se requiere ningún disco duro.

4.- Instalación de Slax

La instalación de Slax en la llave USB tiene que hacerse necesariamente bajo alguna distribución Linux que reconozca tal llave.

4.1.-Compatibilidad con dispositivos USB en Linux

Si tenemos instalado Linux en nuestro PC, debemos comprobar que la distribución tenga soporte para dispositivos USB pero, ¿cómo sabemos esto?. Tendrá soporte si se cumplen algunos de los siguientes puntos:

·        Una versión del kernel 2.4.23 o superior, que ya lo incluye.

·        Al listar el contenido de /proc/bus/usb deberíamos ver directorios desde 001 hasta 00X, donde X es el número de puertos USB de nuestro ordenador,

root@myHost: ~# ls /proc/bus/usb

001 002 003 004 005 devices

y un archivo de texto devices, que incluye gran cantidad de información sobre cada uno de los puertos USB de nuestro PC.

·        Tener algunos de estos módulos instalados en nuestro sistema: usbcore, usb-uhci, usbserial, ftdi_sio ó usb_storage. Con el comando lsmod lo comprobamos.

·        Ejecutando lspci -v deberíamos ver información sobre los puertos USB de nuestro PC.

·        Por ultimo, con el comando dmesg listamos todos los mensajes que ha lanzado el kernel en el arranque, y localizaremos unas líneas que reconozcan dispositivos usb.

Si no nos aparece nada de esto, se puede intentar con:

·        Instalar el paquete hotplug (para distribuciones basadas en debian apt-get install hotplug y, para distribuciones basadas en redhat rpm -i hot-plug-version_paquete-arquitectuta_ordenador.rpm).

·        Si no lo logramos así, podemos cargar los módulos correspondientes de forma manual ejecutando modconf como root. Veremos lo siguiente:

·        Como última opción, nos quedara modificar el kernel.

Activamos en el menú de configuración del núcleo:

SCSI device support -> SCSI device support

USB Support -> Support for USB

USB Support -> USB mass Storage Support

Luego recompilamos el núcleo con los nuevos módulos.

Si en nuestro PC no tenemos instalado Linux, tendremos que instalar Slax desde alguna distribución liveCD como KNOPPIX, la misma Slax Frodo Edition u otra. Existen muchas para elegir.

Si no tenemos ninguna, deberemos "quemar" la imagen liveCD en un CD y arrancar desde el mismo.

NOTA: es fundamental que la distribución liveCD venga con la versión 2.4.23 o superior de kernel para asegurarnos de que la misma detecte la memoria USB y, luego lo confirmaremos siguiendo las indicaciones de soporte USB descritas anteriormente.

Llegado a este punto, comenzamos la instalación.

4.2.- Si tenemos Linux instalado en el disco duro

1.- Primero, nos descargamos de la Web principal de Slax el archivo imagen SLAX KillBill Edition v 5.0.6.

2.- Como usuario root, creamos el directorio /slaxUSB:

root@myHost: ~# mkdir /slaxUSB

3.- Nos dirigimos al directorio donde nos hemos bajado Slax y montamos el archivo imagen en el directorio creado.

root@myHost: ~# mount –o loop slax-killbill-5.0.5.iso /slaxUSB/

Con este comando es como si “quemáramos” la imagen en el directorio.

4.- Damos formato a nuestra llave USB

NOTA: para saber como denomina Linux la memoria USB, ejecutamos el comando fdisk -l, que saca por pantalla un listado de la tabla de particiones de todos los dispositivos de almacenamiento conectados al ordenador:

root@myHost: ~# fdisk -l

Disco /dev/hda: 81.9 GB, 81964302336 bytes

255 cabezas, 63 sectores/pista, 9964 cilindros

Unidades = cilindros de 16065 * 512 = 8225280 bytes

Disposit. Inicio Comienzo Fin Bloques Id Sistema

/dev/hda1 * 1 4540 XXXXXX+ 7 HPFS/NTFS

Disco /dev/sda: 512 MB, 512753664 bytes

16 cabezas, 62 sectores/pista, 1009 cilindros

Unidades = cilindros de 992 * 512 = 507904 bytes

Disposit. Inicio Comienzo Fin Bloques Id Sistema

/dev/sda1 * 1 1009 XXXXXX 6 FAT16

Este comando coge la información del archivo /proc/partitions

Normalmente la memoria USB estará en la ruta /dev/sda1.

Linux identifica sda como la llave USB y 1 como la primera partición en el disco USB.

Es necesario que la partición donde vamos a instalar Slax sea formateada con el sistema de archivos FAT16. Existen muchos programas para formatear discos, pero ya que estamos con Linux, utilizaremos el comando cfdisk.

root@myHost: ~# cfdisk /dev/sda

cfdisk 2.12p

Unidad de disco: /dev/sda

Tamaño: 512753664 bytes, 512 MB

Cabezas: 16 Sectores por pista: 62 Cilindros: 1009

Nombre Indicadores Tipo Tipo de S.F. [Etiqueta] Tamaño(MB)

--------------------------------------------------------------------------------------

sda1 Inicio Primaria FAT16 [ ] XXX,XX

[Iniciable] [Suprimir] [ Ayuda ] [Maximizar] [Imprimir]

[ Salir ] [ Tipo ] [Unidades] [Escribir]

Conmuta el indicador de iniciable de la partición actual

Aunque, el interface que ofrece este comando es un poco “áspero”, no debemos tener ningún miedo si sabemos lo que estamos haciendo en todo momento. Existe otro programa muy similar pero con un interface de usuario mas agradable, qtparted.

5.- Montamos como root la llave USB con sistema de ficheros FAT.

NOTA: Nos asegurarnos de que el directorio destino de montaje existe y, que tengamos permisos de escritura sobre él. En el ejemplo utilizamos /mnt/usb.

root@myHost: ~# mount –t vfat /dev/sda1 /mnt/usb

6.- Copiamos todos los archivos del directorio /slaxUSB a la partición montada de la llave.

root@myHost: ~# cp -vra /slaxUSB/* /mnt/usb/

La opción -a es para preservar tanto como sea posible la estructura y atributos de los ficheros originales en la copia

7.- Ahora, se necesita copiar algunos ficheros desde el directorio boot/ de la memoria USB montada a su directorio raíz:

root@myHost: ~# cd /mnt/usb

root@myHost: /mnt/usb# cp boot/vmlinuz .

root@myHost: /mnt/usb# cp boot/initrd.gz .

8.- Cambiamos el nombre del fichero isolinux.cfg por syslinux.cfg ubicado en el directorio raíz de la llave:

root@myHost: ~# mv isolinux.cfg syslinux.cfg

Una vez cambiado, lo editamos y borramos boot/ o /boot/ de las líneas que contengan vmlinuz e initrd.gz.

Archivo syslinux.cfg antes del cambio

display boot/splash.cfg

default slax

prompt 1

timeout 40

F1 boot/splash.txt

F2 boot/splash.cfg

label slax

kernel boot/vmlinuz

append max_loop=255 initrd=boot/initrd.gz init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 root=/dev/ram0 rw

label linux

kernel boot/vmlinuz

append max_loop=255 initrd=boot/initrd.gz init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 root=/dev/ram0 rw

label memtest

kernel boot/memtest

Archivo syslinux.cfg después del cambio

display boot/splash.cfg

default slax

prompt 1

timeout 40

F1 boot/splash.txt

F2 boot/splash.cfg

label slax

kernel vmlinuz

append max_loop=255 initrd=initrd.gz init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 root=/dev/ram0 rw

label linux

kernel vmlinuz

append max_loop=255 initrd=initrd.gz init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 root=/dev/ram0 rw

label memtest

kernel boot/memtest

9.- Por último, ejecutamos el comando syslinux, aunque puede que nuestra distribución no lo tenga. Para cerciorarnos ejecutamos:

root@myHost: ~# whereis syslinux

syslinux: /usr/bin/syslinux /usr/lib/syslinux /usr/share/man/man1/syslinux.1.gz

y vemos si lo tenemos instalado o no.

Si no, lo instalaremos con apt-get ó rpm dependiendo el gestor de paquetes de nuestra distribución.

Finalmente ejecutamos el comando

root@myHost: ~# syslinux -s /dev/sda1

root@myHost: ~# sync

Sync sirve para forzar la grabación (sincronización) de los datos de la caché de Linux a los dispositivos correspondientes, en este caso a la llave.

NOTA: Syslinux es un gestor de arranque similar a lilo (LInux LOader) o GRUB (GRand Unified Bootloader).

Es una utilidad para "hacer arrancable" un sistema operativo Linux bajo una arquitectura i386 instalado en un medio de almacenamiento “removible” con sistema de archivos MS-DOS/Windows FAT, como por ejemplo un disquete.

Realmente cuando ejecutamos syslinux éste altera el sector de arranque del dispositivo (en este caso de la primera partición de la llave USB) para hacerlo “arrancable”.

Ahora, nos podemos preguntar por qué no se utiliza este comando “quemando” una distribución liveCD sobre CDs; pues es sencillo. El sistema de ficheros de un CD no es ni FAT ni MS-DOS; es iso 9660 y utiliza los archivos isolinux.cfg e isolinux.bin para arrancar, que vienen ya incluidos en cualquier imagen liveCD.

4.3.- Instalación desde un liveCD

Seguimos las mismas pautas descritas en el apartado anterior. Pero antes, debemos confirmar los siguientes aspectos para que la instalación no presente problemas bajo un liveCD, cuya elección será determinante y, tendrá que cumplir los siguientes requisitos:

1.- Comprobar que la versión del núcleo sea igual o superior a la 2.4.23, ya que, a partir de esta, se reconocerán dispositivos USB.

2.- Una vez iniciado el liveCD, nos aseguramos de la compatibilidad con la llave probando los comandos del apartado 4.1 sobre soporte USB.

3.- Ahora, nos bajamos el archivo imagen de Slax:

3.1.- Si nos lo hemos bajado desde por ejemplo Windows, entonces montaremos la partición del disco duro donde está ubicado este sistema operativo con permisos de lectura por seguridad, sino

3.2.- Nos la podemos bajar desde la distribución liveCD siempre que se haya reconocido la conexión de Internet.

Aunque el archivo ocupe 188MB, no deben existir problemas de espacio si nuestro ordenador tiene memoria RAM suficiente. Pero, ¿dónde se guardará la imagen?. Una distribución liveCD utiliza entre un 70,80% de la memoria RAM como disco duro.

Si hacemos un df –h desde el intérprete de comandos veremos:

root@myHost: ~# df- h

Filesystem Size Used Avail Use% Mounted o­n

/ramdisk 586M 188M 398M 33% /ramdisk

/dev/hda1 25G 24G 1.1G 96% /mnt/hda1

/dev/hda2 33G 19G 15G 56% /mnt/hda2

/dev/root 2.5M 20K 2.4M 96% /

Que muestra entre otros valores, el espacio disponible de cada uno de los dispositivos de almacenamiento que ha reconocido y están montados.

Desglosamos la salida de este comando:

·        /ramdisk. Es exactamente la partición de la memoria RAM que utiliza como disco duro. Por ejemplo, si nuestro PC tiene 512 de RAM, el disco duro del liveCD tendrá aproximadamente 390 MB.

El resto lo utiliza para la propia memoria que necesita el sistema operativo y,

·        unos 2 o 4 MB para almacenar parte del sistema de ficheros de la distribución. Lo vemos reflejado en la línea que comienza por /dev/root/.

·        Puede que aparezca /tmpfs en vez de /ramdisk. Son similares en el sentido de que actúan como discos duros virtuales, pero tmpfs “crece y se contrae” para acomodar los archivos que contiene, sin embargo ramdisk mantiene durante todo su “periodo de vida” un espacio fijo en memoria RAM. Slax hace uso de /tmpfs por utilizar unionfs como sistemas de ficheros.

IMPORTANTE: si nuestro PC tiene 256 MB o menos, será necesario bajarse el archivo imagen Slax KillBill Edition desde otro sistema operativo que no sea el liveCD ya que, no tendremos espacio suficiente (hay que recordar que además de lo que ocupa el archivo, se añade el espacio extra de la imagen “quemada” en el directorio /slaxUSB).

Como alternativa, nos podemos bajar la versión Frodo que ocupa sólo 47MB, sacrificado el entorno de escritorio claro.

4.- Por último, chequeamos si tenemos syslinux instalado.

Normalmente, las últimas distribuciones vienen con los comandos más importantes.

4.4.- DIVIDIR LA LLAVE USB

Si nuestro disco USB dispone de espacio suficiente, podemos crear dos particiones, una para Slax y otra para lo que queramos.

De nuevo, utilizamos cfdisk (explicación en el apartado 4.2 punto 5) para particionar el disco USB.

IMPORTANTE: cuando existe más de una partición en un disco, obligatoriamente tendrá que ser una de ellas activa o “arrancable” (a no ser que instalemos un gestor de arranque en el MBR del dispositivo) ya que si no, la BIOS no sabrá a cual ceder el control del sistema.

Normalmente, la partición activa es la que contiene el sistema operativo.

Con el comando fdisk –l y con la llave conectada al sistema, deberíamos ver las dos particiones (recordemos una FAT16 para el sistema operativo) de la memoria USB (seguramente el dispositivo reconocido por Linux como sda).

Para que arranque Slax, seguimos los mismos pasos de instalación narrados en el apartado 4.2 pero, teniendo conocimiento de que en una de las particiones estará reservada para el sistema operativo y además será activa. La otra, para lo que queramos.

NOTA: EN LAS PRUEBAS REALIZADAS HE ENCONTRADO CIERTOS PROBLEMAS.

EN ALGUNOS CASOS DEPENDIENDO DEL FABRICANTE DE BIOS, SERÁ NECESARIO INSTALAR LILO EN EL SECTOR DE ARRANQUE (MBR) DE LA LLAVE.

PARA LA BIOS “AMIBIOS” ARRANCA LA LLAVE CON DOS PARTICIONES SIN NINGUN BOOTLOADER EN EL MBR DEL DISPOSITIVO. PARA EL RESTO DE FABRICANTES PROBADOS (NO SON TODOS) ES NECESARIO INSTALAR LILO.

INSTALACION DE LILO EN EL MBR.

Después de seguir el apartado 4.2, e instalar syslinux, ejecutamos:

root@myHost: ~# /sbin/lilo -M /dev/sda

/boot/boot.0810 exists - no /dev/sdb backup copy made.

The Master Boot Record of /dev/sdb has been updated.

root@myHost: ~# sync

5.- Arranque

5.1.- Configuración de la BIOS

La BIOS provee las funcionalidades básicas necesarias para arrancar un ordenador y permitir al sistema operativo acceder a su hardware. La mayoría de los PC tienen un menú de configuración de la BIOS.

El acceso al menú de configuración de la BIOS depende del fabricante.

Fabricantes:

·        AMI BIOS. Tecla “Supr” durante el POST*.

·        Award BIOS. Combinación de teclas “Ctrl+Alt+Esc” o “Supr” durante el POST.

·        DTK BIOS. Tecla “Esc” durante el POST.

·        IBM PS/2 BIOS. Combinación de teclas “Ctrl+Alt+Insert” después “Ctrl+Alt+Supr”.

·        Phoenix BIOS. Combinación de teclas “Ctrl.+Alt+Esc” o “ctrl.+Alt+S” o “F1”.

*POST, auto-verificación al encendido o Power o­n Self Test.

Cambiar la secuencia de arranque de la BIOS

ANTES DE ENCENDER EL ORDENADOR, CONECTAMOS LA LLAVE EN UNO DE LOS PUERTOS USB

Los pasos a seguir han sido realizados bajo una AMIBIOS y, no deberían diferir mucho de un fabricante a otro.

Durante el POST accedemos al menú configuración pulsando la tecla “Supr”:

Seleccionamos “Integrated Peripherals”. Lo vemos:

Desde este menú, activamos dos opciones:

  • Usb Controller -> All USB Ports, para habilitar todos los puertos de la placa y,
  • Usb Legact Support -> All Device, para utilizar dispositivos USB en sistemas operativos que no lo soportan o, tienen otros drives USB instalados, como por ejemplo DOS, Unix y Linux.

Ahora, establecemos la secuencia de arranque adecuada. Desde “Avanced BIOS Features”:

Elegimos “Boot Sequency” y:

Situados en la línea “1st Boot Device”, pulsamos la tecla “Enter” sobre “Floppy:” y, escogemos de la lista la llave USB.

Hechos los cambios necesarios, pulsaremos F10 para salvar la configuración. El ordenador se reiniciará solo.

5.2.- Proceso de arranque

Con la llave USB conectada y configurada ya la BIOS, el proceso de arranque es el siguiente:

·        BIOS

Nada más pulsar el botón de encendido de nuestro equipo, se alimenta la placa base del ordenador. Después de unos chequeos, el sistema (POST) pasa el control a la BIOS que inicial la pantalla y el teclado y, comprueba la memoria RAM. Hasta este momento el ordenador aun no utiliza ningún medio de almacenamiento (disquete, llave USB, disco duro, etc.). A continuación se lee la hora, la fecha y los datos de los periféricos más importantes de los valores que están en la CMOS*.

Una vez que reconoce el primer dispositivo seleccionado para el arranque y su geometría, la BIOS traspasa el control del sistema al cargador de arranque.

*CMOS Complementary Metal Oxide Semiconductor, que es la memoria de la BIOS para almacenar la fecha, hora y configuraciones.

·        CARGADOR DE ARRANQUE

Durante este proceso, se carga en la memoria RAM el primer sector físico de datos (512 bytes) de la llave USB y, el cargador de arranque (bootloader en inglés) asume el control al principio de este sector. El orden de las instrucciones ejecutadas a través del cargador de arranque determina el proceso de arranque posterior. Estos primeros 512 bytes de un dispositivo de almacenamiento (por ejemplo: un disco duro o nuestra llave USB) se denominan en ingles MASTER BOOT RECORD (MBR).

Llave USB con una partición

El MBR principal (que está vacío) pasa el control al MBR de la primera partición, en el que está instalado Syslinux.

Llave USB con dos particiones

Ahora LILO está instalado en el MBR principal (puede que para algunos fabricantes de BIOS no lo necesitemos instalar, como se ha mencionado en el apartado 4.4) y pasa el control al sector de arranque de la partición activa, en este caso, la primera, donde está instalado Syslinux.

Una vez que la BIOS ha cedido el control al gestor de arranque, este cede a su vez el control sobre el sistema al auténtico sistema operativo, en este caso, el kernel de Linux.

·        KERNEL E INITRD

El bootloader carga el núcleo (archivo vmlinuz) e initrd (Initial Ramdisk también denominado initdisk) en la memoria de una forma especifica. Luego, ejecuta el kernel, indicándole la existencia de initrd en memoria así como, su posición en la misma. Normalmente initrd está comprimido, por lo que el kernel lo descomprime y lo monta como pequeño sistema de archivos temporal en una parte de la memoria RAM reservada para tal fin.

Initrd proporciona un entorno Linux mínimo que permite la ejecución de programas fundamentales, antes de que el sistema de archivos raíz real pueda ser montado.

Una vez descomprimido y montado, initrd facilita un programa denominado linuxrc (sentencia init=linuxrc en el archivo syslinux.cfg), que se encarga de que pueda montarse el sistema de archivos raíz verdadero. En el momento en que linuxrc finaliza, el disco temporal initrd se desmonta (umount) y el proceso de arranque reanuda su secuencia habitual montando el auténtico sistema de archivos raíz y, reservando gran parte de la memoria RAM como disco duro virtual del liveCD (aproximadamente un 80%).

Veamos el archivo syslinux.cfg del dispositivo USB.

display boot/splash.cfg

default slax

prompt 1

timeout 40

F1 boot/splash.txt

F2 boot/splash.cfg

label slax

kernel vmlinuz

append max_loop=255 initrd=initrd.gz init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 root=/dev/ram0 rw

label linux

kernel vmlinuz

append max_loop=255 initrd=initrd.gz init=linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 root=/dev/ram0 rw

label memtest

kernel boot/memtest

  • Lo primero que se va ha hacer es descomprimir y cargar el núcleo de Linux en memoria.

La línea 9 "kernel vmlinuz", indica que el archivo vmlinuz es la imagen del kernel y está ubicado en el directorio raíz.

A continuación, el kernel descomprime initrd (sabe donde está y donde debe descomprimirlo) y monta un sistema de archivos temporal.

·        Las siguientes sentencias son muy interesantes,

ramdisk_size = 4444: el termino ramdisk significa literalmente disco memoria. Lo que sucede es que se va ha reservar parte de la memoria RAM de nuestro ordenador para utilizarlo como disco duro, es decir, se toma parte de la memoria y se simula un disco duro que se puede formatear, montar, guardar ficheros, etc.

Es en este espacio donde el kernel descomprime y almacena initrd.

El valor que viene en números indica el tamaño en Bytes que se reserva de la memoria RAM.

Este valor es para un ramdisk inicial.

initrd = initrd.gz: initrd especifica la ruta y el nombre del archivo que contiene la imagen del sistema de archivos temporal de la distribución.

root = /dev/ram0: la cláusula "root=" indica cual será la partición raíz del sistema. Como vemos, es concretamente la parte reservada de la memoria RAM (/dev/ram0).

5.3.- Configurar Slax

Si todo ha ido bien, veremos una pantalla como esta:

Inicialmente Slax arranca sin entorno gráfico, pero una vez “logeados” en el sistema (vemos el login y el password que tenemos que introducir en la parte superior derecha de la pantalla de bienvenida), podemos iniciar el sistema gráfico.

Seguimos los pasos:

·        Podemos ejecutar directamente el comando startx, pero es preferible ejecutar primero xconf para que Slax reconozca automáticamente los periféricos que influyen directamente en el correcto funcionamiento de sistema XWindow.

·        Ahora ejecutamos starx.

·        Es posible que pasando unos segundos no veamos nada y nuestro monitor no reciba señal de video. Esto es porque seguramente, nuestra tarjeta gráfica y monitor no admiten la configuración del entorno de escritorio establecida por Slax. No importa, se puede solucionar ejecutando xorgconfig.

Pero antes, tenemos que cambiarnos a la primera consola virtual (combinación de teclas ctrl.+alt+F1) y pulsamos ctrl+c, para matar el proceso startx.

Ahora ejecutamos xorgconfig.

Xorgconfig es un programa interactivo para generar el archivo de configuración del sistema Xwindow. A través de el, establecemos manualmente diversos parámetros que influyen en el correcto funcionamiento del sistema XWindow. Estos son varios como: tipo de ratón, teclado, tarjeta gráfica, frecuencia vertical y horizontal del monitor, etc. Si seleccionamos adecuadamente lo que “nos pide” no habrá problemas para ver Slax bajo KDE.

Al acabar, ejecutamos startx

6.- Referencias

Wikipedia - http://es.wikipedia.org/wiki/Portada

Libros:

Linux 6ª Edición. Editorial Prentice may

Sistema operativo GNU/Linux básico. Editorial UOC

Administración Avanzada de GNU/Linux. Editorial UOC

Instalación de Debian GNU/Linux 3.0. GNU Library GPL

Guía de Linux para el usuario. GNU Library GPL

GNU/Linux. Instalación y primeros pasos. GNU Library GPL

Aprenda Linux como si estuviera en primero. Universidad de Navarra

Slax - http://slax.linux-live.org/?lang=es