个人工具

UbuntuHelp:ComoCDVivo

来自Ubuntu中文

跳转至: 导航, 搜索
= Cómo personalizar el CD de Ubuntu Desktop =

Si le interesa personalizar el CD de Ubuntu, quizás para demostración de alguna aplicación en particular, o para traducirlo a cierto idioma, aquí encontrará cómo.

Requerimientos del Sistema
  • Entre 3-5 GB de espacio libre en disco
  • Al menos 512 MB de RAM y 1 GB de swap
  • squashfs-tools
  • mkisofs
  • Un kernel con soporte para squashfs (el kernel de DapperDrake lo tiene)
  • [1] QEMU], VirtualBox ó VMware para hacer pruebas
  • Ubuntu (con cualquier otra distro está bien, sólo hay que omitir usar //sudo//)
El Proceso

Primero aseguresé de tener todas las herramientas necesarias: Cópielo ó muevalo a un directorio vacío: mkdir ~/live mv ubuntu-7.04.1-desktop-i386.iso ~/live cd ~/live

Extracción del contenido del CD

Monte la imagen iso mkdir mnt sudo mount -o loop ubuntu-7.04.1-desktop-i386.iso mnt Extraiga el contenido de la imagen en el directorio 'extract-cd' mkdir extract-cd rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

Extracción del sistema

Monte el sistema de archivos de tipo squashfs mkdir squashfs sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs Extraiga el contenido del directorio squashfs en el directorio 'edit' mkdir edit sudo cp -a squashfs/* edit/ atencion: no usar el comando unsquashfs de Ubuntu 6.10 (Edgy), porque no respeta los bits de set-id [2]

Preparar y chroot

Si vá a necesitar conexión a la red mientras haga chroot: sudo cp /etc/resolv.conf edit/etc/ Dependiendo de su configuración, quizás también necesite copiar el archivo hosts: sudo cp /etc/hosts edit/etc/ sudo chroot edit mount -t proc none /proc mount -t sysfs none /sys Para evitar problemas con los //locales// e importar las llaves GPG: export HOME=/root export LC_ALL=C

Personalizaciones

Algunos ejemplos de personalización y pistas.

Apt-get

Para ver los paquetes instalados según el tamaño: dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less Cuando quiera remover algún paquete recuerde usar purge (para quitar también los archivos de configuración del paquete removido) apt-get remove --purge package name

Personalizar el fondo de GNOME

Generalmente los archivos de la imagen de fondo están en /usr/share/backgrounds. Copie su imagen png allí y edite los siguientes archivos:

  • /usr/share/gnome-background-properties/ubuntu-wallpapers.xml y
  • /etc/gconf/gconf.xml.defaults/%gconf-tree.xml

y a la cadena que diga ///share/backgrounds/warty-final-ubuntu.png// cámbiela para que apunte a su archivo.

Cambiar los valores de gconf (fuentes, paneles, etc)

Para hacer cualquier cambio en los atributos de gconf es necesario agregar el valor deseado en el archivo **/etc/gconf/gconf.xml.defaults/%gconf-tree.xml**. Agregando un valor en ese archivo cambiará los valores por defecto de Gnome u otras aplicaciones. Así puede cambiar las fuentes, imagenes de fondo, los temas, cursores, etc. En vez de editar el archivo con gedit u otro editor de texto, se puede usar gconftool-2, dentro del entorno chroot, ejecutando la siguiente linea: gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set yourkey "yourvalue" donde string, yourkey y yourvalue deben ser el tipo, key y valor que quiere cambiar.

Cambiar el idioma por defecto de gfxboot

Esta personalización se realiza fuera del chroot. sudo -s apt-get install dpkg-dev apt-get source gfxboot-theme-ubuntu gfxboot cd gfxboot-theme-ubuntu*/ make DEFAULT_LANG=fi sudo cp -af boot/* ../extract-cd/isolinux/ exit Cambie “fi” a su idoma local preferido. Note que esto no cambia los idiomas disponibles en el menú F2. Para más infomación sobre la personalización de gfxboot, vea Ubuntu|Customization Kit.

  • Otra forma de cambiar el idioma por defecto de gfxboot sin recompilar el paquete es creando un archivo con nombre lang en el directorio de isolinux, que contenga su nombre de idioma local.

Límites de personalización

Luego de todos los retoques que haya realizado, aseguresé de que ningún usuario tenga un UID mayor ó igual a 1000. Porque sino su imagen no arrancará debido a que ningún usuario inicial está disponible (vea /usr/lib/user-setup/functions.sh y /usr/lib/user-setup/user-setup-apply). Si con: grep '[^:]*:[:]*:[1-9][0-9][0-9][0-9]:' /etc/passwd grep '[^:]*:[:]*:[12][0-9][0-9][0-9][0-9]:' /etc/passwd no produce ninguna salida, está bien. En cambio sino, deberá cambiar el UID de aquel/aquellos usuarios, por ejemplo: usermod -u 500 usuario_con_UID_mayor_que_999

Personalización Avanzada
Kernel del Live CD

Si desea personalizar aún mas el proceso de arranque, puede cambiar el kernel del livecd, copiando los archivos vmlinuz y initrd deseados al lugar de donde los encontrará, en extract-cd/casper (no olvidar de instalar el kernel apropiado del livecd, una vez que haya cambiado de entorno con chroot al directorio 'edit') y luego: sudo cp /boot/vmlinuz-2.6.15-26-k7 extract-cd/casper/vmlinuz sudo cp /boot/initrd.img-2.6.15-26-k7 extract-cd/casper/initrd.gz

Arranque del init

Puede editar los archivos en edit/usr/share/initramfs-tools/scripts/casper-bottom/* . Por ejemplo se puede cambiar el hostname ó el usuario del livecd. esto es: sudo nano edit/usr/share/initramfs-tools/scripts/casper y edite el nombre de usuario ó hostname sudo nano edit/usr/share/initramfs-tools/scripts/casper-bottom/10adduser para cambiar incluso la contraseña del usuario del livecd. PD: para obtener una contraseña encriptada, hay que usar el programa //mkpasswd// que está incluido en el paquete //whois//.

Rehacer el initrd

Luego de haber modificado el kernel, los scripts de inicio ó agregado nuevos módulos al kernel, necesitará rehacer el archivo initrd.gz y copiarlo en el directorio casper. sudo chroot edit mkinitramfs -o /initrd.gz 2.6.18-26-k7 (reemplaze la versión del kernel con la que arrancará el CD, esto lo puede hallar en edit/lib/modules) Salga de la jaula chroot y mueva este archivo al directorio extract-cd/casper: exit mv edit/initrd.gz extract-cd/casper/

= Limpieza =

Asegurese de quitar cualquier archivo temporario que no sea necesario, puesto que el espacio en el CD es limitado. Un ejemplo típico son los archivos de los paquetes descargados, que se pueden borrar haciendo: apt-get clean Ó borre los archivos temporales rm -rf /tmp/* Tambien las configuraciones de red rm /etc/resolv.conf y ahora desmonte los sistemas de archivos especiales y salga del chroot: umount /proc umount /sys exit

Armando el CD =

Regenere el maniefiesto 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 -ie '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop Comprima el sistema de archivos sudo rm extract-cd/casper/filesystem.squashfs sudo mksquashfs edit extract-cd/casper/filesystem.squashfs Ponga un nombre a la imagen en extract-cd/README.diskdefines sudo vim extract-cd/README.diskdefines Quite el viejo md5sum.txt y vuelva a calcular la suma md5 sudo -s rm extract-cd/md5sum.txt cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt exit Cree la imagen iso cd extract-cd sudo mkisofs -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-7.04.1-desktop-i386-custom.iso

= Probar el CD =

Pruebe el CD usando el emulador qemu: qemu -cdrom ubuntu-6.06.1-desktop-i386-custom.iso -boot d

= Quemar la imagen al CD =

¡Simple!: cdrecord dev=/dev/cdrom ubuntu-7.04.1-desktop-i386-custom.iso

Comentarios y más info ==

UCK es una herramienta que ayuda para la personalización de los Live CD de Ubuntu oficiales (Kubuntu/Xubuntu and Edubuntu) acorde a sus necesidades. Puede agregar cualquier paquete al sistema, como ser paquetes de idiomas u otras aplicaciones. http://uck.sourceforge.net/ http://www.atworkonline.it/~bibe/ubuntu/custom-livecd.htm seems to have some nice info. no license that I can see so we would need to ask permission from the author to us its material.


También puede buscar en google por un programa llamdo //reconstructor// que le hará todo el trabajo aquí explicado, de forma mucho más fácil.