Aprende a crear tu propio sistema operativo
De Documentacion NexuN
Vamos a crear un Sistema Operativo (SO) para nuestro instituto, lo haremos a partir de la distribución GNU/Linux Ubuntu.
Primero instalamos los programas necesarios:
sudo aptitude install squashfs-tools genisoimage
Vamos a nuestro HOME:
cd
Creamos la carpeta livecdtmp
mkdir livecdtmp cd livecdtmp
Dentro creamos la carpeta mnt donde vamos a montar la iso de Ubuntu (que previamente nos hemos bajado de la web oficial de Ubuntu)
mkdir mnt sudo mount -o loop ubuntu-10.04.1-desktop-i386.iso mnt
Después descomprimimos los programas. (puede tardar un poco)
rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd sudo unsquashfs mnt/casper/filesystem.squashfs sudo mv squashfs-root edit
Copiamos la configuración de la red de nuestro sistema dentro del liveCD virtual que estamos creando (en edit)
sudo cp /etc/resolv.conf edit/etc/ sudo cp /etc/hosts edit/etc/ sudo mount --bind /dev/ edit/dev
Bajamos la imagen warty-final-ubuntu.png y la colocamos dentro de ~/livecdtmp. Finalmente la copiamos dentro de nuestro liveCD virtual
sudo cp warty-final-ubuntu.png edit/usr/share/backgrounds/warty-final-ubuntu.png
Hacemos una jaula dentro del liveCD virtual
sudo chroot edit
Asegúrate de que ya no estas en tu ordenador, ahora tienes que estar en la jaula de root, ¿Cómo lo haces? si ejecutas el comando ls /home ya no tiene que aparecer tu home :-)
Montamos el sistema virtual:
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
Comprobamos que tenemos red y que el servidor de nombres funciona
ping www.google.com
Abrimos el gestor de programas synaptic
synaptic
Añadimos los repositorios Universe par ello:
Setting - Software Sources - Community-maintained Open source sofware (universe)
no olvidemos hacer (Reload) e instalamos los siguientes programas desde el synaptic o utlizando la linea de comandos como mostramos a continuación:
apt-get install tree apt-get install vim apt-get install gparted apt-get install openssh-server apt-get install gimp apt-get install italc-client
Para tener espacio en nuestro liveCD, desinstalamos los siguientes programas:
apt-get purge evolution apt-get purge aisleriot apt-get purge quadrapassel apt-get purge gnome-sudoku apt-get purge gbrainy apt-get purge pitivi apt-get purge gwibber apt-get purge empathy apt-get purge totem apt-get purge rhythmbox apt-get purge gnome-mahjongg apt-get purge gnomine apt-get gnome-games-common
Si queremos cambiar la configuración por defecto que tiene cualquier usuario tendremos que modificar los archivo de : /etc/skel/
Para ver los paquetes instalados y lo que ocupan:
dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
Limpiamos los restos de la instalación y los archivos de configuración
aptitude clean rm -rf /tmp/* ~/.bash_history rm /etc/hosts rm /etc/resolv.conf rm /var/lib/dbus/machine-id rm /sbin/initctl dpkg-divert --rename --remove /sbin/initctl umount /proc || umount -lf /proc umount /sys umount /dev/pts
Nos salimos del liveCD virtual (jaula) y desmontamos edit/dev
exit sudo umount edit/dev
Volvemos a comprimir los programas: (puede tardar un poco)
chmod +w extract-cd/casper/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
sudo sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop
sudo rm extract-cd/casper/filesystem.squashfs
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs
Cambiamos deskdefines:
printf $(sudo du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size chmod u+rw extract-cd/README.diskdefines sudo vim extract-cd/README.diskdefines
Cuando se abra con el editor vim cambiamos:
#define DISKNAME Ubuntu 10.04.1 LTS "Lucid Lynx" - Release i386 por #define DISKNAME Distribución de IES Fco. de Quevedo i386
Generamos la nueva suma md5 (puede tardar un poco)
cd extract-cd sudo rm md5sum.txt find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt
Creamos la nueva imagen (iso) con nuestra distribución [seguimos dentro de extract-cd]
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-LTS-Quevedo.iso .
Finalmente podemos probar la imagen creada con una maquina virtual.
Este tutorial esta basado en:
https://help.ubuntu.com/community/LiveCDCustomization
Dependiendo de uso que vayamos hacer del sistema operativo podemos instalar diferentes programas.
http://observatorio.ofset.org/soft_educativo.html
--Dani 12:41 13 feb 2011 (UTC)

