Home Come cambiarla Aggiornare l'immagine squashfs
Aggiornare l'immagine squashfs PDF Stampa E-mail
Scritto da cloc3   
Giovedì 14 Maggio 2009 15:36

Un filesystem squashfs è un oggetto in sola lettura.

Ma questo non significa che si tratti di un prodotto statico, confezionato una volta per tutte e da accettare come tale, nel bene e nel male.

Netlive, infatti, nasce da una immagine Debian-live, ma è stata successivamente adattata e aggiornata come un vero e proprio sistema operativo tradizionale. I metodi per realizzare questo, inoltre, sono del tutto indipendenti dalla distribuzione.

Gli Strumentii

Per utlizzare una immagine squashfs, è necessario disporre quantomeno degli opportuni moduli del kernel, distribuiti (da debian) nel pacchetto squashfs-modules. La versione del modulo deve essere maggiore o uguale a quella dell'immagine stessa. I problemi di compatibilità tra versioni differenti, infatti, sono piuttosto frequenti.

Per manipolare un'immagine squashfs, esiste il pacchetto squashfs-tools. Spesso, questo pacchetto non è incluso nell'immaigne origianale di partenza, ma, come vedremo, può essere aggiunto in qualunque momento.

Aprire un disco immagine

Se il pacchetto squashfs è disponibile nel sistema, si può fare uso del comando unsquashfs

# unsquashfs immagine.squashfs /squashfs_dir

Altrimenti è necessario montare preventivamente l'immagine in uno spazio in sola lettura:

# mount -t squashfs -o loop  immagine.squashfs /mnt/squashfs_ro
# cp -a  /mnt/squashfs_ro /squashfs_dir

Attivare il sistema /squashfs_dir

La cartella /squashfs_dir contiene un vero e proprio sistema operativo autonomo, accessibile in lettura e scrittura dall'ambiente esterno.

È possibile però accedere ad esso come ad un sistema operativo isolato facendo uso del comando chroot

Prima, però bisogna renderlo attivo, rendendo disponibili, al suo interno, i file speciali generati dal kernel.

Le operazioni minimali da eseguire sono le seguenti:

SQUASH=/squashfs_dir
# mount -t proc proc_squash ${SQUASH}/proc
# mount -t sysfs sys_squash ${SQUASH}/sys
# mount -o bind /dev  ${SQUASH}/dev
# mount -o bind /dev/pts  ${SQUASH}/dev/pts
E finalmente:
# chroot $SQUASH
Lavorare nel chroot
Il chroot è un comando per lanciare processi in un ambiente che utilizza come directory radici la sottocartella locale, che rappresenta a tutti gli effetti un sistema operativo indipendente da quello esterno. L'attivazione dei file speciali, inoltre permette di utilizzare tutt i servizi del kernel.
La prima operazione da eseguire è la verifica della navigazione in rete, con un ping a un server remoto (e.g.: www.linux.org). Se sorgono problemi, verificare il file /etc/resolv.conf.
Successivamente, sincronizzare il database della distribuzione:
# apt-get update
# apt-get upgrade
Se mancante, installare il pacchetto squashfs-tools:
# apt-get install squashfs-tools
Configurare a piacere modellando la lista dei pacchetti desiderati.
Personalizzare i servizi
Le immagini squashfs distribuite sul mercato utilizzano un gran numero di servizi di autoconfigurazione che non sempre sono necessari. Per esempio, non è assolutamente detto che, in un network locale, sia previsto l'uso di strumenti bluetooth o l'impiego di strumenti di autoconfigurazione come avahi. La sequenza dei servizi di boot è gestita sulla base dei link contenuti nelle cartelli /etc/rc*.d. Può essere preziosa, allo scopo, l'installazione del pacchetto sysv-rc-conf.
Ultimo aggiornamento Venerdì 03 Agosto 2012 13:00
 
Copyright © 2018 . Tutti i diritti riservati.
Joomla! è un software libero rilasciato sotto licenza GNU/GPL.