Repository 32bit  Forum
Repository 64bit  Wiki

Slackware on Alix3d3: differenze tra le versioni

Da Slacky.eu.
(Slackware on Alix3d3)
(Samba)
 
(15 revisioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
==''' Slackware on Alix3d3 '''==
==''' Slackware on Alix3d3 '''==
+
[[Image:Alix3d3-scheda-madre.jpg|right|thumb|320px|La scheda Alix3d3]]
L'Alix3d3 è una scheda embedded, prodotta da PC Engines, dalle dimensioni veramente ridotte: all'incirca quelle di un hard-disk da 3.5.
+
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.
+
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 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...
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 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.
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''' ==
== '''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.
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.
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).
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:
+
Inizia la classica installazione di Slackware. Ci loggiamo come root e creiamo inizialmente sulla nostra CF una partizione primaria con:
  +
<source lang="bash">
  +
fdisk /dev/sda
  +
</source>
  +
facendo attenzione che sia bootable (opzione a). Salviamo ed usciamo. Non dobbiamo creare nessuna partizione di swap!
<pre>fdisk /dev/sda</pre>
+
Quindi formattiamo la partizione in ext2 con i normali tool di formattazione:
  +
<source lang="bash">
  +
mkfs.ext2 /dev/sda1
  +
</source>
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:
Qui è consigliabile lanciare anche il seguente comando:
  +
<source lang="bash">
  +
tune2fs -c 0 /dev/sda1
  +
</source>
  +
per eliminare i controlli sul disco in fase di avvio.
<pre>tune2fs -c 0 /dev/sda1</pre>
+
Ora possiamo Lanciare '''setup''' per far partire l’installazione del sistema operativo.
per eliminare i controlli sul disco in fase di avvio.
+
[[Image:Alix3d3-in-box.jpg|right|thumb|320px|La Alix3d3 nel suo box]]
Lanciamo 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.).
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à.
+
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.
+
Qui dobbiamo scegliere solo i pacchetti A, AP,ed N. Eliminiamo il resto e scegliamo MENU come opzione di selezione dei pacchetti.
+
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.
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.
+
Installiamo il bootloader, configuriamo la rete, impostiamo la password di root e terminiamo l’installazione.
==''' Configurazione '''==
+
''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.
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.
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:
+
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:
<pre>
+
<source lang="text">
/dev/sda1 / ext2 defaults 1 1
+
/dev/sda1 / ext2 noatime,defaults 1 1
devpts /dev/pts devpts gid=5,mode=620 0 0
+
#/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
proc /proc proc defaults 0 0
+
#/dev/fd0 /mnt/floppy auto noauto,users,rw,umask=00 0 0
tmpfs /dev/shm tmpfs defaults 0 0
+
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /tmp tmpfs rw,nosuid,nodev,size=8M,mode=0777 0 0
+
proc /proc proc defaults 0 0
tmpfs /var tmpfs rw,suid,noatime,size=60M,mode=0755 0 0
+
tmpfs /dev/shm tmpfs defaults 0 0
tmpfs /home tmpfs rw,suid,noatime,size=100M,mode=0755 0 0</pre>
+
tmpfs /var tmpfs rw,suid,noatime,size=100M,mode=0755 0 0
  +
tmpfs /home tmpfs rw,suid,noatime,size=100M,mode=0755 0 0
  +
tmpfs /tmp tmpfs rw,suid,noatime,size=8M,mode=0777 0 0
  +
tmpfs /usr/local/etc tmpfs rw,suid,noatime,size=3M,mode=0755 0 0
  +
</source>
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.
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.
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.
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:
+
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:
<pre>
+
<source lang="bash">
….
….
# Mount non-root file systems in fstab, but not NFS or SMB
# Mount non-root file systems in fstab, but not NFS or SMB
Riga 68: Riga 70:
/sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs
/sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs
fi
fi
 
#Copying /home to RAM
#Copying /home to RAM
Riga 75: Riga 76:
#Copying /var to RAM
#Copying /var to RAM
cp -r /var_bck/* /var/
cp -r /var_bck/* /var/
 
# Enable swapping again. This is needed in case a swapfile is used,
# Enable swapping again. This is needed in case a swapfile is used,
….</pre>
+
….</source>
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.
+
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:
Per la copia della cartella /home ho scelto un path differente, ossia dentro /etc/rc.d/rc.M, prima dell’avvio del demone sysklogd:
+
<source lang="bash">
 
<pre>
 
...
...
#Copying /home_bck to /home
#Copying /home_bck to /home
Riga 92: Riga 92:
fi
fi
</pre>
+
</source>
 
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:
Dentro /etc/rc.d/rc.local ho aggiunto:
<pre>
+
<source lang="bash">
echo "Mounting usb storage..."
echo "Mounting usb storage..."
mount /dev/sdb /var/dati -o umask=0000
+
mount /dev/sdb1 /mnt/dati -o umask=0000
echo "Mounting filesystem as read-only"
echo "Mounting filesystem as read-only"
remountro
remountro
</pre>
+
</source>
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:
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:
<pre>
+
<source lang="bash">
#!/bin/sh
#!/bin/sh
sync
sync
sleep 1
sleep 1
mount -o remount,ro /
mount -o remount,ro /
</pre>
+
</source>
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.
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.
<pre>
+
<source lang="bash">
#Shutdown script
#Shutdown script
Riga 133: Riga 133:
echo "Saving /var to /var_bck..."
echo "Saving /var to /var_bck..."
rsync -a --delete /var/ /var_bck/
rsync -a --delete /var/ /var_bck/
</pre>
+
</source>
remountrw è uno script analogo a remountro che monta in lettura-scrittura /:
remountrw è uno script analogo a remountro che monta in lettura-scrittura /:
<pre>
+
<source lang="bash">
#!/bin/sh
#!/bin/sh
mount -o remount,rw,noatime /
mount -o remount,rw,noatime /
</pre>
+
</source>
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.
Riga 147: Riga 147:
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:
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:
<pre>
+
<source lang="bash">
slackpkg install ncurses
slackpkg install ncurses
</pre>
+
</source>
==''' Configurazione dei servizi '''==
==''' Configurazione dei servizi '''==
  +
==''' SSH '''==
  +
SSH è un servizio indispensabile su ogni PC, specialmente se abbiamo intenzione di utilizzare la nostra macchina come server casalingo. Le sue funzionalità sono veramente tantissime. Possiamo utilizzare un tunnel ssh per navigare in sicurezza quando non siamo a casa, oppure possiamo utilizzare programmi installati sulla nostra Linux box su qualunque pc desideriamo abilitando l'X11forwarding, amministrare la macchina da remoto e tantissimo altro. Abilitare il servizio ssh su Slackware è semplicissimo: è sufficiente dare i permessi di esecuzione al demone /etc/rc.d/rc.sshd con:
  +
<source lang="bash">chmod +x /etc/rc.d/rc.sshd</source> ed avviarlo con
  +
<source lang="bash">/etc/rc.d/rc.sshd start</source>
  +
E' di assoluta importanza effettuare alcune modifiche al file di configurazione /etc/sshd_config per ottenere una sicurezza maggiore. Consiglio di modificare almeno le seguenti voci in questo modo:
==''' Samba '''==
+
<source lang="bash">Port <una porta differente dalla classica 22>
  +
Protocol 2
  +
PermitRootLogin no
  +
X11Forwarding yes
  +
UsePrivilegeSeparation yes</source>
  +
Inoltre l'utilizzo di una coppia di chiavi al posto della classica password permetterebbe di ottenere un livello di sicurezza ancora più alto.
  +
  +
==''' Samba '''==
Per avviare samba occorre andare in /etc/samba e copiare il file smb.conf.sample in smb.conf.
Per avviare samba occorre andare in /etc/samba e copiare il file smb.conf.sample in smb.conf.
Riga 163: Riga 171:
Per poter accedere al disco condiviso occorre creare un utente per samba con il seguente comando:
Per poter accedere al disco condiviso occorre creare un utente per samba con il seguente comando:
<pre>smbpasswd -a username</pre>
+
<source lang="bash">smbpasswd -a username</source>
Se si utilizza una chiavetta usb come disco di rete collegato al nostro server occorre montarla con i seguenti permessi.
Se si utilizza una chiavetta usb come disco di rete collegato al nostro server occorre montarla con i seguenti permessi.
<pre>mount /dev/sdb /var/dati -o umask=0000</pre>
+
<source lang="bash">mount /dev/sdb1 /mnt/dati -o umask=0000</source>
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.
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.
Riga 173: Riga 181:
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:
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:
<pre>mkdir /var/samba</pre>
+
<source lang="bash">mkdir /var/samba</source>
andare in /etc/ e creare un link simbolico tra le due cartelle con:
andare in /etc/ e creare un link simbolico tra le due cartelle con:
<pre>
+
<source lang="bash">
mv samba/ samba.old/
mv samba/ samba.old/
cp samba.old/* /var/samba/
+
cp -r samba.old/* /var/samba/
ln -s /var/samba/ samba</pre>
+
ln -s /var/samba/ samba
  +
</source>
rimontare / in sola lettura con remountro e riavviare 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.
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.
  +
  +
== '''Installazione di un kernel ad hoc''' ==
  +
  +
da completare ...
  +
  +
E' disponibile il .config del kernel 2.6.37.3 già ottimizzato per la scheda: [[File:Alix3d3_kernel_Config-2.6.37.3.txt]]
  +
--[[Utente:Bart|Bart]] 21:36, 14 mar 2011 (UTC)Bart bart at slacky dot it
--[[Utente:Bart|Bart]] 21:36, 14 mar 2011 (UTC)Bart bart at slacky dot it

Versione attuale delle 13:43, 23 lug 2011

Indice

[modifica] 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.

[modifica] 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.

[modifica] 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        noatime,defaults 1   1
#/dev/cdrom      /mnt/cdrom       auto        noauto,owner,ro  0   0
#/dev/fd0        /mnt/floppy      auto        noauto,users,rw,umask=00 0   0
devpts           /dev/pts         devpts      gid=5,mode=620   0   0
proc             /proc            proc        defaults         0   0
tmpfs            /dev/shm         tmpfs       defaults         0   0
tmpfs            /var             tmpfs       rw,suid,noatime,size=100M,mode=0755   0   0
tmpfs            /home            tmpfs       rw,suid,noatime,size=100M,mode=0755   0   0
tmpfs            /tmp             tmpfs       rw,suid,noatime,size=8M,mode=0777     0   0
tmpfs            /usr/local/etc   tmpfs       rw,suid,noatime,size=3M,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/sdb1 /mnt/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

[modifica] Configurazione dei servizi

[modifica] SSH

SSH è un servizio indispensabile su ogni PC, specialmente se abbiamo intenzione di utilizzare la nostra macchina come server casalingo. Le sue funzionalità sono veramente tantissime. Possiamo utilizzare un tunnel ssh per navigare in sicurezza quando non siamo a casa, oppure possiamo utilizzare programmi installati sulla nostra Linux box su qualunque pc desideriamo abilitando l'X11forwarding, amministrare la macchina da remoto e tantissimo altro. Abilitare il servizio ssh su Slackware è semplicissimo: è sufficiente dare i permessi di esecuzione al demone /etc/rc.d/rc.sshd con:

chmod +x /etc/rc.d/rc.sshd
ed avviarlo con
/etc/rc.d/rc.sshd start

E' di assoluta importanza effettuare alcune modifiche al file di configurazione /etc/sshd_config per ottenere una sicurezza maggiore. Consiglio di modificare almeno le seguenti voci in questo modo:

Port <una porta differente dalla classica 22>
Protocol 2
PermitRootLogin no
X11Forwarding yes
UsePrivilegeSeparation yes

Inoltre l'utilizzo di una coppia di chiavi al posto della classica password permetterebbe di ottenere un livello di sicurezza ancora più alto.

[modifica] 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/sdb1 /mnt/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 -r 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.

[modifica] Installazione di un kernel ad hoc

da completare ...

E' disponibile il .config del kernel 2.6.37.3 già ottimizzato per la scheda: File:Alix3d3 kernel Config-2.6.37.3.txt


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

Strumenti personali
Namespace

Varianti