Creación de una distribución basada en Ubuntu

En este artículo se explica como remasterizar (personalizar) la distribución (K)Ubuntu Dapper GNU/Linux. Es poco más que una traducción de los artículos

Requisitos

Antes de nada, debemos asegurarnos de que tenemos todo lo necesario:

  • unos 3-5 GB de espacio libre en disco
  • un CD o imagen ISO de (K)Ubuntu Dapper (http://releases.ubuntu.com/dapper/)
  • squashfs-utils y mkisofs instalados
  • un núcleo que admita squashfs (como el que viene de serie en Kubuntu Dapper
  • qemu instalado, para probar las imágenes que creemos

Extracción del CD

Cargamos el módulo squashfs:
$ sudo modprobe squashfs

Montamos la imagen ISO o el CD-ROM
$ sudo mount -o loop kubuntu-6.06-desktop-i386.iso /mnt
ó
$ mount /cdrom

Extraemos el contenido de la imagen en un directorio llamado «extract-cd». En mi caso lo hago en una partición aparte (hdb1), que debe estar montada de modo que permita la ejecución de binarios.
$ mkdir /media/hdb1/extract-cd
$ rsync –exclude=/casper/filesystem.squashfs -ax /mnt/ /media/hdb1/extract-cd

El CD contiene varios subdirectorios, incluyendo uno con una selección de programas libres para Windows. Si lo deseamos podemos borrarlo, ahorrando unos 95 MB.
$ sudo rm -rf /media/hdb1/extract-cd/programs
Igualmente podemos borrar el directorio disctree.

Extracción del sistema

Montamos el sistema de ficheros comprimido con squashfs
$ sudo mkdir /mnt2
$ sudo mount -t squashfs -o loop /mnt/casper/filesystem.squashfs /mnt2/

Extraemos el contenido del squashfs en un directorio llamado edit
$ mkdir /media/hdb1/edit
$ sudo cp -a /mnt2/* /media/hdb1/edit/

Ya podemos desmontar el CD y el sistema comprimido:
sudo umount /mnt2
sudo umount /mnt
sudo rmdir /mnt2

Personalización

Copiamos nuestro fichero /etc/resolv.conf para tener unos DNS que consultar al acceder a Internet
$ sudo cp /etc/resolv.conf edit/etc/

Finalmente entramos en nuestro nuevo sistema:
$ sudo chroot edit
# mount -t proc proc proc
# mount -t sysfs sys sys

Ahora podemos hacer todos los cambios que queramos. Podemos empezar editando el fichero /etc/apt/sources.list para modificar los repositorios, actualizar, y añadir/quitar paquetes.

Por ejemplo podemos eliminar los paquetes de idioma que no nos interesen (esto elimina también el paquete kubuntu-live, pero no lo necesitamos para nada)
# aptitude purge language-pack-ar language-pack-ar-base language-pack-bn language-pack-bn-base language-pack-de language-pack-de-base language-pack-fr language-pack-fr-base language-pack-hi language-pack-hi-base language-pack-nl language-pack-nl-base language-pack-kde-ar language-pack-kde-ar-base language-pack-kde-bn language-pack-kde-bn-base language-pack-kde-de language-pack-kde-de-base language-pack-kde-fr language-pack-kde-fr-base language-pack-kde-hi language-pack-kde-hi-base language-pack-kde-nl language-pack-kde-nl-base language-pack-kde-zh language-pack-kde-zh-base
e instalar otros idiomas que sí nos interesen:
# aptitude install language-pack-an language-pack-an-base

Limpieza

Borramos los ficheros que se hayan ido creando
$ sudo rm ~/.bash_history ~/.viminfo [etc]
$ sudo rm -rf /tmp/*

Los paquetes deb que hayamos descargados y estén en la cache:
$ sudo apt-get clean

Y finalmente desmontamos los sistemas de ficheros especiales y salimos del chroot
$ sudo umount proc
$ sudo umount sys
$ exit

Preparación del CD

Podemos editar el fichero extract-cd/isolinux/isolinux.cfg y añadir
preseed/locale=es_ES kbd-chooser/method=es
a las entradas append para que el CD arranque directamente en castellano.

Le damos un nombre a la imagen en extract-cd/README.diskdefines
$ sudo vim extract-cd/README.diskdefines

Regeneramos el manifest (lista de los paquetes del sistema):
chmod +w extract-cd/casper/filesystem.manifest
sudo chroot edit dpkg-query -W –showformat=’${Package} ${Version}n’ > extract-cd/casper/filesystem.manifest

Cuando se ejecuta el instalador del CD de escritorio, lo copia todo al sistema objetivo, pero después hace limpieza y elimina los paquetes que no estén en un segudo fichero llamado filesystem.manifest-desktop. Así se evita que en la instalación se incluya el propio instalador, por ejemplo.

Podemos filtrar el manifest con un script de sed. Creamos un fichero /tmp/filtro con este contenido:
/casper/d
/libdebian-installer4/d
/os-prober/d
/ubiquity/d
/ubuntu-live/d
/user-setup/d

y ejecutamos
cd /media/hdb1/extract-cd/casper
sed -f /tmp/filtro filesystem.manifest-desktop
rm /tmp/filtro

Comprimimos el sistema de ficheros (esto puede tomar 15-20 minutos, así que podemos salir a echar un café)
$ sudo mksquashfs edit extract-cd/casper/filesystem.squashfs

Calculamos las sumas MD5
$ (cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)

Y creamos la imagen ISO
$ cd extract-cd
$ mkisofs -r -V “MI_DISTRO” -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../midistro.iso .

Por último, podemos probar la imagen de CD creada con el emulador QEMU
$ qemu -cdrom cdname.iso -boot d

64 Responses to “Creación de una distribución basada en Ubuntu”

  1. Mars Attacks dice:

    Buen artículo, gracias. ¿Y si quisiéramos usar la distro desde un pen?

  2. InKiLiNo dice:

    Hola Quique,

    estoy creando un planeta BSD, donde recopilare todos los posts, articulos
    y noticias sobre los BSD, en español, y me gustaria poder contar con
    tus articulos.

    Solo tendrias que pasarme tu dirección de los feed(rss), para que los
    sindique en mi planeta BSD.

    El planeta no llevara publicidad, porque yo no quiero ganar nada con esto
    (no seria justo), y solo enlazare un extracto de los articulos o noticias,
    para leer el articulo completo o dejar algun comentario, tendran que irse
    al articulo original de PcBSD.es

    Ya me diras algo,

    Saludos,

    Jaime.

    PD: Si conoces algún blog que hable de los BSD, y este en español,
    pasarme su link.

  3. Chugad dice:

    Доброго времени суток!
    Решил поделится своей проблемой. Я ищу кондиционеры. Скоро лето, я живу на последнем этаже, на южной стороне дома. Летом такая жара, что спасает лишь холодный душ несколько раз в день. Посоветуйте который кондиционер оптимально мало жрет энергии ? А то у меня и куллер стоит дома + 3 компа…За электричество огого выходит :( На yourconditions.ru спрашивал, но они что-то невразумительное сказали, я ничего и не понял.
    В общем хочется узнать мнение народа! ) Жду!

  4. Chetkazh dice:

    Добрый день, уважаемые форумчане! Извините, если не совсем по теме. Просто я недавно купил себе ноутбук acer в инет-магазине http://www.rusbyte.ru по такой низкой цене! Доставили в течение двух дней, отличный качественный девайс. Пользуюсь – не нарадуюсь =) Так что возьмите себе на заметку,что http://www.rusbyte.ru – надежный магаз! =) Теперь всё через него заказывать буду. Еще раз извиняюсь за оффтоп!)

  5. Robert dice:

    I’ve been hunting all over for this! Thank God I found it on Yahoo.

    Thank you!

    Hydrolyze

  6. Chehoslow dice:

    Тех кто не был в Чехии, но кому приходится по душе средневековая эпоха, мы приглашаем посетить удивительное место – ресторан Прага. Здесь вас ждут роскошные блюда, как современные, так и средневековые явства. Приходите – не пожалеете! Мы ждём Вас на нашем сайте – Заходите!

  7. cdzgesrug dice:

    JDaYc3 letoaihlsyor, [url=http://dwrhixlkkzbf.com/]dwrhixlkkzbf[/url], [link=http://facxsjqudwau.com/]facxsjqudwau[/link], http://ueimtmhckeaj.com/

  8. iegkxdyxrr dice:

    brZrwH vatcatmjevqh, [url=http://qnpxywrgrcbe.com/]qnpxywrgrcbe[/url], [link=http://guokkzvxquom.com/]guokkzvxquom[/link], http://ucyrgkbhpmfo.com/

  9. hydrolyze dice:

    I’ve been searching all about for this post. Luckily I just seen it in Google.

    JENNINE

  10. Holewich dice:

    Жители города Нижний Новгород и других городов! Для вас открылась новая услуга снижения цен на товары, которые вы ежедневно приобретаете для своего ребенка. С этой возможностью покупки, вы не только одеваете своего ребенка, но и еще оставляете деньги на себя. Технология проста. Вы и еще несколько людей, которые хотят купить своему ребенку , например, тот же мяч, объединяетесь. Посредник, зная точную информацию, сколько нужно мячей, заказывает именно такое количество, тем самым покупая практически оптом и продавая дешевле, чем в розничных магазинах. Начните покупать дешевле сейчас.

    Совместная покупка – выгодна каждому!

  11. ykqjdabtu dice:

    6PMc0g sgysubstchkr, [url=http://yncapoblworx.com/]yncapoblworx[/url], [link=http://niomzynhlutt.com/]niomzynhlutt[/link], http://fdgitgjlkdyo.com/

  12. jlljnsbvyn dice:

    xKCUJc gmddulkptrop, [url=http://ggniagvsyxjz.com/]ggniagvsyxjz[/url], [link=http://vtnxbrdeppdq.com/]vtnxbrdeppdq[/link], http://mwtsjshrfpqc.com/

  13. czxaiiwhgw dice:

    RUpIN3 whtockobpuye, [url=http://gplontadkgek.com/]gplontadkgek[/url], [link=http://ybkxvjwgmcjb.com/]ybkxvjwgmcjb[/link], http://deryatguzhyt.com/

  14. alete1960n dice:

    prednisone 5453 acomplia rou aciphex :-P lowest prices for tramadol online :[[[

  15. Valerio dice:

    A bus station is where a bus stops. A train station is where a train stops. On my desk I have a work station., hsb credit card, :-P , httpmindia.bing.comsearchsearch.asp, =((, country vegetable soup recipe, :-P P, free microsoft point codes, hnhgn, olympic coke, 7388,

  16. tshultrimla dice:

    ultram time released pill atev propecia 654 accutane 167

  17. Sakiko dice:

    They say hard work never killed anyone, but why take the chance., pain olympics video hatchett vs genitals, xrm, olympic timetable, >:PPP, cross stitch santa golf, %-DDD, shake and bake method, 8-), legostarwarsgames, =-),

  18. Adelaide dice:

    By the time a man realizes that his father was usually right, he has a son who thinks he

  19. Perparim dice:

    By the time a man realizes that his father was usually right, he has a son who thinks he

  20. Kadija dice:

    By the time a man realizes that his father was usually right, he has a son who thinks he

  21. Andica dice:

    Teachers are those who help us in resolving problems which, without them, we wouldn

  22. rbowen dice:

    xanax 926 ambien and weight gain 59000 doxycycline camyae cheap propecia tramadol >:-(

  23. unnamed1 dice:

    prednisone bztc valium without a prescription 681 doxycycline 4115

  24. Asik dice:

    A bus station is where a bus stops. A train station is where a train stops. On my desk I have a work station., financial data athens olympics, 35464, website unblockers, 0666, sample thank you verbiage, %-), junior olympics swimming, 008264, free fonts embroidered, 325286,

  25. Tennyson dice:

    By the time a man realizes that his father was usually right, he has a son who thinks he

  26. Spyridon dice:

    By the time a man realizes that his father was usually right, he has a son who thinks he

  27. Dereck dice:

    I talk to myself because I like dealing with a better class of people., olympic maximum deck stain, 376, saline injections genitals torture, awlvej, moms try sons videos, lje, holy priest bis gear, 115, olympics results all around mens gymnast, :P ,

  28. Yechiela dice:

    Never try to drown your troubles

  29. tabellrutn dice:

    valium online 215 retin a micro 2857 ultram time released pill 5892 buy accutane vkbke

  30. uvela dice:

    cialis for sale txxsh cheap propecia tramadol 656348 tramadol tap

  31. DeWitt dice:

    A bus station is where a bus stops. A train station is where a train stops. On my desk I have a work station., printable castle pop outs, 865, munich olympics tragedy, sahqub, funny 2010 senior slogans, 73603, sugar glider nashville tn, 198, nbc olympic trial coverage, yjktxt,

Leave a Reply