Personalitza una distribució basada en Ubuntu

De La Wiki de MaInKiVi
Salta a la navegació Salta a la cerca

Es pot donar el cas que ens agrade Ubuntu però només en base perque volem un instal.lador amb una serie de programari preinstal.lat, un escriptori per defecte, una serie de configuracions... això ho podem sol.lucionar agafant una distribució Ubuntu, modificant-la i tornant a convertir-la en una ISO.

Preparant la base

Primer caldrà instal.lar el programari necessari:

sudo apt-get install squashfs-tools genisoimage

I preparem un diposit per deixar la imatge:

mkdir ~/custom-img

I dins deixarem la ISO descarraga:

cp ubuntu.iso ~/custom-img
cd ~/custom-img

NOTE - dono per fet que estem en la carpeta on està descarregat ubuntu..iso Ara crearem un punt temporal de muntatge i dins extraurem el contingut de la iso:

mkdir mnt
sudo mount -o loop ubuntu.iso mnt
mkdir extract
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract

Ara comencem en la part important extraurem el sistema de fitxers

sudo unsquashfs mnt/casper/filesystem.squashfs
sudo mv squashfs-root edit

A una carpeta anomenada 'edit que serà on editarem el sistema al nostre gust. En assegurem que tindrà accés a internet:

sudo cp /etc/resolv.conf edit/etc/

Montem uns direcotris importants:

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

I ara que ja estem dins del sistema fem modificacions que ens permetràn instal.lar paquets:

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

Modificant la imatge

A partir d'aquí ja podem, en modo consola, modificar el sistema. Primer actualitzem els repositoris:

apt update

I ara podem instal.lar com desinstal.lar programari, un exemple

apt install chromium-browser chromium-browser-l10n audacity kdenlive openshot zenmap openjdk-8-jre autofs samba 

O eliminar programari que no tenim perque utilitzar:

apt remove --purge transmission 

O actualitzar un paquet ja instal.lat

apt install --only-upgrade firefox

En el meu cas, per crear la meva Linkdows faig servir les pases de modificació d'aparença explicades en

Ara ja gairebé estem, primer fem una mica de neteja:

apt-get -y autoremove && apt-get -y autoclean
rm -rf /tmp/* ~/.bash_history
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl

Desmontem el directori de treball:

umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount edit/dev

Ultimes passes per crear la imatge

Ara queden les últimes ordres, primer generar un nou manifest:

sudo chmod +w extract/casper/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee extract/casper/filesystem.manifest
sudo cp extract/casper/filesystem.manifest extract/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract/casper/filesystem.manifest-desktop
sudo sed -i '/casper/d' extract/casper/filesystem.manifest-desktop

Comprimim la nova imatge:

sudo mksquashfs edit extract/casper/filesystem.squashfs -b 1048576

Actualitzem la mida del sistema de fitxers:

printf $(sudo du -sx --block-size=1 edit | cut -f1) | sudo tee extract/casper/filesystem.size

Eliminem l'anterior md5sum:

cd extract
sudo rm md5sum.txt

I generem un de nou

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

I creem la nova ISO, atenció, no oblideu l'últim punt.

sudo genisoimage -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 ../nom_de_la_teva_imatge.iso .

On nom_de_la_teva_imatge.iso es el nom que li donaràs a la teva distribució, per exemple linkadows64.iso.


Testejant la imatge

Hi han diverses maneres per provar la imatge, una és amb el programa VirtualBox o amb l'eina qemu, per exemple:

qemu -cdrom linkdows64.iso -boot d -m 512

On podem virtualitzar l'engegada per CD de la ISO en un equip amb 512 MB de RAM.

Recursos