Repository 32bit  Forum
Repository 64bit  Wiki

Slackware on Alix3d3: differenze tra le versioni

Da Slacky.eu.
(Slackware on Alix3d3)
(Slackware on Alix3d3)
Riga 4: Riga 4:
I punti di forza di questa scheda sono il prezzo veramente ridotto, i consumi, circa 5W (ossia meno di una lampadina a basso consumo) e l'assenza assoluta di rumore, non avendo alcuna ventola al suo interno ed essendo dotata di una Compact Flash come hard-disk.
I punti di forza di questa scheda sono il prezzo veramente ridotto, i consumi, circa 5W (ossia meno di una lampadina a basso consumo) e l'assenza assoluta di rumore, non avendo alcuna ventola al suo interno ed essendo dotata di una Compact Flash come hard-disk.
Di contro possiamo dire che non è una scheda potentissima, è equipaggiata con un processore AMD Geode LX, ma riuscirete a far girare xfce.
Di contro possiamo dire che non è una scheda potentissima, è equipaggiata con un processore AMD Geode LX, ma riuscirete a far girare xfce.
L'alix3d3 è quindi un'ottima soluzione per realizzare un piccolo serverino domestico, su cui far girare alcuni servizi indispensabili come ssh, samba...
+
L'alix3d3 è quindi un'ottima soluzione per realizzare un piccolo serverino domestico, su cui far girare alcuni servizi indispensabili come ssh, per realizzare file server, web server, mail server ecc...
In questa guida spiegherò come installarci sopra una Slackware e come configurarla per avere un filesystem in sola lettura,
In questa guida spiegherò come installarci sopra una Slackware e come configurarla per avere un filesystem in sola lettura,
in modo tale da preservare la durata della CF. La partizione di / verrà montata in lettura-scrittura solo quando lo si vorrà, mediante un semplice script chiamato remountrw. Un analogo script (remountro) ci permetterà di rimontare / in sola lettura una volta terminato il lavoro.
in modo tale da preservare la durata della CF. La partizione di / verrà montata in lettura-scrittura solo quando lo si vorrà, mediante un semplice script chiamato remountrw. Un analogo script (remountro) ci permetterà di rimontare / in sola lettura una volta terminato il lavoro.

Versione delle 14:40, 15 mar 2011

Indice

Slackware on Alix3d3

L'Alix3d3 è una scheda embedded, prodotta da PC Engines, dalle dimensioni veramente ridotte: all'incirca quelle di un hard-disk da 3.5. I punti di forza di questa scheda sono il prezzo veramente ridotto, i consumi, circa 5W (ossia meno di una lampadina a basso consumo) e l'assenza assoluta di rumore, non avendo alcuna ventola al suo interno ed essendo dotata di una Compact Flash come hard-disk. Di contro possiamo dire che non è una scheda potentissima, è equipaggiata con un processore AMD Geode LX, ma riuscirete a far girare xfce. L'alix3d3 è quindi un'ottima soluzione per realizzare un piccolo serverino domestico, su cui far girare alcuni servizi indispensabili come ssh, per realizzare file server, web server, mail server ecc... In questa guida spiegherò come installarci sopra una Slackware e come configurarla per avere un filesystem in sola lettura, in modo tale da preservare la durata della CF. La partizione di / verrà montata in lettura-scrittura solo quando lo si vorrà, mediante un semplice script chiamato remountrw. Un analogo script (remountro) ci permetterà di rimontare / in sola lettura una volta terminato il lavoro.

Installazione

Per installare Slackware 13.1 su una scheda Alix3d3 ci serviremo di un lettore universale di schede Compact Flash e di VMware Player. Una volta installato VMware sulla nostra macchina occorre creare una virtual machine (Other Linux 2.6.X Kernel) senza hard-disk, con supporto al cd/rom e alle periferiche usb. Inseriamo il cd di Slackware 13.1 sul nostro pc e accendiamo la macchina virtuale. Apparirà la pagina di benvenuto di Slackware 13.1. Prima di premere enter ed iniziare quindi la fase di boot dal cdrom, facciamo attenzione che la macchina virtuale rilevi le periferiche usb, in modo tale che possa vedere la nostra Compact Flash(CF). Inizia la classica installazione di Slackware. Ci loggiamo come root e formattiamo la nostra CF con un:

fdisk /dev/sda

Creiamo una partizione facendo attenzione che sia bootable (opzione a). Salviamo ed usciamo. Non dobbiamo creare nessun partizione di swap! Qui è consigliabile lanciare anche il seguente comando:

tune2fs -c 0 /dev/sda1

per eliminare i controlli sul disco in fase di avvio. Lanciamo setup per far partire l’installazione del sistema operativo. La prima opzione da scegliere è TARGET, dove formatteremo la CF con filesystem ext2. Il filesystem ext2 non è casuale, riduce il numero di letture e scritture sulla CF ed è molto importante per aumentare la sua longevità. Una volta terminata la formattazione andiamo a scegliere l’installazione da cdrom. Qui dobbiamo scegliere solo i pacchetti A, AP,ed N. Eliminiamo il resto e scegliamo MENU come opzione di selezione dei pacchetti. A questo punto potete scegliere cosa vi serve realmente e cosa non userete mai su una scheda Alix. Ad esempio, dentro la classe A possiamo eliminare i pacchetti relativi al kernel generic se non vogliamo utilizzarlo. Installiamo bootloader, configuriamo la rete, impostiamo la password di root e terminiamo l’installazione.

Configurazione

Ora andremo ad effettuare alcune operazioni di configurazione. Una delle configurazioni più importanti è certamente montare le cartelle di sistema che subiscono un maggior numero di letture e scritture in RAM. Per farlo possiamo utilizzare il filesystem tmpfs.

Ci basterà editare /etc/fstab in questo modo:

/dev/sda1    /               ext2        defaults                             1   1
devpts       /dev/pts        devpts      gid=5,mode=620                       0   0
proc         /proc           proc        defaults                             0   0
tmpfs        /dev/shm        tmpfs       defaults                             0   0
tmpfs        /tmp            tmpfs       rw,nosuid,nodev,size=8M,mode=0777    0   0
tmpfs        /var            tmpfs       rw,suid,noatime,size=60M,mode=0755   0   0
tmpfs        /home           tmpfs       rw,suid,noatime,size=100M,mode=0755  0   0

Così facendo avremo le cartelle /tmp, /var e /home montate come read-write in ram, usando il filesystem tmpfs e non andremo mai a scrivere sulla nostra CF. Il filesystem di root viene montato come read-write solo al boot. Successivamente, dentro rc.local, sarà rimontato in sola lettura. E’ importante lasciare commentato al primo boot la riga relativa a /var e solo successivamente, ossia dopo il boot, decommentarla insieme agli script di avvio e shutdown indicati sotto. Così facendo al primo boot verrà popolata /var su disco e successivamente si avrà la copia dei dati contenuti nel disco su RAM. Se la commentiamo subito perderemo tutti i dati copiati in /var durante l’nstallazione, come ad esempio la lista dei pacchetti. La riga relativa alla /home possiamo decommentarla dopo aver creato il nostro utente. I log sono importanti e non possiamo permetterci di perderli ad ogni riavvio. Inoltre slackware salva in /var/log/packages la lista dei pacchetti installati sul sistema. Perdendo queste informazioni, tool come slackpkg diventeranno inaffidabili. Per non perdere i log, in /etc/rc.d/rc.S ho inserito il seguente script che effettua la copia della cartella /var e della /home al boot:

….
# Mount non-root file systems in fstab, but not NFS or SMB
# because TCP/IP is not yet configured, and not proc or sysfs
# because those have already been mounted.  Also check that
# devpts is not already mounted before attempting to mount
# it.  With a 2.6.x or newer kernel udev mounts devpts.
# We also need to wait a little bit to let USB and other
# hotplugged devices settle (sorry to slow down the boot):
echo "Mounting non-root local filesystems:"
sleep 3
if /bin/grep -wq devpts /proc/mounts ; then
 /sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs,nodevpts
else
 /sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs
fi


#Copying /home to RAM
#cp -r /home_bck/* /home/

#Copying /var to RAM
cp -r /var_bck/* /var/


# Enable swapping again.  This is needed in case a swapfile is used,
….

Così facendo, al boot, si avrà la copia della cartella /var in RAM. Questa operazione va fatta in rc.S perché è importante che /var venga copiata prima che il demone sysklogd venga avviato, altrimenti i nostri log non verrano scritti in ram.

Per la copia della cartella /home ho scelto un path differente, ossia dentro /etc/rc.d/rc.M, prima dell’avvio del demone sysklogd:

...
#Copying /home_bck to /home
rsync -a /home_bck/ /home/

# Start the system logger.
if [ -x /etc/rc.d/rc.syslog -a -x /usr/sbin/syslogd -a -d /var/log ]; then
 . /etc/rc.d/rc.syslog start
fi
…

Non è stato possibile mettere in /etc/rc.d/rc.M anche l’rsync sulla cartella var perché all’interno di /etc/rc.d/rc.S vengono fatte operazioni di pulizia relative a /var/log.

Dentro /etc/rc.d/rc.local ho aggiunto:

echo "Mounting usb storage..."
mount /dev/sdb /var/dati -o umask=0000

echo "Mounting filesystem as read-only"
remountro

per montare al boot la mia penna usb, utilizzata come disco di rete condiviso con samba e per montare il filesystem / in sola lettura. remountro è un semplice script che effettua le seguenti operazioni:

#!/bin/sh
sync
sleep 1
mount -o remount,ro /

In /etc/rc.d/rc.local_shutdown ho inserito uno script analogo per il salvataggio dei log e dei dati dell’utente prima dello shutdown.

#Shutdown script

# clean up tmp's
if [ -d /var/tmp ]
then
       cd /var/tmp
       find \( ! -name . ! -name .. \) -exec rm -rf {} \; 2> /dev/null
fi
if [ -d /tmp ]
then
       cd /tmp
       find \( ! -name . ! -name .. \) -exec rm -rf {} \; 2> /dev/null
fi

remountrw
echo "Saving /home to /home_bck"
rsync -a --delete /home/ /home_bck/

echo "Saving /var to /var_bck..."
rsync -a --delete /var/ /var_bck/

remountrw è uno script analogo a remountro che monta in lettura-scrittura /:

#!/bin/sh
mount -o remount,rw,noatime /

Questi due script vanno commentati dopo il primo boot. Una volta effettuato il boot sulla scheda Alix andranno decommentati. Va decommentata anche la riga relativa a /var dentro /etc/fstab prima di fare il primo reboot. Prima di fare il primo shutdown fare attenziona a creare le cartelle di backup /var_bck e /home_bck.

Così facendo al primo boot verrà scritto tutto su disco, verrà quindi fatto un backup al primo shutdown e un ripristino al riavvio successivo.

A questo punto possiamo spegnere la macchina virtuale, togliere la CF e montarla sulla nostra Alix.

Se utilizzate slackpkg vi servirà installare anche il pacchetto ncurses, una sua dipendenza. Basterà abilitare un mirror in /etc/slackpkg/mirrors e lanciare il comando:

slackpkg install ncurses

Configurazione dei servizi

Samba

Per avviare samba occorre andare in /etc/samba e copiare il file smb.conf.sample in smb.conf.

A questo punto si avvieranno i demoni di samba e il servizio partirà.

Per poter accedere al disco condiviso occorre creare un utente per samba con il seguente comando:

smbpasswd -a username

Se si utilizza una chiavetta usb come disco di rete collegato al nostro server occorre montarla con i seguenti permessi.

mount /dev/sdb /var/dati -o umask=0000

Se non la montiamo con questo tipo di maschera la cartella risulterà leggibile da tutti ma con l’opzione di scrittura abilitata solo per root.

Affinché samba si avvii correttamente su un filesystem in sola lettura occorrera spostare /etc/samba dentro /var (montata in ram come read-write). Per fare questo possiamo creare una cartella /var/samba:

mkdir /var/samba

andare in /etc/ e creare un link simbolico tra le due cartelle con:

mv samba/ samba.old/

cp samba.old/* /var/samba/

ln -s /var/samba/ samba

rimontare / in sola lettura con remountro e riavviare samba.

Questo giochino qui è possibile farlo con tutti i servizi che richiedono la scrittura su disco. Basta creare il solito link simbolico su / e copiare i file dentro una apposita cartella di /var.

--Bart 21:36, 14 mar 2011 (UTC)Bart bart at slacky dot it

Strumenti personali
Namespace

Varianti