Estendere le azioni dell’installer ubiquity

Share Button

Nei precedenti post e’ stato preso in esame come creare un livecd installabile, personalizzandolo non solo nei pacchetti ma anche automatizzando le richieste fatte dall’installer (ubiquity).

Questo pero’ spesso non e’ sempre sufficiente ai fine di una installazione personalizzata.

Molte volte occorre andare a modificare alcuni file di configurazione o cancellare qualche file utilizzato durante l’installazione non più necessario.

Le soluzioni praticabili sono diverse:

  • modificare i sorgenti dei pacchetti .deb e ricostruire i pacchetti
  • utilizzare un file preseed che, a sua volta, chiama uno script da eseguire a fine operazioni di ubiquity
  • estendere le azioni di ubiquity verso la macchina ospite attraverso degli script

La prima soluzione è sicuramente la più elegante. Necessita però della creazione di un repository di pacchetti (che può anche essere ospitato sul cd). Soluzione praticabile, ma sconsigliata qualora la necessità sia solo quella di modificare qualche variabile (es. il tema di gnome predefinito).
La seconda è stata affrontata nel precedente post dal titolo http://de.straba.us/2008/07/18/automatizzare-linstaller-ubiquity/.

L’ultima proposta non discosta molto dalla seconda, se non per il fatto che gli script saranno ospitati nel file iso compresso con squashfs.

La directory dove ubiquity ospita i vari script che vengono eseguiti sulla macchina di destinazione si trova in
/usr/lib/ubiquity/target-config
Il nome di ogni script comincia con un numero che indica l’ordine con cui viene eseguito.

questo il codice dello script che viene utilizzato da ubiquity per generare il file md5 del file xorg.conf


#! /bin/sh
set -e

if [ -f /etc/X11/xorg.conf ]; then
cp -a /etc/X11/xorg.conf /target/etc/X11/xorg.conf
# requires x11-common (>= 7.0.0-0ubuntu1)
mkdir -p /target/var/lib/x11
chroot /target sh -c ‘md5sum /etc/X11/xorg.conf > /var/lib/x11/xorg.conf.md5sum’
fi

exit 0

Leggendo lo script si capisce che la directory con cui viene vista la macchina ospite e’ /target
In particolare il comando
chroot /target sh -c ‘md5sum /etc/X11/xorg.conf > /var/lib/x11/xorg.conf.md5sum’
esegue il calcolo del md5 del file xorg.conf copiandolo in /var/lib/x11 utilizzando il comando chroot (per cambiare la root).

Venendo a quanto scritto nel post howto: creare un ubuntu live cd – in particolare al passo 2 – gli script che vorremmo far eseguire devono essere copiati in
$HOME/chroot/usr/lib/ubiquity/target-config

Per l’utente alle prime armi e’ consigliato accodare le operazioni su uno degli script giá esistenti.

Share Button

Leave a Reply