Quali mount point esistono su un tipico sistema Linux?


32

Ho 2 domande.

  1. Durante l'installazione di Linux specificiamo lo spazio di memoria per 2 punti di montaggio: root e swap. Ci sono altri punti di montaggio creati senza che gli utenti lo notino?
  2. Questa affermazione è corretta: "il montaggio entra in scena solo quando si ha a che fare con partizioni diverse. Ad esempio, non è possibile montare, diciamo, / proc a meno che non sia una partizione diversa"?

1
+1 per il titolo della domanda! Se tutti i neofiti lo chiedessero così innocentemente ...
Caleb,

Haha, esattamente anche i miei pensieri! +1.
Boehj,

2
@Giovanni: non è consigliabile porre due domande in una. Dal momento che ora ci sono risposte che coprono entrambe le domande, immagino che lasceremo scorrere, ma per favore fai domande separate separatamente la prossima volta. La tua difficoltà a trovare un buon titolo (no, il tuo titolo non era un buon riassunto della tua domanda) era dovuta al tentativo di combinare più domande in una sola.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


47

Ci sono idee sbagliate dietro le tue domande.

  1. Lo swap non è montato.
  2. Il montaggio non è limitato alle partizioni.

partizioni

Una partizione è una porzione¹ di spazio su disco dedicata a uno scopo particolare. Ecco alcuni scopi comuni per le partizioni.

  • Un filesystem , ovvero file organizzati come un albero di directory e memorizzati in un formato come ext2, ext3, FFS, FAT, NTFS, ...
  • Scambia spazio, ovvero lo spazio su disco utilizzato per il paging (e la memorizzazione delle immagini di ibernazione ).
  • Accesso diretto all'applicazione. Alcuni database memorizzano i loro dati direttamente su una partizione anziché su un filesystem per ottenere prestazioni ridotte. (Un filesystem è comunque una specie di database.)
  • Un contenitore per altre partizioni. Ad esempio, una partizione estesa per PC , o una porzione di disco contenente partizioni BSD o un volume fisico LVM (contenente eventualmente volumi logici che possono essere essi stessi considerati partizioni), ...

Filesystem

I filesystem presentano le informazioni in una struttura gerarchica. Ecco alcuni tipi comuni di filesystem:

  • File system supportati da disco, come ext2, ext3, FFS, FAT, NTFS, ...
    • Il supporto non deve essere direttamente su una partizione del disco, come visto sopra. Ad esempio, potrebbe trattarsi di un volume logico LVM o di un montaggio in loop .
  • File system supportati dalla memoria, come Solaris e Linux tmpfs .
  • File system che presentano informazioni dal kernel, come proce sysfssu Linux.
  • File system di rete, come NFS , Samba , ...
  • File system supportati dall'applicazione, di cui FUSE dispone di una vasta raccolta . I filesystem supportati dalle applicazioni possono fare praticamente qualsiasi cosa: far apparire un server FTP come filesystem, dare una visione alternativa di un filesystem in cui i nomi dei file non fanno distinzione tra maiuscole e minuscole o convertirli in una codifica diversa, mostrare i contenuti degli archivi come se fossero directory, ...

Montaggio

Unix presenta i file in una singola gerarchia, generalmente chiamata "filesystem" (ma in questa risposta non userò la parola "filesystem" in questo senso per mantenere la confusione). I singoli filesystem devono essere innestati su quella gerarchia per accedervi.³

Rendi accessibile un filesystem montandolo. Il montaggio associa la directory principale del filesystem che si sta montando con una directory esistente nella gerarchia dei file. Una directory che ha una tale associazione è conosciuta come mount point.

  • Ad esempio, il filesystem di root è montato all'avvio (prima che il kernel avvii qualsiasi processo²) nella /directory.
  • Il filesystem proc su cui alcune varianti unix come Solaris e Linux espongono informazioni sui processi è montato /proc, in modo da /proc/42/environdesignare il file /42/environsul filesystem proc, che (almeno su Linux) contiene una vista di sola lettura dell'ambiente di processo numero 42.
  • Se si dispone di un file system separato, ad esempio per /home, quindi /home/john/myfile.txtdesigna il file il cui percorso /john/myfile.txtproviene dalla radice del file system home.

Sotto Linux, è possibile che lo stesso filesystem sia accessibile attraverso più di un percorso, grazie ai mount bind .

Un tipico filesystem Linux ha molti filesystem montati. (Questo è un esempio; distribuzioni, versioni e configurazioni diverse porteranno al montaggio di diversi filesystem.)

  • /: il filesystem di root, montato prima che il kernel carichi il primo processo. Il bootloader dice al kernel cosa usare come filesystem di root (di solito è una partizione del disco ma potrebbe essere qualcos'altro come un'esportazione NFS).
  • /proc: proc filessytem, ​​con informazioni sul processo e sul kernel.
  • /sys: il filesystem sysfs , con informazioni sui dispositivi hardware.
  • /dev: un file system in memoria in cui i file del dispositivo vengono creati automaticamente da udev in base all'hardware disponibile.
  • /dev/pts: un file system per scopi speciali contenente file di dispositivo per l'esecuzione di emulatori di terminale .
  • /dev/shm: un file system in memoria utilizzato per scopi interni dalla libreria standard del sistema.
  • A seconda dei componenti di sistema in esecuzione, è possibile che vengano visualizzati altri filesystem per scopi speciali come binfmt_misc(utilizzato dal sottosistema kernel di file eseguibile esterno ), fusectl(utilizzato da FUSE ), nfsd(utilizzato dal server NFS del kernel), ...
  • Qualsiasi filesystem esplicitamente menzionato in /etc/fstab(e non contrassegnato noauto) è montato come parte del processo di avvio.
  • Qualsiasi filesystem montato automaticamente da HAL (o funzionalità equivalente) in seguito all'inserimento di un dispositivo rimovibile come una chiave USB.
  • Qualsiasi file system montato esplicitamente con il mountcomando

¹ Informalmente parlando qui.
² Initrd e simili vanno oltre lo scopo di questa risposta.
³ Questo è diverso da Windows, che ha una gerarchia separata per ogni file system, ad esempio c:o \\hostname\sharename.


5
+10 Gilles dove trovi il tempo? Il mio unico commento è che devo dare alle persone un po 'di gioco sulla questione degli swap perché è molto confuso avere la mia partizione di swap elencata /etc/fstabquando non deve essere montata.
Caleb,

sicuramente una domanda sciocca ... ma non riesco a fermarmi. Hai detto "Il montaggio associa una directory alla radice del filesystem". Quindi dove si trova la directory "/"?
Giovanni

2
@Giovanni: non è affatto una domanda sciocca, le parole "filesystem" e "root" hanno qui due significati diversi: ci sono singoli filesystem (ognuno con la sua radice) e c'è l'intera gerarchia di directory (con la sua radice, la /directory) . Ho riformulato questa parte della mia risposta, spero che ora dovrebbe essere più chiara.
Gilles 'SO- smetti di essere malvagio'

Quella risposta è così incredibilmente utile - è enciclopedica. Anch'io vorrei poter fare un +10 qui. Risposta fantastica.
Boehj,

13
  1. Ogni distribuzione Linux ha la propria disposizione di partizione predefinita; alcuni usano dozzine di partizioni, altri solo uno. 3 e 4 sono disposizioni abbastanza comuni (/ boot, /, swap e / home). Alcuni layout più vecchi avevano spesso / var su una partizione separata e sistemi estremi e tutto in / var / * e / opt / * su partizioni separate! La migliore generalizzazione che posso fare in risposta alla tua domanda è che nulla nel mondo unix viene fatto senza che gli utenti si accorgano o non possano modificarlo !
  2. Puoi montare cose che non sono partizioni. Ad esempio / proc di solito non è una partizione, è uno pseudo file system fornito dal kernel che consente di leggere e scrivere dati sui processi in esecuzione come se fossero file. Puoi anche montare file (come ISO) come se fossero unità che utilizzano un dispositivo di loopback, associare le cartelle di montaggio in altri luoghi e fare vari altri trucchi ninja.

1
Tutte le partizioni che vengono montate automaticamente all'avvio sono presenti /etc/fstab. Se aggiungi una partizione lì, sarà lì al prossimo avvio.
LawrenceC,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.