[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
4. Preparazione dei dischi
Indice:
4.a. Introduzione ai dispositivi a blocchi
Dispositivi a blocchi
Si dà ora un'occhiata approfondita agli aspetti relativi ai dischi in Gentoo
Linux e in Linux in generale, tra cui i filesystem Linux, le partizioni e i
dispositivi a blocchi. Quindi, una volta acquisita familiarità con i dischi
e i filesystem, si viene guidati attraverso il processo di configurazione delle
partizioni e dei filesystem per l'installazione di Gentoo Linux.
Per cominciare, si introducono i dispositivi a blocchi. Il dispositivo a
blocchi più famoso è molto probabilmente quello che rappresenta la prima unità
IDE in un sistema Linux, /dev/hda. Se il sistema usa dischi SCSI,
allora il primo disco fisso dovrebbe essere /dev/sda.
I dispositivi a blocchi rappresentano un'interfaccia astratta ai dischi. I
programmi utente possono usare questi dispositivi a blocchi per interagire con
i dischi, senza doversi chiedere se si tratta di unità IDE, SCSI o di
qualsiasi altro tipo. Il programma può semplicemente indirizzare la
memorizzazione su disco attraverso dei blocchi contigui, accessibili in
modalità random, e di dimensione pari a 512 byte ciascuno.
Partizioni e slices
Nonostante sia possibile usare un intero disco per il sistema Linux, ciò non
è quasi mai messo in pratica. Invece, i dispositivi a blocchi del disco sono
divisi in parti più piccole e più maneggevoli. Sui sistemi amd64 queste parti
sono chiamate partizioni.
Partizioni
Le partizioni sono divise in tre tipi: primarie, estese e
logiche.
Una partizione primaria è una partizione che ha le sue informazioni
memorizzate nel MBR (master boot record). Poichè MBR è molto piccolo
(512 byte), possono essere definite solo quattro partizioni primarie (per
esempio, da /dev/hda1 a /dev/hda4).
Una partizione estesa è una speciale partizione primaria (cioè deve
essere una delle quattro), che contiene altre partizioni. In origine non
esisteva una tale partizione, ma poichè quattro partizioni erano troppo poche,
è stata data la possibilità di estendere lo schema di formattazione senza
perdere la compatibilità.
Una partizione logica è una partizione compresa dentro la partizione
estesa. Le informazioni di una partizione logica non sono disposte nel MBR,
ma sono dichiarate nella partizione estesa.
4.b. Impostare uno schema di partizionamento
Schema di partizionamento di default
Se non si è interessati a elaborare uno schema di partizionamento per il
sistema, si può usare quello di questo Manuale:
| Partizione |
Filesystem |
Grandezza |
Descrizione |
| /dev/hda1 |
ext2 |
32M |
Partizione di boot |
| /dev/hda2 |
(swap) |
512M |
Partizione swap |
| /dev/hda3 |
ext3 |
Resto dello spazio su disco |
Partizione root |
Se si è interessati ad avere informazioni su quanto dovrebbe essere grande
una partizione (o volume logico), o anche su quante partizioni (o volumi) si
ha bisogno, seguono alcuni suggerimenti. Altrimenti continuare con il
Usare fdisk per partizionare il disco.
Numero e dimensione delle partizioni
Il numero delle partizioni è altamente dipendente sull'ambiente. Per esempio,
se si hanno molti utenti su una stessa macchina, molto probabilmente si
desidera tenere separate le directory /home, aumentando così la
sicurezza e rendendo più facile il backup. Se si sta installando Gentoo per
utilizzarlo da mailserver, /var dovrebbe essere separata poichè
tutta la posta viene memorizzata in essa. Una buona scelta del filesystem è
quella che massimizza le prestazioni. I gameserver è bene che abbiano una
partizione separata per /opt, visto che la maggior parte dei
server di gioco sono installati li. La stessa cosa vale per /home:
sicurezza e backup. Si dovrebbe tenere una grande /usr: questa
contiene non solo la maggior parte delle applicazioni, il solo Portage tree
occupa 500 MB di spazio, esclusi i sorgenti che sono in esso.
Come si è visto, molto dipende da cosa si desidera realizzare. Partizioni o
volumi separati hanno i seguenti vantaggi:
-
Si può scegliere il filesystem con maggiori prestazioni per ogni partizione
o volume
-
L'intero sistema non può esaurire lo spazio libero se un tool malfunzionante
scrive all'infinito su una partizione od un volume
-
Nel caso si rendano necessari, i controlli sul filesystem sono ridotti,
poichè possono essere condotti in parallelo diverse analisi (questo
vantaggio è più per i dischi multipli che per le partizioni multiple)
-
La sicurezza può essere aumentata montando alcune partizioni o volumi in
sola lettura, nosuid (i bit setuid vengono ignorati), noexec (i bit
executable sono ignorati) etc.
Le partizioni multiple hanno però un grosso svantaggio: se non sono
configurate correttamente, si potrebbe avere un sistema con molto spazio libero
su una partizione e poco su un'altra. C'è anche un limite di 15 partizioni per
SCSI e SATA.
Come esempio di partizionamento, ecco quello di un disco da 20GB, usato come
un laptop di dimostrazione (contenente webserver, mailserver, gnome, ...):
Codice 2.1: Esempio di uso del filesystem |
Filesystem Type Size Used Avail Use% Mounted on
/dev/hda5 ext3 509M 132M 351M 28% /
/dev/hda2 ext3 5.0G 3.0G 1.8G 63% /home
/dev/hda7 ext3 7.9G 6.2G 1.3G 83% /usr
/dev/hda8 ext3 1011M 483M 477M 51% /opt
/dev/hda9 ext3 2.0G 607M 1.3G 32% /var
/dev/hda1 ext2 51M 17M 31M 36% /boot
/dev/hda6 swap 516M 12M 504M 2% <not mounted>
|
/usr è quasi pieno (83% dello spazio già in uso), ma una volta
installato tutto il software, non cresce molto. Lasciare alcuni gigabyte di
spazio su disco per /var può sembrare eccessivo, ma si deve
ricordare che Portage usa di default questa partizione per compilare
pacchetti. Se si desidera tenere /var a una grandezza
ragionevole, tipo 1 GB, si dovrà cambiare la variabile PORTAGE_TMPDIR
in /etc/make.conf e farla puntare alla partizione con un
adeguato spazio libero per compilare grandi pacchetti come OpenOffice.
4.c. Usare fdisk per partizionare il disco
La parte seguente spiega come creare lo schema di partizione di esempio
descritto precedentemente:
| Partizione |
Descrizione |
| /dev/hda1 |
Partizione di boot |
| /dev/hda2 |
Partizione swap |
| /dev/hda3 |
Partizione root |
Cambiare le partizioni in base alle proprie impostazioni.
Vedere la disposizione delle partizioni
fdisk è un tool popolare e potente per dividere il disco in partizioni.
Eseguire fdisk per il disco (nell'esempio si usa /dev/hda):
Codice 3.1: Eseguire fdisk |
# fdisk /dev/hda
|
Si visualizzerà un prompt come questo:
Codice 3.2: Prompt di fdisk |
Command (m for help):
|
Digitare p per visualizzare le attuali partizioni presenti sul disco:
Codice 3.3: Un esempio di partizionamento |
Command (m for help): p
Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 14 105808+ 83 Linux
/dev/hda2 15 49 264600 82 Linux swap
/dev/hda3 50 70 158760 83 Linux
/dev/hda4 71 2184 15981840 5 Extended
/dev/hda5 71 209 1050808+ 83 Linux
/dev/hda6 210 348 1050808+ 83 Linux
/dev/hda7 349 626 2101648+ 83 Linux
/dev/hda8 627 904 2101648+ 83 Linux
/dev/hda9 905 2184 9676768+ 83 Linux
Command (m for help):
|
Questo disco è configurato per avere sette filesystem Linux (chiamati "Linux"
nelle corrispondenti partizioni) e una partizione swap (chiamata "Linux swap").
Rimuovere tutte le partizioni
Si procede ora alla rimozione dal disco di tutte le partizioni esistenti.
Digitare d per eliminare una partizione. Per esempio, per eliminare
/dev/hda1:
Codice 3.4: Eliminare una partizione |
Command (m for help): d
Partition number (1-4): 1
|
E' stata memorizzata l'eliminazione della partizione. Non si rivedrà più se
si digiterà p, ma non sarà eliminata fino a quando non si salveranno i
cambiamenti. Se si è commesso un errore e si vuole uscire senza salvare,
digitare q e invio e la partizione non sarà tolta.
Ora, se si desidera effettivamente eliminare tutte le partizioni sul sistema,
digitare p per visualizzare l'elenco delle partizioni, e poi digitare
d seguito dal numero della partizione, per eliminarle. Il risultato è
una tabella con nessuna partizione:
Codice 3.5: Tabella con nessuna partizione |
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
Command (m for help):
|
Ora che la tabella è vuota, si è pronti a creare le partizioni. Come esempio,
si fa riferimento allo schema di partizionamento visto precedentemente: non si
deve seguire queste istruzioni alla lettera se non si desidera implementare lo
stesso schema.
Creare la partizione di boot
Per prima cosa, si crei una piccola partizione di boot. Digitare n per
creare una nuova partizione, poi p per selezionare una partizione
primaria, seguito da 1 per selezionare la prima partizione primaria.
Quando si visualizza il prompt per il primo cilindro, premere enter. Quando
si visualizza il prompt per l'ultimo cilindro, digitare +32M per creare
una partizione di 32 Mbyte:
Codice 3.6: Creare la partizione di boot |
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M
|
Quando si digita p, si dovrebbe vedere la seguente partizione:
Codice 3.7: Partizione di boot creata |
Command (m for help): p
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 14 105808+ 83 Linux
|
E' necessario rendere questa partizione avviabile. Digitare a per
rendere avviabile questa partizione e selezionare 1. Se si preme di
nuovo p, si noterà che un * è posto nella colonna "Boot".
Creare la partizione swap
Si procede ora alla creazione della partizione swap. Per farlo, digitare
n per creare una nuova partizione, poi p per dire a fdisk che
si desidera creare una partizione primaria. Digitare 2 per creare la
seconda partizione primaria, /dev/hda2. Quando si visualizza il
prompt per il primo cilindro, premere invio. Quando si visualizza il prompt per
l'ultimo cilindro, digitare +512M per creare una partizione di 512MB.
Dopo aver fatto questo, digitare t per impostare il tipo di partizione,
2 per selezionare la partizione che si è creata e infine 82 per
impostare il tipo di partizione a "Linux Swap". Finiti questi passaggi,
digitando p si dovrebbe avere una tabella partizionata simile a questa:
Codice 3.8: Elenco delle partizioni dopo aver creato la partizione swap |
Command (m for help): p
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 14 105808+ 83 Linux
/dev/hda2 15 81 506520 82 Linux swap
|
Creare la partizione root
Si procede ora alla creazione della partizione root. Digitare n per
creare una nuova partizione, poi p per dire a fdisk che si vuole una
partizione primaria. Digitare 3 per creare la terza partizione primaria,
/dev/hda3. Quando si visualizza il prompt per il primo cilindro,
premere invio. Quando si visualizza il prompt per l'ultimo cilindro, premere
invio per creare una partizione che occupi il resto dello spazio su disco.
Infine, digitando p si dovrebbe avere una tabella partizionata simile
a questa:
Codice 3.9: Elenco delle partizioni dopo aver creato la partizione root |
Command (m for help): p
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 14 105808+ 83 Linux
/dev/hda2 15 81 506520 82 Linux swap
/dev/hda3 82 3876 28690200 83 Linux
|
Salvare lo schema delle partizioni
Per salvare lo schema delle partizioni e uscire da fdisk, digitare
w.
Codice 3.10: Salvare e uscire da fdisk |
Command (m for help): w
|
Ora che le partizioni sono create, si può continuare con la sezione
riguardante come Creare i filesystem.
4.d. Creare i filesystem
Introduzione
Ora che le partizioni sono state create, è il momento di inserire il
filesystem. Se non si è interessati alla scelta del filesystem e vanno bene
quelli che si usano di default in questo Manuale, continuare con la sezione su
come
Applicare un filesystem a una partizione. Altrimenti ecco una descrizione
dei filesystem disponibili.
Filesystem
Sono disponibili molti filesystem. Alcuni sono stabili sull'architettura amd64,
altri no. I seguenti filesystem sono stabili: ext2 e ext3. jfs e reiserfs
potrebbero funzionare ma hanno bisogno di più test. E' consigliato solo agli
avventurosi provare i filesystem non supportati.
ext2 è il vero e proprio filesystem di Linux ma non possiede il
supporto per il metadata journaling, il che significa che le routine che
effettuano all'avvio i controlli sul filesystem ext2 possono impiegare diverso
tempo. Al momento esiste una scelta abbastanza ampia di filesystem journaled di
nuova generazione che sono in grado di effettuare controlli sulla consistenza
molto velocemente e sono generalmente preferiti alle controparti non-journaled.
I filesystem journaled prevengono i lunghi tempi di attesa che solitamente si
riscontrano quando viene riavviato il sistema e il filesystem si trova in uno
stato inconsistente.
ext3 è la versione journaled del filesystem ext2, fornisce il metadata
journaling per un veloce recupero dei dati in aggiunta ad altre caratteristiche
di journaling avanzate come full data e ordered data journaling. ext3 è un
filesystem davvero molto valido e affidabile. Ha una ulteriore opzione di
indice hashed b-tree che abilita alte prestazioni in quasi tutte le situazioni.
Si può abilitare questo indice aggiungendo -O dir_index al comando
mke2fs. In poche parole, ext3 è un filesystem eccellente.
ReiserFS è un filesystem basato su B*-tree che offre ottime performance
generali e si dimostra notevolmente superiore a ext2 e ext3 con file di piccole
dimensioni (file minori di 4k), spesso di un fattore 10-15. ReiserFS scala
inoltre molto bene e supporta il metadata journaling. Dal kernel 2.4.18 in poi,
ReiserFS ha raggiunto la solidità che lo porta a essere caldamente
raccomandato sia per un uso generico che per casi estremi come la creazione di
grandi filesystem, l'uso su molti file piccoli, file molto grandi e directory
contenenti decine di migliaia di file.
XFS è un filesystem con metadata journaling che si presenta con un
robusto insieme di caratteristiche ed è ottimizzato per la scalabilità. Se ne
raccomanda l'uso su sistemi Linux dotati di unità di memorizzazione con canali
in fibra o high-en SCSI e alimentazione continua. Data l'aggressività con la
quale XFS si serve della cache in RAM per i dati in transito, programmi
progettati in modo non adeguato (quelli che non prendono precauzioni quando
scrivono file su disco, e ce ne sono diversi) possono perdere una discreta
quantità di dati se il sistema si arresta in modo inaspettato.
JFS è il filesystem con journaling ad alte prestazioni di IBM. E' stato
recentemente giudicato pronto per il mercato, ma ad oggi non è stato
sufficientemente testato per fare commenti positivi o negativi sulla sua
stabilità generale.
Applicare un filesystem a una partizione
Per creare un filesystem su una partizione o volume, sono disponibili tool per
ogni filesystem possibile:
| Filesystem |
Comando per la creazione |
| ext2 |
mke2fs |
| ext3 |
mke2fs -j |
| reiserfs |
mkreiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
Per esempio, per avere la partizione di boot (/dev/hda1) ext2 e la
partizione root (/dev/hda3) ext3, si usa:
Codice 4.1: Applicare un filesystem su una partizione |
# mke2fs /dev/hda1
# mke2fs -j /dev/hda3
|
Ora si procede alla creazione dei filesystem sulle partizioni create
precedentemente.
Attivare la partizione swap
mkswap è il comando usato per inizializzare le partizioni swap:
Codice 4.2: Creare una signature swap |
# mkswap /dev/hda2
|
Per attivare la partizione swap, usare swapon:
Codice 4.3: Attivare la partizione swap |
# swapon /dev/hda2
|
Creare e attivare swap subito.
4.e. Montare
Ora che le partizioni sono inizializzate e hanno un filesystem, è il momento
di montarle. Usare il comando mount. Non dimenticarsi di creare le
necessarie directory di mount per ogni partizione creata.
Come esempio si monta la partizione root e boot:
Codice 5.1: Montare le partizioni |
# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot
|
Nota:
Se si vuole che /tmp risieda in una partizione separata,
assicurarsi di cambiare i permessi dopo il mount:
chmod 1777 /mnt/gentoo/tmp. Questo vale anche per /var/tmp.
|
E' necessario inoltre montare il filesystem proc (una interfaccia virtuale con
il kernel) su /proc. Ma prima si devono mettere i file sulle
partizioni.
Continuare con
Copia dei file di installazione di Gentoo.
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|