Perché mai effettuare un partizionamento? Sebbene sia possibile avere un sistema Linux perfettamente funzionante su un'unica partizione, ed è anche leggermente più facile da fare, si possono ottenere molti vantaggi dividendo uno o più dispositivi di immagazzinamento dati in partizioni multiple.
Anche se è vero che Linux funzionerà egregiamente su un disco con un'unica grande partizione, può essere conveniente, sotto diversi aspetti, suddividere il vostro disco almeno per i quattro file system principali (root, usr, home e swap). Questi aspetti includono:
Primo, è possibile ridurre il tempo necessario ad effettuare i controlli dei file system (sia al momento del boot e sia eseguendo manualmente un fsck), perché tali controlli possono essere fatti in parallelo (A proposito, MAI eseguire un fsck su un file system montato!! Quasi certamente ve ne pentireste. L'eccezione a questa regola è che il file system sia montato read-only, allora tale azione risulterebbe innocua). Inoltre, i controlli sui file system sono più facili da realizzare su un sistema con partizioni multiple. Per esempio, se sapessi che la mia partizione /home presenta dei problemi, potrei semplicemente smontarla, effettuare un controllo del file system, e poi rimontare il file system riparato (invece di fare il boot del mio sistema, con un dischetto di soccorso, in modalità mono-utente e effettuare le riparazioni).
Secondo, con partizioni multiple, potete, se volete, montare una o più partizioni come read-only. Per esempio, se decidete che tutto quello che c'è in /usr non possa essere toccato nemmeno dal root, potete montare la partizione /usr come read-only.
In ultimo, il beneficio maggiore che si può trarre del partizionamento è la protezione dei vostri file system. Se dovesse succedere qualcosa ad un file system (a causa di un errore di un utente o di un malfunzionamento del sistema), su un sistema partizionato voi, probabilmente, perdereste file solo su un singolo file system. Mentre su un sistema non partizionato, probabilmente li perdereste su tutti i file system.
Ciò può esservi ulteriormente d'aiuto. Per esempio, se la vostra partizione root è talmente corrotta da non permettervi di effettuare il boot, potete usare il dischetto di soccorso, montare la vostra partizione root, e copiare quello che potete (o recuperare da un backup; si veda il Capitolo 8 per informazioni su come effettuare il backup e il restore dei file), su un'altra partizione come home, e poi riavviare ancora con il dischetto di emergenza, digitare "mount root=/dev/hda3" (posto che la partizione che contiene il vostro temporaneo file system root sia sulla terza partizione di hda) e avviare Linux completamente funzionante. Potete poi avviare un fsck sulla vostra smontata partizione root corrotta.
Ho avuto, personalmente, esperienza con catastrofi nei file system, e sono stato molto contento di aver potuto limitare i danni grazie all'uso di partizioni multiple.
Infine, visto che Linux vi permette di impostare altri sistemi operativi (come Windows 95/98/NT, BeOS, o quello che avete), e di avviare quello che vi pare, potreste trarre vantaggio dall'avere partizioni in più. Tipicamente, vorrete impostare almeno una partizione per ogni sistema operativo. Linux include un discreto boot loader (chiamato LILO sui sistemi basati su Intel, oppure MILO su Alpha e SILO su Sparc) che vi permette di specificare quale sistema operativo volete avviare al momento dell'accensione, con un periodo di tempo trascorso il quale verrà avviato il vostro sistema operativo preferito (probabilmente Linux, giusto?)
Dovete partizionare un disco (o più dischi) a seconda delle vostre esigenze. Nella mia esperienza con piattaforme Intel, Alpha e Sparc, per un sistema caricato completamente e che svolge una notevole quantità di compiti (come un sistema desktop a casa, o come un Internet server sul lavoro), ho scoperto che la seguente approssimazione di spazio funziona piuttosto bene per determinare la dimensione di una partizione.
Dato: Dato un disco di X Mb/Gb (es. 2 Gb) (O più di un disco con complessivi X Mb/Gb) Calcolare: (swap) circa il doppio della memoria RAM (es. 64 Mb allora 128 Mb swap) / (root) circa il 10% di quanto disponibile (es. 200 Mb) /home circa il 20% di quanto disponibile (es. 400 Mb) /usr tutto lo spazio rimanente (es. 1272 Mb) /var (opzionale -- vedi sotto) /boot (opzionale -- vedi sotto) /archive (opzionale -- vedi sotto) |
Sicuramente, quanto sopra rappresenta solo una linea guida. Ovviamente manipolerete queste percentuali a seconda di come vogliate utilizzare il vostro sistema Linux. Se volete aggiungere molte applicazioni voluminose come WordPerfect oppure Netscape, o forse volete aggiungere il supporto per i caratteri giapponesi, allora probabilmente vorrete un po' più di spazio per /usr.
Mi sembra sempre di avere troppo spazio disponibile in /home, quindi se i vostri utenti non fanno molto (oppure avete imposto loro dei limiti), oppure non offrite account di shell,pagine web personali, ecc. allora potrete diminuire lo spazio per /home e aumentare quello per /usr.
Qui di seguito c'è una descrizione dei vari mount point e informazioni sui file system, che potrebbero schiarirvi le idee su come definire al meglio le dimensioni delle vostro partizioni:
/ (root) - viene usato per memorizzare cose come file temporanei, il kernel di Linux e l'immagine di boot, importanti file binari (cose di cui c'è bisogno prima che Linux possa montare la partizione /usr), i più importanti file di log, aree di spool per compiti di stampa, e-mail in uscita, ed e-mail in entrata degli utenti. Viene anche usato come spazio temporaneo quando si compiono certe operazioni come la creazione di pacchetti RPM dai file RPM sorgenti. Quindi, se avete molti utenti con tante e-mail, o pensate di aver bisogno di tanto spazio temporaneo, allora avrete bisogno di più spazio a disposizione. Il tipo di partizione dovrebbe essere lasciato, come predefinito, a 83 (Linux native). In più probabilmente attiverete il bootable flag su questa partizione per fare in modo che le informazioni del boot vengano memorizzate qui.
/usr/ - dovrebbe essere la partizione più grande, perché la maggior parte dei file binari richiesti da Linux, così come ogni software installato localmente, le pagine web, il proxy cache di Squid, i servizi di condivisione di Samba, i file di log di alcuni software installati localmente,ecc, sono memorizzati qui. Il tipo di partizione dovrebbe essere lasciato, come predefinito, a 83 (Linux native).
/home/ - se non fornite account di shell ai vostri utenti, non avete bisogno di una partizione molto grande. L'eccezione è che se fornite pagine web agli utenti (come quelle per una scuola) allora sarebbe meglio avere una partizione più grande. Il tipo di partizione dovrebbe essere lasciato, come predefinito, a 83 (Linux native).
(swap) - Linux offre qualcosa chiamata "memoria virtuale" per rendere disponibile una quantità maggiore di memoria rispetto alla RAM fisica del vostro sistema. La partizione di swap è usata insieme alla memoria RAM. Come regola generale, la vostra partizione di swap dovrebbe essere almeno di doppio della memoria RAM installata sul vostro sistema.
Se avete più di un disco fisso sul vostro sistema, potete creare partizioni multiple di swap. Ciò può aumentare le performance di swapping sfruttando l'accesso a dischi paralleli. Per esempio, su un sistema con 256 Mb e quattro dischi, io creerei quattro partizioni di swap da 128 Mb, per un totale di 256 Mb di RAM e 512 Mb di swap. (Per un totale di 768 Mb disponibili come memoria virtuale). Il tipo di partizione deve essere cambiato a 82 (Linux swap).
Si è spesso detto che per Linux la dimensione di swap può essere di massimo 128 Mb. Ciò era vero in passato, ma nelle moderne distribuzioni la dimensione dipende dalla vostra architettura (per esempio, sistemi Intel possono aver dimensioni di swap anche di 2 Gb). Digitate "man mkswap" per maggiori informazioni. |
/var/ (opzionale) - Potreste considerare l'idea di suddividere ulteriormente la vostra partizione /root. La directory /var è usata molto quando la macchina è in funzione, contiene molti dati, compresi gli spool di posta (sia in uscita che in entrata), code di stampa, processi di lock, ecc. Essendo questa directory montata sotto /(root) può essere un po' pericolosa perché un gran numero di e-mail in arrivo (per esempio) potrebbe riempirla velocemente. Poiché possono succedere cose spiacevoli (crash di sistema, ad esempio) quando la partizioni /(root) si riempie, avere /var su un propria partizione può evitare tali problemi. Ho trovato utile prendere tutto lo spazio che avevo dato a / (root), forse raddoppiandolo, e poi creare partizioni separate per per /(root) e per /var. Il tipo di partizione dovrebbe essere lasciato, come predefinito, a 83 (Linux native).
/boot/ (opzionale) - In alcuni casi (come un sistema impostato con configurazione RAID) può essere necessario avere una partizione separata dalla quale effettuare il boot del sistema Linux. Questa partizione permetterebbe di fare il boot e poi caricare qualunque driver necessario per leggere gli altri file system. La dimensione di questa partizione può essere anche di un paio di Mb; Io raccomando di usare circa 10 Mb (che dovrebbero darvi spazio sufficiente per il kernel, l'immagine ram disk iniziale e anche per uno o due backup del kernel).Il tipo di partizione dovrebbe essere lasciato, come predefinito, a 83 (Linux native).
/archive/ (opzionale) - Se avete dello spazio extra potreste trovare utile avere una partizione per una directory chiamata, per esempio, /archive. Potete usare questa directory per memorizzare copie di backup, file grandi con pochi accessi, i servizi file di samba, o qualunque altra cosa vogliate. Il tipo di partizione dovrebbe essere lasciato, come predefinito, a 83 (Linux native), o se se volete accedervi da Linux e da qualche altro sistema operativo, allora dovreste cambiarlo, come ad esempio 6 (DOS 16-bit >=32M).
In caso di aggiunta di altri dischi, potete aggiungere ulteriori partizioni, montate con diversi mount point -- ciò significa che un sistema Linux non si preoccuperà mai della mancanza di spazio. Per esempio, se in futuro sda6 dovesse iniziare a riempirsi, potremmo aggiungere un altro drive, impostare una partizione ben dimensionata con un mount-point in /usr/local -- e poi trasferire tutte le informazioni da /urs/local sul nuovo drive. Ma nessun sistema o applicazioni si "bloccherebbe", perché Linux vedrebbe /usr/local senza preoccuparsi di dove si trova.
Per darvi un esempio di come potrebbero essere impostate le partizioni, ho usato il seguente schema su un sistema Intel (doppio boot, Windows95 e Linux):
Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 254 1024096+ 6 DOS 16-bit >=32M /dev/hda2 255 255 782 2128896 5 Extended /dev/hda5 255 255 331 310432+ 83 Linux native /dev/hda6 332 332 636 1229728+ 83 Linux native /dev/hda7 637 637 749 455584+ 83 Linux native /dev/hda8 750 750 782 133024+ 82 Linux swap |
La prima partizione, /dev/hda1, è un file system DOS per il sistema operativo alternativo (Windows 95). Ciò mi dà per esso 1 Gb di spazio.
La seconda partizione, /dev/hda2, è una partizione fisica (chiamata "estesa") che comprende lo spazio rimanente sul drive. È usata solo per incapsulare le rimanenti partizioni logiche (ci possono essere solo 4 partizioni fisiche su un disco; nel mio caso avevo bisogno di più di 4 partizioni, quindi ho dovuto usare uno schema di partizionamento logico per le altre).
Le partizioni da tre a cinque, /dev/hda5, /dev/hda6 e /dev/hda7, sono tutti file system e2fs usati rispettivamente per le partizioni /(root), /usr e /home.
Infine, la sesta partizione, /dev/hda8, è usata come partizione di swap.
Come ulteriore esempio, questa volta su un box Alpha con 2 hard-disk (unico boot, solo Linux), ho scelto il seguente schema di partizionamento:
Device Boot Begin Start End Blocks Id System /dev/sda1 1 1 1 2046 4 DOS 16-bit <32M /dev/sda2 2 2 168 346859 83 Linux native /dev/sda3 169 169 231 130851 82 Linux swap /dev/sda4 232 232 1009 1615906 5 Extended /dev/sda5 232 232 398 346828 83 Linux native /dev/sda6 399 399 1009 1269016 83 Linux native /dev/sdb1 1 1 509 2114355 83 Linux native /dev/sdb2 510 510 1019 2118540 83 Linux native |
La prima partizione, /dev/sda1, è un file system DOS per il boot loader MILO. La piattaforma Alpha ha un metodo per il boot leggermente diverso rispetto ai sistemi Intel, quindi Linux memorizza le informazioni di boot in una partizione FAT. Questa partizione deve essere grande come il minimo possibile consentito; in questo caso, 2 Mb.
La seconda partizione, /dev/sda2, è un file system e2fs per la partizione /(root).
La terza partizione, /dev/sda3, viene usata come partizione di swap.
La quarta partizione, /dev/sda4, è una partizione "estesa" (date un'occhiata all'esempio precedente per maggiori dettagli).
La quinta e sesta partizione, /dev/sda5 e /dev/sda6, sono file system e2fs usati per /home e /usr.
La settima partizione, /dev/sdb1, è un file system e2fs per la partizione /archive.
L'ottave e ultima partizione, /dev/sdb2, è un file system e2fs usato per la partizione /archive2.
Dopo avere impostato le informazioni per la partizione, dovrete scrivere la nuova partizione sul disco. Fatto ciò, il programma di installazione di Red Hat ricaricherà in memoria la tabella di partizione, in modo che possiate continuare col processo d'installazione.