Repository 32bit  Forum
Repository 64bit  Wiki

Slackware on Alix3d3: differenze tra le versioni

Da Slacky.eu.
(inserita immagine Alix3d3 nel suo box)
m
Riga 32: Riga 32:
Ora possiamo Lanciare '''setup''' per far partire l’installazione del sistema operativo.
Ora possiamo Lanciare '''setup''' per far partire l’installazione del sistema operativo.
Quando si installa Slackware, la prima opzione da scegliere è "TARGET", che individua il disco (partizione) di installazione ed il tipo di filesystem che si intende usare (ext2, ext3, reiserfs, ecc.). In questa schermata vi viene chiesto se intendete anche formattare il disco; occorre rispondere "No - No, do not format this partition" perché l'abbiamo già fatto. La scelta del filesystem ext2 non è casuale, riduce il numero di letture e scritture sulla CF ed è molto importante per aumentarne la longevità.
+
[[Image:Alix3d3-in-box.jpg|right|thumb|320px|La Alix3d3 nel suo box]]
  +
Quando si installa Slackware, la prima opzione da scegliere è "TARGET", che individua il disco (partizione) di installazione ed il tipo di filesystem che si intende usare (ext2, ext3, reiserfs, ecc.).
  +
In questa schermata vi viene chiesto se intendete anche formattare il disco; occorre rispondere "No - No, do not format this partition" perché l'abbiamo già fatto. La scelta del filesystem ext2 non è casuale, riduce il numero di letture e scritture sulla CF ed è molto importante per aumentarne la longevità.
Una volta terminata la formattazione andiamo a scegliere l’installazione da cdrom (Install from a Slackware CD or DVD).
Una volta terminata la formattazione andiamo a scegliere l’installazione da cdrom (Install from a Slackware CD or DVD).
Riga 149: Riga 149:
mount -o remount,rw,noatime /
mount -o remount,rw,noatime /
</source>
</source>
[[Image:Alix3d3-in-box.jpg|left|280px|La Alix3d3 nel suo box]] 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.
+
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.
Prima di fare il primo shutdown fare attenziona a creare le cartelle di backup /var_bck e /home_bck.

Versione delle 12:56, 20 apr 2011

Indice

Slackware on Alix3d3

La scheda Alix3d3

L'Alix3d3 è una scheda embedded, prodotta da PC Engines ( http://www.pcengines.ch ), dalle dimensioni veramente ridotte: 100 x 160 mm, 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 tranquillamente 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 13.1 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 creiamo inizialmente sulla nostra CF una partizione primaria con:

fdisk /dev/sda

facendo attenzione che sia bootable (opzione a). Salviamo ed usciamo. Non dobbiamo creare nessuna partizione di swap!

Quindi formattiamo la partizione in ext2 con i normali tool di formattazione:

mkfs.ext2 /dev/sda1

Qui è consigliabile lanciare anche il seguente comando:

tune2fs -c 0 /dev/sda1

per eliminare i controlli sul disco in fase di avvio.

Ora possiamo Lanciare setup per far partire l’installazione del sistema operativo.

La Alix3d3 nel suo box

Quando si installa Slackware, la prima opzione da scegliere è "TARGET", che individua il disco (partizione) di installazione ed il tipo di filesystem che si intende usare (ext2, ext3, reiserfs, ecc.). In questa schermata vi viene chiesto se intendete anche formattare il disco; occorre rispondere "No - No, do not format this partition" perché l'abbiamo già fatto. La scelta del filesystem ext2 non è casuale, riduce il numero di letture e scritture sulla CF ed è molto importante per aumentarne la longevità.

Una volta terminata la formattazione andiamo a scegliere l’installazione da cdrom (Install from a Slackware CD or DVD).

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 il bootloader, configuriamo la rete, impostiamo la password di root e terminiamo l’installazione.

Nota: in linea di principio dovrebbe essere possibile procedere all'installazione del sistema anche dopo un normale avvio del CD di Slackware, ma la procedura non è stata testata. Per comodità e semplicità d'uso si è ricorsi a VMware Player.

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à montare la partizione dove è stata installata Slackware, dare un bel chroot sulla cartella in cui è stata montata ed 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 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ì 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. Inoltre non è possibile inserire la copia in rc.M perché all'interno di rc.S vengono fatte delle operazioni di pulizia su /var. Per la copia della cartella /home è stato invece possibile scegliere 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

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