Gentoo Logo

1.  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 è probabilmente quello che rappresenta la prima unità IDE in un sistema Linux, /dev/sda. I dischi SCSI e Serial ATA vengono entrambi etichettati come /dev/sd*; anche i dischi IDE sono etichettati come /dev/sd* con il nuovo framework libata nel kernel. Se si sta usando un vecchio framework per le periferiche, allora il primo disco IDE sarà /dev/hda.

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à casuale, e di dimensione pari a 512 byte ciascuno.

Partizioni e slices

Sebbene in linea teorica sia possibile usare un intero disco per il sistema Linux, in pratica ciò non viene quasi mai fatto. Invece, i dispositivi a blocchi del disco sono divisi in parti più piccole e più maneggevoli. Sulla maggior parte dei sistemi, queste sono chiamate partizioni. Altre architetture, usano una tecnica simile, chiamandole slices.

1.  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/sda1 Partition map 31.5k Partition map
/dev/sda2 (bootstrap) 800k Apple_Bootstrap
/dev/sda3 (swap) 512M Partizione swap
/dev/sda4 ext3 o ext4 Resto dello spazio su disco Partizione root

Nota: Ci sono partizioni come: Apple_Driver43, Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit, Apple_Patches, che si possono cancellare se non si desidera utilizzare MacOS 9, perchè MacOS e Linux non ne hanno bisogno. Si deve usare parted per eliminarle, poichè mac-fdisk ancora non può farlo.

Se si è interessati ad avere informazioni su quanto dovrebbe essere grande una partizione, o anche su quante partizioni si ha bisogno, seguono alcuni suggerimenti. Altrimenti continuare con Apple G5: Usare mac-fdisk per partizionare il disco o IBM pSeries: Usare fdisk per partizionare il disco

Numero e dimensione delle partizioni

Il numero delle partizioni dipende fortemente dal proprio 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 come 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 uno strumento 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.

Anche le partizioni multiple hanno però degli svantaggi: se non sono configurate correttamente, si potrebbe avere un sistema con moltissimo spazio libero in una partizione e niente più spazio in un'altra. Un altro inconveniente è che partizioni separate - specialmente per punti di montaggio importanti come /usr o /var - spesso richiedo all'amministratore di avviare il sistema con un initramfs per montare le partizioni stesse prima che altri script di avvio siano eseguiti. Tuttavia questo non accade sempre, perciò il risultato può essere vario.

C'è inoltre un un limite di 15 partizioni per SCSI e SATA.

1.  Predefinito: Usare mac-fdisk (Apple G5) per partizionare il disco

Si creano le partizioni con mac-fdisk:

Codice 1.1: Eseguire mac-fdisk

# mac-fdisk /dev/sda

Per prima cosa cancellare le partizioni precedentemente eliminate per poter inserire le partizioni Linux. Usare d in mac-fdisk per eliminare queste partizioni. Verrà chiesto il numero della partizione da eliminare.

Creare una partizione Apple_Bootstrap con b. Verrà chiesto da quale blocco si vuole partire. Dare il numero della prima partizione libera, seguito da p. Per esempio 2p.

Nota: Questa partizione non è quella "boot". Non è usata da Linux, non si deve mettere nessun filesystem su essa e non si dovrebbe neanche montare. Gli utenti PPC non hanno bisogno di una partizione /boot.

Creare una partizione swap digitando c. Verrà chiesto da quale blocco si vuole far partire questa partizione, e si digiti 3p. Quando verrà chiesta la grandezza, si digiti 512M (o qualsiasi altra grandezza si desidera), e quando verrà chiesto il nome scrivere swap (obbligatorio).

Per creare la partizione root, premere c seguito da 4p, 4 è il blocco di inizio della partizione. Quando verrà chiesta la grandezza premere di nuovo 4p, mac-fdisk lo interpreterà come "Usare tutto lo spazio disponibile". Quando verrà chiesto il nome digitare root (obbligatorio).

Per finire si devono memorizzare le partizioni sul disco con w ed uscire da mac-fdisk premendo q.

Nota: Per assicurarsi che tutto è andato bene, si dovrebbe rieseguire mac-fdisk e controllare se ci sono le partizioni. Se non ci sono o se non si vedono i cambiamenti, si dovrebbe reinizializzare le partizioni premendo i in mac-fdisk. Questo ricreerà la mappa delle partizioni e rimuoverà quelle precedenti.

Ora che le partizioni sono create, si può continuare con la sezione riguardante come Creare i filesystem.

1.  IBM pSeries, iSeries e OpenPower: Usare fdisk per partizionare il disco

Nota: Se si vuole usare un disk array RAID per la installazione di Gentoo e si sta usando un hardware POWER5, si dovrebbe eseguire iprconfig per disporre i dischi al formato Advanced Function e creare disk array. Si dovrebbe emergere iprutils dopo che la installazione è completata.

Se si ha un adattatore SCSI ipr, si dovrebbe avviare le utility ipr ora.

Codice 1.1: Avviare le utility ipr

# /etc/init.d/iprinit start

La parte seguente spiega come creare lo schema di partizione di esempio descritto precedentemente:

Partizione Descrizione
/dev/sda1 Partizione PPC PReP Boot
/dev/sda2 Partizione swap
/dev/sda3 Partizione root

Cambiare le partizioni in base alle proprie impostazioni.

Vedere la disposizione delle partizioni

fdisk è uno strumento popolare e potente per dividere il disco in partizioni. Eseguire fdisk per il proprio disco (nell'esempio si usa /dev/sda):

Codice 1.1: Eseguire fdisk

# fdisk /dev/sda

Si visualizzerà un prompt come questo:

Codice 1.1: Prompt di fdisk

Command (m for help):

Se si ha ancora un layout di partizione AIX sul sistema, si ottiene il seguente messaggio di errore:

Codice 1.1: Messaggio di errore di fdisk

  There is a valid AIX label on this disk.
  Unfortunately Linux cannot handle these
  disks at the moment.  Nevertheless some
  advice:
  1. fdisk will destroy its contents on write.
  2. Be sure that this disk is NOT a still vital
     part of a volume group. (Otherwise you may
     erase the other disks as well, if unmirrored.)
  3. Before deleting this physical volume be sure
     to remove the disk logically from your AIX
     machine.  (Otherwise you become an AIXpert).

Command (m for help):

Non ci si deve preoccupare! Si può creare una nuova tabella di partizione DOS vuota digitando o.

Avvertenza: Questo distrugge ogni versione AIX installata!

Digitare p per visualizzare le attuali partizioni presenti sul disco:

Codice 1.1: Un esempio di partizionamento

Command (m for help): p

Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          12       53266+  83  Linux
/dev/sda2              13         233      981571+  82  Linux swap
/dev/sda3             234         674     1958701+  83  Linux
/dev/sda4             675        6761    27035410+   5  Extended
/dev/sda5             675        2874     9771268+  83  Linux
/dev/sda6            2875        2919      199836   83  Linux
/dev/sda7            2920        3008      395262   83  Linux
/dev/sda8            3009        6761    16668918   83  Linux

Command (m for help):

Questo disco è configurato per avere sei 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/sda1:

Nota: Se non si desidera eliminare tutte le partizioni, eliminare solo alcune di esse. E' raccomandato fare un backup dei dati per evitare la loro perdita.

Codice 1.1: 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 1.1: Tabella con nessuna partizione

Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 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 boot PPC PReP

Si crea una piccola partizione boot PReP. 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 +7M per creare una partizione di 7 MB. Digitare t per impostare il tipo di partizione, 1 per selezionare la partizione creata e 41 per impostare la partizione a "PPC PReP Boot". Si dovrà impostare la partizione PReP come avviabile ("bootable").

Nota: La partizione PReP deve essere più piccola di 8 MB.

Codice 1.1: Creare la partizione boot PReP

Command (m for help): p

Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
      e   extended
      p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-6761, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-6761, default
6761): +8M

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 41
Changed system type of partition 1 to 41 (PPC PReP Boot)

Command (m for help): a
Partition number (1-4): 1
Command (m for help):

Quando si digita p, si dovrebbe vedere la seguente partizione:

Codice 1.1: Partizione di boot creata

Command (m for help): p

Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1  *            1           3       13293   41  PPC PReP Boot

Command (m for help):

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/sda2. 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 1.1: Elenco delle partizioni dopo aver creato la partizione swap

Command (m for help): p

Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1           3       13293   41  PPC PReP Boot
/dev/sda2               4         117      506331   82  Linux swap

Command (m for help):

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/sda3. 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 1.1: Elenco delle partizioni dopo aver creato la partizione root

Command (m for help): p

Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1           3       13293   41  PPC PReP Boot
/dev/sda2               4         117      506331   82  Linux swap
/dev/sda3             118        6761    29509326   83  Linux

Command (m for help):

Salvare lo schema delle partizioni

Per salvare lo schema delle partizioni e uscire da fdisk, digitare w.

Codice 1.1: 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.

1.  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 in modo predefinito in questo Manuale, continuare con la sezione su come Applicare un filesystem a una partizione. Altrimenti ecco una descrizione dei filesystem disponibili.

Filesystem

Il kernel di Linux supporta diversi tipi di partizione. Seguono le descrizioni di ext2, ext3, ext4, ReiserFS, XFS e JFS, visto che sono i più comuni sui sistemi Linux.

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. Se si ha intenzione di installare Gentoo su un disco molto piccolo (meno di 4GB), in tal caso si dovrà indicare ad ext2 di riservare un numero sufficiente di inode quando si crea il filesystem. Il comando mke2fs usa l'opzione "bytes-per-inode" per calcolare quanti inode un filesystem dovrebbe avere. Se si usa mke2fs -T small /dev/<device> il numero degli inode sarà generalmente il quadruplo per un dato filesystem secondo il suo "bytes-per-inode" riduce da 16kB a 4kB. E' possibile ottimizzare ulteriormente usando mke2fs -i <ratio> /dev/<device>.

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. Utilizza un indice Htree che abilita alte prestazioni in quasi tutte le situazioni. In breve, ext3 è un filesystem davvero molto valido e affidabile, ed è raccomandato per qualsiasi sistema e scopo. Se si ha intenzione di installare Gentoo su un disco molto piccolo (meno di 4GB), in tal caso si dovrà indicare ad ext3 di riservare un numero sufficiente di inode quando si crea il filesystem. Il comando mke2fs usa l'opzione "bytes-per-inode" per calcolare quanti inode un filesystem dovrebbe avere.Se si usa mke2fs -j -T small /dev/<device> il numero degli inode sarà generalmente il quadruplo per un dato filesystem secondo il suo "bytes-per-inode" riduce da 16kB a 4kB. E' possibile ottimizzare ulteriormente usando mke2fs -j -i <ratio> /dev/<device>.

ext4 è un filesystem creato da una ramificazione del progetto ext3 con l'introduzione di nuove funzionalità, miglioramenti nelle prestazioni e la rimozione di limiti di dimensioni, con piccoli cambiamenti ai formati interni del disco. Può arrivare fino a volumi di 1 EB con la dimensione massima per i file di 16 TB. Invece della allocazione a blocchi classica di ext2/3 basata sulla mappatura a bit, ext4 usa le extent, che migliorano le prestazioni per i file grandi e riducono la frammentazione. Ext4 inoltre è provvisto di algoritmi più sofisticati per l'assegnazione dei blocchi (assegnazione ritardata e assegnazione multiblocco) che danno ai driver del filesystem maggiori opportunità di ottimizzare l'uso dello spazio sul disco. Il filesystem ext4 è un compromesso tra la stabilità del codice sei sistemi in produzione e il desiderio di introdurre estensioni ad un filesystem vecchio di almeno un decennio.

JFS è il filesystem con journaling ad alte prestazioni di IBM. JFS è un filesystem leggero, veloce ed affidabile basato su B+Tree con buone prestazioni in varie condizioni.

ReiserFS è un filesystem basato su B+tree che offre ottime prestazioni generali, specialmente nella gestione di una grande quantità di piccoli file, al costo di più cicli di CPU. ReiserFS sembra avere una manutenzione più ridotta degli altri filesystem.

XFS è un filesystem con metadata journaling ricco di caratteristiche interessanti e ottimizzato per una forte scalabilità. XFS sembra essere poco tollerante a vari problemi hardware.

Applicare un filesystem a una partizione

Per creare un filesystem su una partizione o volume, sono disponibili gli strumenti per ogni filesystem possibile:

Filesystem Comando per la creazione
ext2 mke2fs
ext3 mke2fs -j
ext4 mkfs.ext4
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs

Per esempio, per avere la partizione root (/dev/sda4) ext3 si usa:

Codice 1.1: Applicare un filesystem su una partizione

# mke2fs -j /dev/sda4

Ora si procede alla creazione dei filesystem sulle partizioni (o volumi logici) create precedentemente.

Importante: Se si è scelto di usare ReiserFS per /, non cambiare la sua dimensione predefinita dei blocchi nel caso in cui si andasse ad utilizzare yaboot come bootloader, come spiegato in (Configurazione del Bootloader).

Attivare la partizione swap

mkswap è il comando usato per inizializzare le partizioni swap:

Codice 1.1: Creare una signature swap

# mkswap /dev/sda3

Per attivare la partizione swap, usare swapon:

Codice 1.1: Attivare la partizione swap

# swapon /dev/sda3

Creare e attivare swap con il comando menzionato sopra.

1.  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 crea un mount point e si monta la partizione root:

Codice 1.1: Montare le partizioni

# mkdir /mnt/gentoo
# mount /dev/sda4 /mnt/gentoo

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.

Continuare con ( Copia dei file di installazione di Gentoo).

Aggiornato il 28 ottobre 2012

La versione originale di questo documento è più recente ed è stata aggiornata il 23 febbraio 2013

Oggetto: Per poter installare Gentoo è necessario creare delle partizioni. Questo capitolo descrive come partizionare un disco.

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.