Tras implementar un sencillo (aunque potente) auditor de sistemas en una llave de 32 MB y un sistema de arranque dual Windows-Linux (uno y dos) en otra llave de mucha más capacidad, el listón había quedado bastante alto. El nuevo desafío tenía que ser lo suficientemente atractivo como para superar lo anterior. ¿Una distro Linux completa en una llave? No es mala idea... el problema es que nos sentemos ante un ordenador que ya esté corriendo su propio sistema operativo... En tal caso nuestra distro no nos serviría de nada.
No; el objetivo ha de ser aún más ambicioso. A ver qué os parece éste: metemos una distro Linux en una llave USB, de forma que podamos arrancar un PC desde ella sin tocar el disco duro de la máquina. Vale, pero haremos algo más: podremos insertar nuestra llave en cualquier ordenador en funcionamiento (Windows o Linux) y ejecutar nuestra distro en una ventana dentro de él, todo ello sin necesidad de rearrancar, tocar el disco duro, instalar nada ni interrumpir en absoluto el sistema operativo de base. De este modo podremos llevar con nosotros nuestro propio PC, con su propio sistema operativo, sus aplicaciones y nuestros documentos. Seguro que coincidimos en que se trata un reto muy atractivo, que bien podemos considerar equivalente a llevar nuestro propio PC en el bolsillo.
Pero lo mejor de todo es que resulta mucho más fácil de realizar de lo que parece...
Quizás lo más "complicado" puede resultar preparar una llave que ya habíamos utilizado para dejarla lista para el nuevo proyecto. Aunque no se trata de algo específico de este proyecto, voy a tratarlo brevemente a continuación porque nos servirá para proyectos sucesivos.
Preparando tu llave USB
NOTA: Si tu llave está limpia (formateada en FAT32 y lista para usar) puedes saltarte este paso.
Los pasos que siguen corresponden a mi distribución Arch Linux, pero seguro que podrán adaptarse con facilidad a cualquier otra. También puede prepararse la llave desde un sistema Windows y sus usuarios sabrán cómo.
Por supuesto existen diferentes formas de preparar una llave usada para un nuevo proyecto. De hecho he utilizado varias antes de redactar esto (QTparted, por ejemplo), pero ninguna me ha resultado tan eficaz como la línea de comandos.
Comenzamos por conectar la llave a un puerto USB libre. Para identificarla, en un terminal tecleamos lo siguiente:
fdisk -l
Así podremos saber la denominación en forma /dev/xxxx que Linux da a nuestra llave. En mi caso, es /dev/sdf, que habrás de sustituir en los comandos que siguen por lo que tú obtengas con el comando anterior.
Si es necesario podemos borrar cualquier rastro un eventual MBR anterior tecleando:
dd if=/dev/zero of=/dev/sdf bs=512 count=1
Utilizamos de nuevo fdisk para borrar las particiones existentes y reparticionar la llave:
fdisk /dev/sdf
No olvides sustituir /dev/sdf por el nombre que tenga tu llave en tu sistema. Si no sabes usar fdisk (o no te atreves) puedes realizar esta operación en Windows: borrar las particiones y creas otra(s) a tu gusto, siempre que sean FAT32 (ó vfat, en linux). El uso de fdisk en linux es en realidad sencillo y nada queda grabado hasta que pulses "w". Con "p" ves las particiones, con "d" las borras, con "n" las creas, con "t" modificas su tipo, con "a" las vuelves activas, etc.
En mi caso, en una llave de 1 GB creé una partición de 666 MB para el sistema, dejando el resto como eventual depósito de ficheros.
Bien; supongamos que la llave está lista para usar.
Creamos un sistema de ficheros FAT32 en la partición antes creada (sdf1, en mi caso) con:
mkfs.vfat -F32 /dev/sdf1
Una forma de instalar un nuevo MBR es la siguiente:
locate mbr.bin
Este comando te devuelve la ruta en que está mbr.bin; en mi caso (Arch) devuelve:
/var/abs/extra/system/mksyslinux/mbr.bin
Tecleo ahora:
cat /var/abs/extra/system/mksyslinux/mbr.bin > /dev/sdf
Y ya tengo un nuevo MBR (Master Boot record).
Para hacer la llave arrancable:
syslinux -s /dev/sdf1
(insisto: cambia sdf1 por el nombre de tu partición).
Instalación de QEMU-Puppy
Este paso resulta tan sencillo como descargar el fichero (133'5 MB), descomprimirlo y volcar todo su contenido (20 ficheros, 262'8 MB) en el directorio raíz de la llave.
¿Listo? Pues ahora mucha atención, porque hay un paso que no se dice en ningún sitio, pero sin el cual el sistema no llega a arrancar desde la llave. Tras mucho googlear encontré la solución que ahora te cuento (bueno, en parte, porque también tuve que modificarla). Consiste en editar el fichero syslinux.cfg de la llave. Su aspecto inicial es este:
#default vmlinuz root=/dev/ram0 initrd=initrd.gz PMEDIA=usbflash
default vmlinuz root=/dev/ram0 initrd=initrd.gz
append QPM=true
Edítalo para que quede así:
default vmlinuz root=/dev/ram0 initrd=initrd.gz PMEDIA=usbflash
#default vmlinuz root=/dev/ram0 initrd=initrd.gz
append QPM=true
Como ves, lo único que hay que hacer es cambiar un comentario de sitio, pero es la diferencia entre que el sistema arranque o no.
Utilizando nuestro flamante "PC de bolsillo"
Aunque parezca mentira, todo está listo para usar. Si ahora colocas tu llave en un puerto USB de un PC capaz de arrancar desde USB, en un par de minutos estarás ante una distribución Puppy Linux, con la que podrás trabajar sin tocar el disco duro del PC.
Pero habíamos prometido más. Queríamos poder utilizar nuestro flamante sistema desde un PC ya funcionando, y además sin importarnos que esté ejecutando Linux o Windows.
Aquí es donde entra el componente QEMU. Tras insertar tu llave en un ordenador en funcionamiento, todo lo que hay que hacer es ir a la llave (que generalmente se montará sola) y hacer doble click en puppy.sh (si el sistema subyacente ejecuta Linux) o en puppy.exe (si el sistema subyacente ejecuta Windows). Más fácil, imposible.
A continuación te muestro unos pantallazos para que acabes de creértelo...
1. Ejecución sobre máquina Linux
Ejecución sobre máquina Windows
Observaciones finales
Es necesario destacar que al ejecutar el sistema desde nuestra llave, tanto en Windows como en Linux podemos utilizar el sistema original de base sin más que pulsar las teclas Ctrl-Alt. Al hacerlo, el ratón sale de la ventana de Puppy y opera con normalidad sobre el Linux o Windows de nuestro disco duro.
También quiero resaltar otro punto interesante. El fichero que descargaste es completo, es decir, que no necesitas disponer de QEMU ni en el Windows ni en el Linux de base, con lo que la independencia de nuestra llave es total y absoluta.
Desde ahora podrás sacar tu llave, introducirla en el ordenador de un amigo que vive en otra provincia y, bien arrancar tu distribución desde USB a pantalla completa, o bien ejecutarla mediante un doble clic en una ventana, sin tocar el sistema de tu amigo ni su disco duro.
Más información
En mi caso el proceso descrito ha funcionado a la perfección, pero ya sabemos que cada ordenador es un mundo. Si surgen dificultades puedes comentarlas aquí, pero también hay información detallada en la web de QEMU-Puppy (que puedes incluso descargar completa en un pdf).
Sobre la propia distribución utilizada (Puppy Linux) puedes obtener muchísima información en su web o -sobre todo- en sus concurridísimos foros.
Suerte y ya me contarás.
No hay comentarios:
Publicar un comentario