Cómo crear tu propio sistema operativo libre

Esta vez te explicaremos paso a paso cómo modificar/personalizar/rehacer una versión de GNU+Linux derivada de Debian.

HACKERS en Facebook ¡Sumate!

 

Tomaremos el caso de Huayra, la distro estatal realizada por el Programa Conectar Igualdad que pretende ser instalada en las máquinas que resta repartir (unas cientos de miles) y en las ya repartidas (algo difícil de lograr si tenemos en cuenta que son más de 3 millones). De todas formas, este tutorial sirve para casi cualquiera de las cientos de distribuciones derivadas de Debian (Ubuntu, Mint, Musix, etc.).

Te traemos 11 pasos para crear un sistema operativo libre

Método
* El método elegido es relativamente rápido y cómodo para hacer cambios «en vivo», sobre todo dentro del sistema previamente a ser terminado, como si estuviera ya listo para usar. Otro método sería el de usar las herramientas de Debian Live.

Nivel de conocimientos
* En verdad esto lo puede hacer cualquier persona con algo de tiempo y ganas, no es necesario que se trate de un usuario avanzado, aunque sí es ideal que esté familiarizado con la consola de comandos de GNU/Linux. Pero te aseguro que es como seguir cualquier receta, como hacer canelones en casa.

Materiales
* Computadora personal con GNU+Linux instalado (cualquier netbook del PCI serviría, ya sea que trajera RxArt, Ubuntu, Mint o Huayra)
   En caso de no contar con un sistema libre preinstalado, recomiendo descargar e Instalar Lunar GNU+Linux, que viene con todas las herramientas para remasterizar.
* Espacio en disco rígido: 10 GB aprox.
* Pendrive USB de 2 o 4 GB para grabar la imagen ISO (el sistema operativo comprimido) con unetbootin
   O un DVD virgen.
* Una imagen ISO del sistema operativo a modificar: podría ser Lunar  o Huayra  mismo... pero si trabajás sobre Huayra quizá querrías invertir un tiempo en eliminar el software privativo, así que te aconsejamos Lunar, el cual ha zanjado esa tarea.
* Unetbootin

Pasos
Si en tu sistema no tenés instalado squashfs-tools y genisoimage, deberás incorporarlos; en este tutorial supondremos que estás utilizando una distribución Debian o derivada, con lo cual emplearías apt-get para instalar programas. El comando es:

sudo apt-get install squashfs-tools genisoimage

Desde ahora, abriremos una consola de comandos (konsole, xterm, lxterm, mrxvt, la que
quieras) y será cuestión de ejecutar paso tras paso como si fuera una receta.  Lógicamente no explicaré qué significa cada comando porque el tutorial sería más largo y aburrido que la Biblia, pero el usuario puede investigarlo utilizando el comando man (ej: man mkdir)


1) Crear directorios y descomprimir el archivos

mkdir nueva_distro
cd nueva_distro
sudo mount LA_DISTRO_QUE_DESCARGASTE.iso /mnt -o loop
mkdir extract-cd
rsync --exclude=/live/filesystem.squashfs -a /mnt/ extract-cd
sudo unsquashfs /mnt/live/filesystem.squashfs
sudo mv squashfs-root edit

2) Utilizar funcionalidades de nuestro actual sistema operativo

sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/
sudo mount --bind /dev/ edit/dev

# Este paso es importante: aquí nos metemos dentro del nuevo sistema
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C

dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl

3) Comenzar a instalar o desinstalar programas, modificar estéticas, configuraciones, etc.

apt-get update

Ahora podemos instalar algo, por ejemplo algunas utilidades para redes, copia de archivos y monitoreo de procesos

apt-get install htop nmap slurm rsync

Es sólo un ejemplo, Debian contiene algo así como 30.000 paquetes en su base de datos, si necesitás una forma cómoda de ver qué hay disponible, utilizá Synaptic en modo gráfico, luego podés volver al sistema en proceso de modificación e instalar las aplicaciones con apt-get

Por no ser tan aburridos, instalemos algunas aplicaciones para músicos:

apt-get install hydrogen solfege rosegarden zynaddsubfx qsynth lmms qjackctl
En fin: insisto en que son sólo ejemplos, vos podés encontrar algo que te interese particularmente.


3b) Escritorio

Algo muy importante a tener en cuenta, es que todo lo relativo al escritorio se modifica en /etc/skel/Escritorio/ , esa carpeta contiene un esqueleto de el o los escritorios que serán configurados para cada usuario del sistema. Es decir que todo lo que hagamos ahí, será copiado cada vez que se inicie el sistema Live o cuando creemos otro usuario.

Por ejemplo, en Huayra encontramos:

ayuda-mate.desktop      huayra-chat.desktop           huayra-tda.desktop
huayra-bullets.desktop  huayra-flash-install.desktop  www-browser.desktop

Son los iconos que lanzan aplicaciones, en mi caso quité huayra-flash-install.desktop por ser una sugerencia a instalar software privativo/peligroso.


3c) Configurar GRUB para que no inicie Linux con el generador de números al azar de INTEL y la NSA

No es un paso obligatorio, pero te dará más seguridad al no usar la instrucción de la agencia de espionaje en tu sistema para cifrar datos. Es decir: será menos probable que la NSA te espíe. Entonces, como usuario administrador ejecutamos:

nano /etc/default/grub
Agregamos o modificamos la siguiente línea:
GRUB_CMDLINE_LINUX=”nordrand”
Guardamos con control+o y salimos con control+x.


3d) Personalizar el fondo de escritorio

Podemos hacer 1000 modificaciones a nuestra nueva distro, pero algo que le dará identidad es el fondo de escritorio, en Huayra o Lunar, esto se encuentra dentro del directorio: edit/usr/share/images/huayra-desktop/ y posee los siguientes archivos:
huayra-login.jpg  huayra-splash.png  huayra-syslinux.png  huayra-wallpaper.png

Podrías reemplazarlos con tus propios diseños, sólo tené en cuenta el formato de cada uno (resolución y extensión .png o .jpg) para que luego no existan mayores problemas. Un buen programa es GIMP, otro interesante es Inkscape para diseño vectorial.

3e) Para usuarios avanzados/curiosos: lógicamente podríamos iniciar una sesión de escritorio dentro el nuevo sistema y realizar cualquier cambio de modo gráfico como si la distro estuviera ya terminada y andando. Para eso es prudente copiar nuestra configuración de Xorg dentro del nuevo sistema, o quitar la existente con el fin de evitar cuelgues... también es prudente utilizar la misma distro como sistema host y sistema a modificar, porque de lo contrario es posible que también se quede congelado el sistema.
Para iniciar una sesión de escritorio, podríamos copiar antes el /etc/skel a /root/Escritorio (cualquier cosa que de allí nos interese...) instalar xinit (apt-get install xinit), presionar control+alt +F1, loguearnos como root y luego ejecutar algo así:

startx -- :4 vt12

Si tenemos suerte, estaremos dentro de un entorno de escritorio predefinido y podremos divertirnos un rato: queda en vos experimentar.

 


4) SALIR de nuestro nuevo sistema: volver atrás al sistema de siempre para poder recomprimir los archivos y crear la imagen ISO; ejecutamos:

cd /
aptitude clean
rm -rf /tmp/* ~/.bash_history
rm /etc/resolv.conf
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
dpkg -l > packages.txt
umount /proc
umount /sys
umount /dev/pts
exit


6) Prepararse para Remasterizar (finalizar la nueva distribución GNU+Linux)

sudo umount edit/dev
sudo mv edit/packages.txt extract-cd/live/ 

* dentro del directorio nueva_distro ejecutamos:
sudo touch extract-cd/live/filesystem.manifest
sudo chmod a+w extract-cd/live/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/live/filesystem.manifest
sudo cp extract-cd/live/filesystem.manifest extract-cd/live/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract-cd/live/filesystem.manifest-desktop
sudo sed -i '/live/d' extract-cd/live/filesystem.manifest-desktop


7) Modificar la pantalla de inicio del Live-USB/DVD para que hable de nuestra distro

En el directorio extract-cd/isolinux/ hay varios archivos.cfg, los podés editar con nano o cualquier otro editor de textos para que representen la identidad de lo que estás haciendo.
También se encuentra ubicada una imagen llamada extract-cd/isolinux/splash.png que podría ser fácilmente reemplazada por un diseño propio, solamente tiene que ser en 640x480 y en formato png.

8)  Comprimir el sistema de archivos:

sudo rm extract-cd/live/filesystem.squashfs

sudo mksquashfs edit extract-cd/live/filesystem.squashfs

(esa acción es crucial y tardará un buen tiempo...)

Darle un nombre a la imagen:
nano extract-cd/README.diskdefines

9) Remover el viejo md5sum.txt y hacer uno nuevo:

cd extract-cd
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt

* si trabajamos con Huayra, conviene borrar algunas cosas no libres:

rm -f -r pool/contrib/l/linux-wlan-ng/
rm -f -r pool/non-free/*


10) Finalizar y crear la imagen ISO de nuestro nuevo sistema:

sudo genisoimage -D -r -V "Nombre_y_version" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../Nombre_y_version.iso .


11) Testear la ISO: en una primera instancia no es mala idea ahorrarse el quemar un DVD o crear un USB Live de gusto, para eso podríamos utilizar QEMU, un emulador que nos permite correr el nuevo sistema dentro de nuestro sistema.

apt-get install qemu

qemu -cdrom nombre_del_archivo.iso

Si todo sale bien, veremos la pantalla de bienvenida y luego se cargará el sistema... a veces QEMU no es muy confiable, por lo cual si vemos algún error demasiado raro (el escritorio no se carga, etc.), convendrá hacer las cosas bien y quemar un DVD (yo uso k3b) con nuestra imagen ISO o grabar un USB Live mediante Unetbootin.

En fin, eso es todo, se trata de muchos comandos pero les garantizo que funciona y sólo necesitan tener ganas para lograrlo,

¡FELIZ HACKEO!

 

HACKERS en Facebook ¡Sumate!

 

Opiniones (10)
28 de Junio de 2017|04:49
11
ERROR
28 de Junio de 2017|04:49
"Tu mensaje ha sido enviado correctamente"
  1. Jovie, quiero aprender de tu inmensa humildad, de verdad te lo digo: quiero ser el tipo más humilde del mundo, así volvés a leer mis artículos. Mi mente no está abierta a las mentiras, y tanto la Biblia como la revista Susana son compendios de mentiras. Es verdad que "todo esto está en internet", pero no habiá ninguna explicación en castellano lo suficientemente amena y tampoco había ninguna versión que tratara el tema de Huayra, que es grave porque se lo encajan a los pibes en los colegios y ni le informan que corre software privativo el 100% del tiempo.
    10
  2. o podrias no compararlo con nada... pero si sos un soberbio y te la crees podes seguir comparandolo con cualquier cosa... se va cayendo un idolo... que pena, siempre pense que la gente que estudia OS y todo lo relacionado con la informatica era de mente abierta, pero parece que encontre a la excepciòn. Saludos, es la ultima vez que escribo y leo tus articulos, no descubriste el agujero al mate flaco, todo esto esta en internet...
    9
  3. cheiko: las capturas de pantalla fueron realizadas todas en Debian GNU/Linux utilizando GIMP, y no se empleó nada de software privaito para hacer esta nota o la distribución derivada que hemos mostrado. || jfm04: es cierto que GNU/Linux es espiable, pero más espiable es Windows que es 100% privativo y por lo tanto no sabemos nada de lo que hace realmente, incluso es sabido que trae desde 1999 una puerta trasera de la NSA por convenio de Microsoft con la agencia espía. || Por el tema de programar un sistema operativo desde cero: claro que eso no puede ser abordado en un artículo de un suplemento dirigido al público en general, por eso subtitulamos "Esta vez te explicaremos paso a paso cómo modificar/personalizar/rehacer una versión de GNU+Linux derivada de Debian. " Es eso: modificar, personalizar, rehacer o remasterizar un Debian. || Jovie: OK, a mí la Biblia me pareció un texto aburridísimo y largo; pero tenés razón que podría obviar la frase y compararlo con otros textos, con la revista Susana, por ejemplo. || Luciferina: "Me gustaría que explicaras de dónde vienen esos comandos que borran los números que genera la NSA... y cómo hace para generarlos en el Grub. Gracias." El kernel Linux utiliza por defectos el generador de números aleatorios de Intel programado en los CPUs desde 1985 hasta ahora. Eso hace que una encriptación en GNU/Linux pueda ser más fácil de ser descifrada (no es tan grave, pero sucede así); para desactivarlos desde el arranque del sistema, hay que pasarle el comando nordrand al kernel, eso se configura en GRUB o el administrador de arranque que vos manejes. Lo hemos publicado aquí en este suplemento. http://www.mdzol.com/nota/488674-como-evitar-infiltraciones-de-la-nsa/ || gracias a todos por sus críticas, correcciones e inquietudes.
    8
  4. Cómo hago una captura de pantalla?...En windows, ..a que hermoso fondo de escritorio, que lindo sistema
    7
  5. En los 80´s, Unix, fox y "C"eran lo ultimo, algunos jugabamos con assembler, (comenzaron los virus), los viejos aprendimos las tres leyes del software, 1° todo sistema falla, 2° toda seguridad es vulnerable y sobre todo 3° el usuario se educa. De ahi en adelante cualquier sistema privativo o distro abierta da lo mismo. Quien les dijo a los pibes de hoy que la NSA o cualquier servicio de inteligencia respetable no espia a travez de LINUX, no lo hacen tan abiertamente como con windows; pero lo hacen. solo midan la cantidad de paquetes perdidos en una transmision de red y se daran cuenta, asi se espia. saludos y feliz ingenuidad a los GNU LINUX, PD. es cierto, el tuto de la nota es solamente una minima personalizacion de una distro, programar tu propio SO, es algo infinitamente mas largo y adecuar algo ya hecho, el doble de infinito.
    6
  6. Esto ni remotamente es hacer tu propio SO, es personalizar una distro de Linux.
    5
  7. "meterlo" o no meterlo... depende de la generacion de los empleados, es decir, si son generacion X, y o Z... o se cayeron del alfabeto como mis jefes... Si son guachos tuercas y despabilados... dale fruta con la distro que tengas a mano...
    4
  8. Utilísimo. Ahora imaginate, tenés una empresa con 20 sucursales, 50 terminales por sucursal, todo vinculado con VPN, un promedio de 20 transacciones por minuto. Vos le meterías este OS? Yo, ni en pedo.
    3
  9. muy bueno el artículo.., pero podrìas obviar la frase "...más largo y aburrido que la Biblia..." totalmente innecesario.
    2
  10. Me gustaría que explicaras de dónde vienen esos comandos que borran los números que genera la NSA... y cómo hace para generarlos en el Grub. Gracias.
    1