|
Contact me sending an e-mail (antispam defense activated) |
Title: Partizionamento di un sistema Linux
Author: Sandro Tosi
Last modified: 2004-11-14 (2004-11-07) (2004-11-06) (2004-11-05)
(01/11/2004)
Il metodo piu` pratico per installare un sistema Linux e` quello di
farlo in un'unica partizione, che contenga tutte le directory. A
volte, pero`, questa configurazione non soddisfa alcune
necessita`. Cerchiamo allora di partizionare il sistema in maniera
piu` pratica e funzionale.
Utilizzare il sistema su piu` partizioni aumenta la sicurezza e riduce
la difficolta` di recupero in caso di problemi; in piu` si riesce ad
avere maggior controllo su alcuni fattori, come la frammentazione o il
tempo di check in caso di riavvio improvviso. Inoltre, mantenere
separate parti del filesystem consente anche di reinstallare
facilmente, poiche`, magari, la /home si trova in una partizione
separata e quindi non c'e` bisogno di effettuarne un backup.
Si tenga presente che avere piu` partizioni non e` necessario o
obbligatorio, ma sono un sistema di controllo e di fault-tollerance in
piu`; inoltre, avere piu` partizioni non aumentera` le prestazioni:
per ottenere questo, esse devono anche risiedere su dischi differenti.
Quali parti del tree e` consigliabile mettere in una partizione
separata e` strettamente dipendente dall'uso che faremo della
macchina: e` chiaro che le esigenze di un utente domestico sono ben
diverse da quelle di un server di produzione.
La prima regola che possiamo dare e` quella di separare i dati dai
programmi, mettendoli in due partizioni separate (questo consiglio non
vale solo per Linux, ma per qualsiasi altro sistema operativo). In
questo modo se si incasinano i dati, abbiamo un sistema per cercare di
recuperarli, mentre se si incasinano i programmi, possiamo
reinstallare a cuor leggero, in quanto i dati sono protetti in una
partizione separata.
Separare / da /home e` gia` un primo modo di partizionare il proprio
sistema.
Esiste, comunque, il Multi-Disk Partitioning HOWTO, che si consiglia
di consultare per maggiori indicazioni.
Directory
=========
/
deve contenere, almeno, gli strumenti necessari al boot, le
utility base di gestione e recovery del sistema.
/etc
non deve _mai_ essere messa in una partizione separata da /, in
quanto altrimenti il kernel non avrebbe possibilita` di leggere
alcuni dei file necessari al boot (uno su tutti /etc/fstab, che
si trova in una partizione le cui informazioni di montaggio sono
contenute in un file al sui interno...) e quindi non si potrebbe
avviare il sistema operativo.
/boot
puo` essere in una partizione separata, e diventa questa una
scelta obbligatoria in caso si utilizzi LVM: il supporto ad LVM
puo` essere sia all'interno del kernel che in un modulo, ma se
risiedessero in un volume LVM non sarebbe possibile leggerli, e
dunque effettuare il boot. In generale, veniva posta in una
partizione separata quando il filesystem di / non era supportato
dal kernel (non era al suo interno ma come modulo): venivano
messi li` il kernel e l'immagine di boot che conteneva al suo
interno il supporto al filesystem di /.
L'utilita` di averla separata in caso di malfunzionamenti e`
quasi nulla: infatti se
- /boot si salva e / si corrompe
il kernel viene caricato in memoria, poi forse si avvia init,
o forse nemmeno quello, poi pero` fsck e` corrotto. Averla
separata non e` servito a nulla.
- /boot si corrompe e / no
l'opera di recupero e` piu` facile: si provano tutti i kernel
e se sono tutti corrotti, si usa un floppy di boot o un cd
rescue.
- /boot e / si corrompono
Risultato identico ad averle insieme.
Risulta utile nel caso si vogliano provare piu` distribuzioni
sul proprio sistema.
/home
andrebbe quasi sempre messa in una partizione separata dalle
altre: in caso si abbia necessita` di reinstallare il sistema, i
propri dati sono al sicuro; inoltre, in caso di riavvio
improvviso, le probabilita` che si corrompa la partizione di
/home saranno minori che avere tutto in una sola partizione.
/usr
contiene tutti i programmi installati dalla propria
distribuzione (ed in Debian i programmi che andrebbero in /opt
finiscono qui dentro), e possono essere veramente tanti. Inoltre
ci vengono spesso messi anche i sorgenti del kernel che,
decompressi, occupano circa 300 Mb. Separarla da / consente di
mantenere quest'ultima di dimensioni contenute, e separare la
parte applicativa da quella di gestione vera e propria della
macchina. Separando /usr/src da /usr, e` possibile montare
quest'ultima come read-only, che non guasta dal punto di vista
della sicurezza.
/tmp
e` la directory, cancellata ad ogni riavvio, che viene
utilizzata dalle applicazioni come punto di appoggio per
memorizzare dati temporanei di elaborazioni, a volte richiedendo
anche anche molto spazio, considerando che i programmi di
masterizzazione mettono i file iso proprio in /tmp, oppure si
provi ad eseguire il sort di un file di grandi dimensioni. In
generale, ed il particolare in caso di una macchina server, e`
sempre opportuno dedicare una partizione separata a /tmp, per
varie ragioni:
o se il numero di file in /tmp cresce troppo velocemente non si
rischia di riempire / ma solo la partizione di /tmp;
o utilizzando opportuni parametri di mount, e` possibile
incrementare la sicurezza del sistema evitando molte falle
note nell'utilizzo di file temporanei.
Nel caso /var sia una partizione separata e non se ne voglia
creare una nuova per /tmp, e` possibile sempre far puntare /tmp
a /var/tmp (non e` comunque una soluzione consigliabile: /var
deve aver spazio per ben altre cose).
/var
come dice il nome stesso, contiene file il cui numero, contenuto
e dimensione possono variare molto frequentemente: spool,
contenuti di web server, database, cache proxy, o anche la cache
dei pacchetti di apt (per chi usa Debian). Averla in una
partizione separata puo` evitare di riempire / con questi file e
mantenerne sotto controllo il contenuto, soprattutto in caso di
installazione per server, in quanto al suo interno troveranno
posto una gran mole di dati.
/misc
(o un nome simile) potrebbe aver senso creare una cartella da
dedicare a dati che vengono scaricati da Internet (filesharing)
o film e quant'altro.
Dimensioni
==========
La dimensione delle partizioni, come il loro numero, dipende
largamente dal tipo di utilizzo che andremo a fare della macchina.
/
solitamente piccola, a maggior ragione se /usr, /tmp, /var, ed
/home sono in altre partizioni (deve contenere solo /boot, /etc,
/lib, /bin, /sbin), attorno al giga, direi.
/boot
contiene i kernel, i file System.map relativi e poco altro;
solitamente tra i 10-100 Mb (a seconda) sono piu` che
sufficienti.
/home
tutto quello che si puo` dare dopo aver fatto il partizionamento
del sistema: essa conterra` i nostri dati personali, che sono
tanti e spesso di grandi dimensioni (musica, video, etc.)
/usr (e/o /opt)
contiene i programmi, e molti di essi sono di grandezza
notevole: X, OpenOffice, etc. Conviene dimensionarla sui 5-10Gb,
giusto per stare largo. Inoltre, una volta che il sistema e`
installato, la sua dimensione tende a rimanere abbastanza
stabile. Dovrebbe essere la piu` grande partizione, dopo /home.
/tmp
puo` variare molto, diciamo una dimensione anche di 1-2Gb.
/var
contiene dati che possono variare frequentemente e tende ad
avere un particolare comportamento fluttuante: il suo utilizzo
cresce e diminuisce in misura anche notevole. Conviene
dimensionarla generosamente, attorno a 2-5 Gb.
/misc
se utilizzata, contiene solitamente una grande quantita` di
dati. Ad esempio, se l'utilizzo che faremo del sistema sara` di
file server, questa partizione conterra` i file condivisi. E`
necessario, quindi, che vi venga dedicato tutto lo spazio
possibile, sacrificando altre partizioni (/home in particolare).
swap
conviene crearla della stessa dimensione della Ram fisica
installata, ma se si usano molti programmi pesanti, puo` anche
essere necessario dimensionarla al doppio della Ram installata
(certo che avendo 1 Gb di Ram, metterne 2 di swap sembra proprio
uno spreco...).
Utilizzo
========
Schematiziamo una possibile configurazione delle partizioni per alcuni
utilizzi classici:
casalingo: / /home swap
game machine: / /home /usr /tmp swap
server: / /boot /home /usr /tmp /var swap
file server: / /usr /tmp /var /misc
Sicurezza
=========
Le opzioni di boot possono aumentare la sicurezza di un sistema che
abbia piu` partizioni:
/boot rw,nosuid
/home rw,nodev,nosuid,noexec
/usr rw,nodev
/tmp rw,noexec,nosuid
/var rw,nosuid,nodev
Se la /home contiene una directory di eseguibili locali o si
sviluppano programmi, le opzioni ``nosuid,noexec'' devono essere
omesse, in quanto utili solo se non sono presenti eseguibili nella
partizione.
Per /home e /var, quando previsto dal sistema, e` possibile usare i
parametri della quota disco: ``usrquota,grpquota''.
/usr potrebbe anche essere montata come ``ro'', in quanto l'utilizzo
normale non richiede una scrittura in questa directory (che avviene
solo quando si installa un programma a livello globale, e lo puo` fare
solo root).
|