L'idea di un drive in Linux e molto differente da quella di un driver sotto DOS/Windows. Il modo in cui Linux (e in generale UNIX) "vede" i drive è il seguente: Ogni drive fisico può essere diviso in partizioni e ogni partizione può essere "montata" in una directory.
Per questo motivo, non ci sono le lettere che identificano i drive come in DOS; non ci sono i drive A:, B:, C:, e così via. Gli utenti saranno in relazione solo con un drive. Ogni cosa è mostrata in termini di directory. Si potrebbe avere una partizione (chiamata anche filesystem) per la directory root e altri file (la directory /), un altro filesystem per i comandi degli utenti (la directory /usr) e un altro filesystem per lo spazio degli utenti (la directory /usr/users, /home, o /user). Per esempio, si possono avere tre partizioni da usare: Una è per la directory /, una è per la directory /usr, e la terza è per la directory /home.
Quando si cambia directory con il comando cd per entrare nelle directory /usr o /home o / o in ognuna delle loro sub-directory, è come quando si utilizza il comando cd dal DOS/Windows per passare a una sub-directory. Non si devono cambiare le lettere dei drive, basta solo usare cd e si entra in un determinato filesystem.
Usando questo sistema ci sono alcuni vantaggi. Primo, si può aumentare lo spazio totale del sistema. Se si nota che la sub-directory /usr/X11R6 richiede più spazio di quello che ha la directory /usr, si può creare un nuovo filesystem dalla partizione non usata del proprio drive e montare questa partizione come /usr/X11R6. Secondo, tutte le operazioni sui file sono invisibili sia all'utente che ai programmi dell'utente. Il DOS/Windows necessita di una lettera per il drive e una directory. Linux necessita solo di una directory.
Linux si riferisce ai drive fisici (come ad esempio il drive del floppy da 3.5 inch) come file nella directory /dev. Per esempio, il primo drive (chiamato A: in dos/win) è /dev/fd0 in Linux. fd si riferisce al fatto che è un drive floppy, e lo 0 significa che è il primo. Ci sono due modi per riferirsi agli HD: facendo riferimento al drive fisico (primo, secondo drive), o ad una partizione all'interno di un dirive. I file corrispondenti ai drive fisici nella directory /dev contengono un "hd" (hard drive), seguito da una "a" se si tratta del primo drive fisico, "b" se si tratta del secondo, etc. Segue un numero che specifica la partizione all'interno del drive fisico. La prima partizione è 1, la seconda partizione è 2, etc.
Per aiutare a familiarizzare con i concetti di Linux, ecco, di seguito, alcuni modi per indicare lo stesso drive in DOS/Windows e Linux:
DOS LINUX
A: /dev/fd0
B: /dev/fd1
C: (considerando la prima /dev/hda1
partizione sul
primo hard drive)
E: (considerando la /dev/hdb2
seconda partizione sul
secondo hard drive)
Si può creare e usare un nuovo filesystem per Linux, se si dispone di altro spazio sul proprio drive fisico (hard disk) e se questo spazio è impostato come una partizione di Linux. Ciò avviene usando fdisk.
Ci sono due tipi differenti di filesystem che si possono usare, il filesystem minix e l'extended filesystem. Il Filesystem minix funziona ed è correntemente lo standard per i filesystem, ma ha una limitazione per i nomi dei file che possono raggiungere al massimo i 14 caratteri. Il filesystem extended può gestire i nomi dei file lunghi fino ai 255 caratteri, ma il codice non è stato perfezionato ed è ancora in beta testing. Il miglior formato per un filesystem è il minix. (1992)
Per creare un nuovo filesystem minix (o qualsiasi altro filesystem), è necessario conoscere la partizione e le dimensioni della partizione, in blocchi. Si possono trovare queste informazioni eseguendo fdisk e dando il comando 'p':
# fdisk /dev/hdb
Command (m for help): p
Disk /dev/hdb: 8 heads, 35 sectors, 872 cylinders
Units = cylinders of 280 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hdb1 * 1 1 615 86082+ 7 OS/2 HPFS
/dev/hdb2 616 616 872 35980 81 Linux/MINIX
Command (m for help):
In base a queste informazioni, ci sono due partizioni su questo drive
fisico. La prima è una partizione OS/2, e l'altra è un
filesystem minix. Per creare il filesystem su /dev/hdb2 (La seconda
partizione sul secondo drive), si dovrà usare il programma mkfs
fornendo le dimensioni della partizione indicate da fdisk ed usando
l'opzione -c (check) per verificare l'esistenza di blocchi danneggiati:
# mkfs -c /dev/hdb2 35980
Quando il filesystem è stato creato, lo si deve montare ed eventualmente
copiarvi i dati necessari. Se, ad esempio, la partizione è per la
directory /home e non si hanno ancora altri utenti, questo è
già più facile. Ma se si vuole montare un nuovo filesystem
da usare nella directory /usr/src, allora, in tal caso, c'è un pò
di lavoro da svolgere per le impostazioni.
Assumeremo che si voglia aggiungere un filesystem a una directory che contiene già dei dati. Per esempio, la propria directory /usr/src e le sub-directory. La prima cosa che si deve fare è montare la propria nuova partizione in una directory dove si possono copiare i file, perchè non si possono avere due directory chiamate /usr/src. Così, si monterà il proprio filesystem nuovo su /mnt. La directory /mnt è usata principalmente per montare filesystem temporanei, come floppy disk o filesystem usati per il backup. Assumeremo anche che il proprio filesystem nuovo sia in /dev/hdb2. Per montare /dev/hdb2 nella directory /mnt, digitare:
# mount /dev/hdb2 /mnt
Ora si possono copiare i file dalla directory /usr/src alla /mnt. Per
copiare la directory /usr/src e le sue sub-directory, usare l'opzione -r
(recursive) del programma cp:
# cp -r /usr/src /mnt
E tutti i file presenti in /usr/src saranno copiati dentro la /mnt. Dopo
di ciò, si deve "smontare" /dev/hdb2, rimuovere (cancellare) i file in
/usr/src e quindi montare la nuova partizione /dev/hdb2 nella directory
/usr/src:
# umount /dev/hdb2
# rm -r /usr/src/*
# mount /dev/hdb2 /usr/src
Per avere /dev/hdb2 "montata" ogni volta che si riavvia Linux, si deve
aggiungere una linea al file /etc/fstab. Il file /etc/fstab contiene una
"tabella" con le seguenti voci: le partizioni dei drive, dove dovrebbero
essere montate, il tipo di filesystem che tali partizioni usano.
Un esempio di file /etc/fstab potrebbe essere il seguente:
/dev/hda2 / minix defaults
/dev/hdb1 /usr minix defaults
La prima colonna elenca i device che si vogliono montare. La seconda colonna indica dove il filesystem dovrebbe essere montato. La terza colonna indica il tipo di filesystem, e l'ultima colonna dovrebbe essere impostata a 'defaults'.
Con questo file, ogni volta che si avvia Linux, /dev/hda2 sarà montata sulla root directory e /dev/hdb1 sarà montata sulla directory /usr. Tutto questo accade prima del log in, ed è gestito da un file chiamato /etc/rc, di cui parleremo a breve.
Se si vuole rimuovere un filesystem dal file /etc/fstab, prima è necessario assicurarsi che non sia una directory necessaria (come / oppure /lib) e assicurasi di essere comunque in grado di accedere ai file in caso di necessità.
A questo punto, basta rimuovere la riga in questione dal file /etc/fstab e usare umount per smontare il filesystem dal sistema.