Minibuntu e UCK (Ubuntu Customization Kit) 2.0.1, mini ISO e personalizzazione
Scritto da: Antonio Doldo in Linux, Ubuntu, uckUno dei lavori recenti di Fabrizio Balliano, riguarda UCK e una sua applicazione mirata allo snellimento della distribuzione Ubuntu, personalizzabile all’estremo, e che, pur non avendo una collocazione ufficiale nel panorama Ubuntu, potrebbe diventare un buon punto di partenza per chi volesse partire con qualche centinaio di megabytes e costruire sopra ciò di cui necessita.
La mini distribuzione, denominata Minibuntu, occupa solo 138 MB e contiene un sistema per niente minimale, senza sistema grafico ne installer, ma che permette di aggiungere il software dai repo ufficiali di ubuntu. Il download è possibile da qui. Il titolo intelligente suggerisce di aggiungere gli ingredienti che vogliamo alla base:
Minibuntu - the base for your distro, now add your ingredients
Il rilascio di UCK 2.0.1, fissa tra l’altro qualche piccolo problema della release 2.0.0 e può essere scaricato dal sito ufficiale sia in formato deb (uck_2.0.1_all.deb) che in formato tar.gz (uck_2.0.1.tar.gz)
Il lavoro di preparazione dell’ISO è possibile con gli scripts contenuti in UCK e che permettono (il nome è esplicativo) per esempio di scompattare l’immagine ISO, montare il file casper come squash filesystem, apportare le modifiche, aggiungendo pacchetti (questa è la sola cosa che dobbiamo fare noi) e riassemblare il tutto ottenendo alla fine il file livecd.iso con il contenuto, temi compresi, da noi scelto
A prima vista sembra difficile, ma sono solo pochi comandi contenuti nel pacchetto deb:
/usr/bin/uck-remaster-finalize-alternate
/usr/bin/uck-remaster-pack-rootfs
/usr/bin/uck-remaster-unpack-rootfs
/usr/bin/uck-remaster-remove-win32-files
/usr/bin/uck-remaster-pack-iso
/usr/bin/uck-remaster-prepare-alternate
/usr/bin/uck-remaster-pack-initrd
/usr/bin/uck-remaster-unpack-initrd
/usr/bin/uck-remaster-clean
/usr/bin/uck-remaster-unpack-iso
/usr/bin/uck-remaster
/usr/bin/uck-gui
/usr/bin/uck-remaster-chroot-rootfs
UCK, già trattato da me in questo post e in quest’altro, permette tramite uck-gui di personalizzare in modo grafico la versione desktop di ubuntu e tramite gli scripts di agire sulla versione alternate.
Veniamo però a minibuntu, dicevamo che possiamo installare tutto, dal server xorg all’installer ubiquity, ma lo scopo non è quello di aggiungere tonnellate di pacchetti, per questo è più convienente snellire con uck la versione alternate o desktop
Iniziamo a scompattare il file ISO, considerando che, se non specificato, tutte le operazioni verrano svolte in /home/utente/tmp:
$ sudo uck-remaster-unpack-iso minibuntu-7.10-i386.iso
Mounting ISO image…
Unpacking ISO image…
Unmounting ISO image…
$ ls -l tmp/remaster-iso/
totale 40
dr-xr-xr-x 2 root root 4096 2007-12-19 22:04 casper
dr-xr-xr-x 3 root root 4096 2007-10-16 01:53 dists
dr-xr-xr-x 2 root root 4096 2007-10-16 01:53 install
dr-xr-xr-x 2 root root 4096 2007-10-16 01:53 isolinux
-r–r–r– 1 root root 10597 2007-11-21 21:09 md5sum.txt
dr-xr-xr-x 4 root root 4096 2007-10-16 01:53 pool
dr-xr-xr-x 2 root root 4096 2007-10-16 01:53 preseed
-r–r–r– 1 root root 222 2007-10-16 01:53 README.diskdefines
lrwxrwxrwx 1 root root 1 2007-12-19 22:04 ubuntu -> .
A questo punto monteremo il file casper/filesystem.squashfs con:
$ sudo uck-remaster-unpack-rootfs
Mounting SquashFS image…
Unpacking SquashFS image…
Unmounting SquashFS image…
$ sudo du -ks *
140408 remaster-iso
332592 remaster-root
cioè avremo il filesystem in remaster-root che potremo aggiornare e ampliare a piacere. Lanciamo lo script per accedere in chroot:
$ sudo uck-remaster-chroot-rootfs
Copying resolv.conf…
Copying local apt cache, if available
Mounting X11 sockets directory to allow access from customization environment…
root@kjbx-laptop:/#
e da questo terminale, aggiorniamo e aggiungiamo i pacchetti, come si vede in questo esempio:
modifico le fonti e aggiungo universe
# nano /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu gutsy main restricted
deb-src http://archive.ubuntu.com/ubuntu gutsy main restricted
deb http://archive.ubuntu.com/ubuntu gutsy universe
deb-src http://archive.ubuntu.com/ubuntu gutsy universe
deb http://security.ubuntu.com/ubuntu gutsy-security main restricted
deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted
aggiorno con apt-get update e installo per esempio un pacchetto da repo e uno con dpkg:
# apt-get install mc
installo il software che ho copiato da un altro terminale in ~tmp/remaster-root/
# dpkg -i truecrypt_4.3a-0_i386.deb
Quando abbiamo finito, rimuoviamo la cache (apt-get clean) e i deb copiati, usciamo dalla shell chroot (Ctrl-D) e lanciamo i comandi che ci permettono di avere la NOSTRA ISO con gli ingredienti scelti
Unmounting directory /home/adoldo/tmp/remaster-root/proc…
Unmounting directory /home/adoldo/tmp/remaster-root/sys…
Unmounting directory /home/adoldo/tmp/remaster-root/dev/pts…
Saving apt cache
Cleaning up apt
Removing customize dir…
Cleaning up temporary directories…
Restoring /root directory…
Removing /home/username directory, if created…
Restoring resolv.conf…
$ sudo uck-remaster-pack-rootfs
Updating files lists… Packing SquashFS image… Parallel mksquashfs: Using 1 processor Creating little endian 3.0 filesystem on /home/adoldo/tmp/remaster-iso/casper/filesystem.squashfs, block size 65536. [==== ] 839/18106 4%
Exportable Little endian filesystem, data block size 65536, compressed data, compressed metadata, compressed fragments, duplicates are removed
Filesystem size 126691.70 Kbytes (123.72 Mbytes)
39.97% of uncompressed filesystem size (316960.97 Kbytes)
Inode table size 188686 bytes (184.26 Kbytes)
32.91% of uncompressed inode table size (573355 bytes)
Directory table size 168247 bytes (164.30 Kbytes)
56.35% of uncompressed directory table size (298600 bytes)
Number of duplicate files found 962
Number of inodes 17533
Number of files 14724
Number of fragments 1861
Number of symbolic links 858
Number of device nodes 87
Number of fifo nodes 2
Number of socket nodes 1
Number of directories 1861
Number of uids 6
root (0)
syslog (101)
daemon (1)
man (6)
news (9)
klog (102)
Number of gids 19
nvram (106)
video (44)
audio (29)
tty (5)
kmem (15)
disk (6)
dip (30)
adm (4)
daemon (1)
shadow (42)
dhcp (101)
fuse (107)
ssl-cert (108)
staff (50)
src (40)
root (0)
utmp (43)
mail (8)
syslog (103)
$ sudo uck-remaster-pack-iso
Preparing directory for new files
Updating md5sums…
~/tmp/remaster-iso ~/tmp
~/tmp
Packing ISO image…
ISO description set to: Remastered Ubuntu LiveCD
Size of boot image is 4 sectors -> No emulation
6.67% done, estimate finish Wed Dec 19 22:28:19 2007
13.34% done, estimate finish Wed Dec 19 22:28:19 2007
19.99% done, estimate finish Wed Dec 19 22:28:19 2007
26.66% done, estimate finish Wed Dec 19 22:28:19 2007
33.31% done, estimate finish Wed Dec 19 22:28:19 2007
39.98% done, estimate finish Wed Dec 19 22:28:19 2007
46.63% done, estimate finish Wed Dec 19 22:28:19 2007
53.30% done, estimate finish Wed Dec 19 22:28:19 2007
59.95% done, estimate finish Wed Dec 19 22:28:19 2007
66.63% done, estimate finish Wed Dec 19 22:28:20 2007
73.28% done, estimate finish Wed Dec 19 22:28:21 2007
79.95% done, estimate finish Wed Dec 19 22:28:21 2007
86.60% done, estimate finish Wed Dec 19 22:28:22 2007
93.26% done, estimate finish Wed Dec 19 22:28:22 2007
Total translation table size: 2048
Total rockridge attributes bytes: 29535
Total directory bytes: 126976
Path table size(bytes): 854
Max brk space used 40000
75067 extents written (146 MB)
ottenendo infine:
$ ls -l remaster-new-files/
totale 150288
-rw-r–r– 1 root root 153737216 2007-12-19 22:28 livecd.iso
E’ bene precisare che l’immagine ISO si può costruire poco alla volta, mettendo al sicuro il file livecd.iso e agendo con uck su di esso
Enjoy
Ecco le schermate del file ISO in VirtualBox





Articoli (RSS)