mi propia distro

En este tutorial quiero compartir como hacer nuestra propia distro.
Las distribuciones que hay por default por ejemplo ubuntu, kubuntu etc, solo traen lo necesario, si queremos reproducir musica no se puede por falta del paquete, y bueno las ultimate no me gustan porque pesan mucho y tardan mas en cargar


HERRAMIENTAS
Primero asegurate de tener instalado las herramientas necesarias
sudo aptitude install squashfs-tools genisoimage
Necesitas una imagen iso de la distro que vamos a personalizar, en mi caso utilize ubuntu-9.10-desktop-i386.iso
ORGANIZACION
Para tener una buena organizacion de la informacion he creado una carpeta llamada distro_nueva
mkdir distro_iso
cd distro_iso
mkdir live_cd
cp /media/Diskito/ubuntu-9.10-desktop-i386.iso live_cd/
cd live_cd/
mkdir mnt_iso
EXTRACCION DEL ISO
Extraemos el contenido de la imagen iso, he creado otra carpeta dentro del direcotorio live_cd (mnt_iso) para extraer ahi el contenido
Montamos la imagen iso
sudo mount -o loop ubuntu-9.10-desktop-i386.iso mnt_iso
Extraemos el conternido
mkdir extract_iso
rsync --exclude=mnt_iso/casper/filesystem.squashfs -a mnt_iso extract_iso
EXTRACCION DEL SISTEMA DE ESCRITORIO
Extraemos el systema de escritorio
Extraer el archivo de sistema
sudo unsquashfs mnt_iso/casper/filesystem.squashfs
sudo mv squashfs-root edit


PREPARACION Y CHROOT
Si necesitas conexion a internet dentro del chroot, es recomendable copiar los archivos de configuracion de red en la carpeta contenedora, es recomendable copiar el archivo /etc/apt/sources.list /edit/etc/apt/sources.list
sudo cp /etc/resolv.conf edit/etc/
Dependiendo de tu configuracion tal vez puedas necesitar el archivo hosts
sudo cp /etc/hosts edit/etc/
sudo mount --bind /dev/ edit/dev
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
(Estos directorios son importantes montar en tu sistema - si más adelante decides eliminar el directorio edit, asegúrate de desmontar antes de hacerlo, de lo contrario el sistema quedara inutilizable por lo menos temporalmente hasta reiniciar)
Para evitar problemas de configuración regional y con el fin de importar claves GPG
export HOME=/root
export LC_ALL=C


PERSONALIZACION
PREREQUISITOS


Antes de instalar paquetes o actualizarlos es necesario ejecutar lo siguiente
dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
TAREAS
Para ver los paquetes instalados por tamaño
dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
Si eliminas paquetes acuerdate de ejecutar el comando purge
aptitude purge nombre_paquete
LIMPIAR
Asegúrate de quitar todos los archivos temporales que ya no son necesarios, porque el espacio en un CD es limitado. Un ejemplo clásico es descargar archivos de un paquete, que puede ser limpiado con:
aptitude clean
Eliminar archivos temporales
rm -rf /tmp/* ~/.bash_history
si has instalado asegurate de ejecutar
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
Ojo es dentro de chroot
Ahora desmonta (umount) archivos de sistema especiales y salir de chroot
umount /proc
umount /sys
umount /dev/pts
exit
sudo umount edit/dev
Nota: si el comando "umount /proc" produce un error tratar con "umount-If /proc"
PONIENDO TODO JUNTO
Regenerar manifest
chmod +w extract_iso/mnt_iso/casper/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract_iso/mnt_iso/casper/filesystem.manifest
sudo cp extract_iso/mnt_iso/casper/filesystem.manifest extract_iso/mnt_iso/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract_iso/mnt_iso/casper/filesystem.manifest-desktop
sudo sed -i '/casper/d' extract_iso/mnt_iso/casper/filesystem.manifest-desktop
COMPRIMIR ARCHIVOS DEL SISTEMA
sudo rm extract_iso/mnt_iso/casper/filesystem.squashfs
sudo mksquashfs edit extract_iso/mnt_iso/casper/filesystem.squashfs
Nota algunas versiones marca error con el argumento -nolzma, quitarlo
ELIMINAR EL ARCHIVO MD5 Y GENERARLO DE NUEVO
cd extract_iso/
cd mnt_iso/
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt
CREA TU IMAGEN ISO
Aqui debo estar situada en live_cd/extract_iso/mnt_iso
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-9.10.1-desktop-i386-custom.iso .
Y LISTO, LO UNICO QUE RESTA ES QUE BOTEES DE TU IMAGEN Y LA INTALES O UTILIZES EL LIVE-CD, ES RECOMENDABLE UN USB-LIVE, EN EL PROXIMO POST HABLAREMOS DE ESO


Porque es importante esto, porque tambien puedes crear tu distro con paquetes como el wireshark, nmap, nikto, aptoncd etc.
He ahi lo interesante de software libre
Para los que me conocen tengo la imagen con google chrome, y otros paquetitos interesantes.

0 comentarios:

Publicar un comentario