Qual è il significato delle directory predefinite nella gerarchia dei filesystem Linux?


41

Dopo aver installato varie distro Linux per armeggiare, sono perplesso dagli installatori che offrono layout di partizione - per una facile via d'uscita uso solo l'intero spazio disponibile su disco.

Alcune delle partizioni offerte hanno nomi criptici, tra cui / var , swap , / usr e / home . Gli installatori non me lo spiegano davvero: quale scopo servono e quali, se del caso, dovrebbero essere usati?

Risposte:


61

La breve risposta sui nomi delle directory: digitare " man hier" in un terminale :)

Questa è la pagina man della gerarchia del filesystem, che spiega lo scopo generale dei nomi delle directory e ciò che contengono. Puoi vedere una versione web qui .

C'è anche più lettura su Wikipedia:

Questi collegamenti spiegheranno tutto su quali partizioni sono chiamate cosa e cosa sono state (o sono state storicamente) utilizzate per archiviare.

La risposta sull'utilizzo di partizioni separate anziché solo su directory nella stessa partizione ritorna alla manutenibilità e all'espandibilità. Se hai una partizione con, diciamo, /e /homesu di essa, Joe User può riempire la sua /home/joecartella e l'intera macchina esaurirà lo spazio su disco e smetterà di funzionare (sto semplificando qui, ma questo è il risultato generale). Se hai /e /homesu partizioni diverse, Joe User può riempire la sua /home/joecartella e la /homepartizione sarà piena, ma la macchina continuerà a funzionare perché /non è interessata.

Quindi estendi quel principio a quasi tutte le diverse directory che si trovano su partizioni diverse e puoi vedere come sarebbe utile, in particolare quando una macchina è in esecuzione 24/7 in un ruolo multiutente e multi-servizio.


12
+1 per man hierInsegnare a un uomo a pescare e tutto il resto.
George Marian,

Sì, grazie per il puntatore a hier (7). Ho sempre visitato la pagina Web di FHS, senza sapere di avere risposte molto più facilmente disponibili.
andolo

Il problema è che mentre questi sono spiegati come devono essere usati, alcuni non sono effettivamente usati in questo modo come nella directory / srv.
Ronaldo Nascimento

7

Durante l'installazione, molte distribuzioni offrono la possibilità di inserire directory diverse su partizioni diverse. Ad esempio, molti utenti scelgono di avere la directory / home su una partizione diversa rispetto al resto dell'installazione. Questo perché tutto nella directory / home appartiene a un utente - documenti, video e tutti gli altri dati specifici dell'utente vanno qui. Mettendo la directory / home su una partizione separata e i file del sistema operativo reale su un'altra, se un utente decide di fare una nuova installazione del suo sistema operativo Linux, può semplicemente riscrivere la partizione principale e lasciare la sua partizione / home (e tutto dei suoi file) intatto.

Ciò consente inoltre all'utente di installare più distribuzioni Linux su partizioni diverse, condividendo tutte la stessa partizione / home. In questo modo, un utente può accedere ai suoi file indipendentemente dalla versione di Linux in uso.

Un utente occasionale non dovrebbe preoccuparsi troppo di assegnare un / var, swap, / usr separato, ecc. Tutte queste directory fanno parte del sistema operativo e hanno poco a che fare con i file dell'utente.


+1 per il buon collegamento. / Swap non è sempre una partizione separata?
George Marian,

@ George Marian: non è necessario. È possibile configurare lo scambio di filesystem (che è un file all'interno del filesystem di una partizione esistente) anziché lo scambio di partizioni. In questo modo, il sistema Ubuntu può funzionare su una singola partizione.
txwikinger,

3
Per coloro che giocano a casa, vale la pena notare che la possibilità di utilizzare un file di scambio su un normale filesystem dipende dal filesystem. IE: non provarlo con btrfs, (nei kernel più vecchi) ti permetterà di corrompere i dati in silenzio e (nei kernel più recenti) quando provi ad aggiungere lo swap.
RAOF

5

L'uso dell'intero spazio disponibile su disco è un'opzione perfettamente valida (e probabilmente consigliata) per i personal computer. Partizionare il filesystem in quel modo è secondo me una sosta dai tempi antichi prima che il RAID o la gestione del volume virtuale fossero pratici nel software.

Nei sistemi simili a UNIX il filesystem inizia nella directory principale '/'. Nei termini DOS / Windows sarebbe "C:"

Mentre in DOS / Windows aggiungi unità alle lettere D :, E :, ecc. Nei sistemi simili a UNIX "monti" le unità nelle directory. Ai tempi in cui avevi hard disk da 10 o 10 megabyte, potevi montare varie directory in unità e partizioni diverse per dare l'illusione di un singolo disco di grandi dimensioni. Praticamente un RAID 0 di un uomo povero.

Esistono molte ragioni per suddividere le varie directory di root, ma un'idea popolare è che, poiché le partizioni di swap e / var sono state scritte al massimo, hanno le maggiori probabilità di fallire. Separandoli in diverse partizioni è davvero semplice aggiungere un'altra unità dal backup e rimontarla.

Anche avere una partizione / home separata può essere davvero fantastico se esegui più versioni di Linux su una macchina. (Ad esempio Ubuntu e Red Hat). Poiché i programmi Unix / Linux inseriscono le impostazioni dell'utente nella sua directory home. Funziona molto meglio in teoria che in pratica però. Perché è necessario comprendere a fondo le implicazioni delle autorizzazioni.

Ecco alcune importanti directory per i sistemi operativi simili a UNIX e le loro spiegazioni.

  • /bin - File eseguibili di sistema di base
  • /lib - Librerie di sistema di base (.so in Linux, .dlls in Windows).
  • /boot- Dove vive il tuo kernel. Il computer non si avvia senza questo.
  • /var- Directory in cui i servizi possono archiviare file. Come file di registro e cassette postali
  • /etc - File di configurazione del sistema
  • /usr- Applicazioni utente non essenziali. (Un sistema unix può avviarsi senza un / usr (per scopi di recupero) ma non sarebbe molto divertente. Nei sistemi più vecchi è lo stesso di / home.)
  • /home- Directory home dell'utente. Gli utenti normali possono solo scrivere nella propria directory home.
  • swap (non una directory) Questa è generalmente una partizione separata in UNIX. Non esiste una directory di scambio, sebbene sia possibile creare file di scambio in Linux.

2
Direi che anche per un desktop / personal computer, avere / home in una partizione separata è una buona idea. In questo modo, hai meno mal di testa se riempi la tua home directory.
George Marian,

@George Non c'è niente che ti impedisca di collegarti alla tua home directory su un'altra unità. Nella mia configurazione, per consentire la compatibilità con Windows, la mia partizione home è NTFS e collegamento simbolico a qualsiasi cartella utilizzi nella mia cartella home. Vorrei collegare simbolicamente l'intera cartella ma mi piace mantenere le cose nascoste in ~ / separate nel caso in cui decida di fare una nuova installazione. L'uso di percorsi di file codificati collegati a partizioni separate potrebbe essere stato necessario venti anni fa, ma i vincoli architetturali che li hanno resi necessari non esistono oggi.
Evan Plaice,

1
@evan sono confuso. Ti riferisci alle directory di collegamento simbolico nella tua home directory o al collegamento simbolico della tua home directory da qualche altra parte? In che modo è diverso quindi impostare / home su una partizione diversa? (Si noti che "partizione diversa" potrebbe trovarsi su un'unità completamente diversa.) Mi riferivo alla protezione dal comportamento predefinito (ad es. Download collocati in una sottodirectory della cartella principale) inavvertitamente riempiendo la partizione radice.
George Marian,

@George Entrambi e qualunque preferiate. Il punto che sto cercando di chiarire è: perché impostare collegamenti hardcoded durante l'installazione del sistema quando puoi semplicemente inserire alcuni symlink dopo che fanno la stessa cosa e possono essere cambiati facilmente in qualsiasi momento?
Evan Plaice,

@evan Un punto giusto. Non ho mai avuto molta fortuna a scherzare con questo tipo di cose dopo l'installazione, quindi ho sempre preferito farlo nel modo "predefinito".
George Marian,


1

La partizione di swap viene utilizzata anche per l'ibernazione. Se si desidera mettere in sospensione il proprio laptop o desktop, è necessario disporre di una partizione di swap o di un file di swap sufficientemente grande da contenere il sistema operativo in esecuzione e le applicazioni aperte.

Si suggerisce spesso che la partizione di swap abbia le stesse dimensioni della memoria RAM.


1

È possibile creare partizioni separate durante l'installazione. una /homepartizione significherà ogni volta che si installa Ubuntu rimarranno le impostazioni personali dell'utente.

/- è la radice.
/var- (spiegato sopra)
/dev- contiene "collegamenti" ai dispositivi registrati. vale a dire / dev / Video0 è una scheda di acquisizione ...

/bin /sbin - contiene applicazioni

meglio ancora Wikipedia ha un'ottima pagina http://it.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

La cosa più grande che trovo è avere una seconda partizione (la più grande) per le tue cose e come ho detto ogni volta che reinstalli o aggiorni. Seleziona di nuovo quella partizione e assicurati di deselezionare la casella del formato e quindi tutto è tornato. Anche il tuo sfondo!


1

Bene, swapviene utilizzato uno spazio di scambio. È come un file di paging in Windows. In qualche modo integra la RAM.

/home viene utilizzato per dati utente come Documenti in Windows,

/usr è dove la maggior parte dei programmi è molto simile a C: \ Windows e

/var contiene dati che vengono modificati quando il sistema funziona normalmente.

Per quanto riguarda il motivo per cui sono in partizioni separate, penso che sia principalmente se il tuo sistema operativo scende, i tuoi dati non diminuiscono. Ma non ne sono davvero sicuro.


Differenza tra /varvs /etc?
Pacerier

1

Storicamente, è considerato migliori pratiche per avere /home, swape altri nodi critici risiedono in diverse partizioni, dischi fisici diversi, o anche diverse macchine fisiche. Anche se per comodità (nel bene e nel male) e con l'avvento di backup economici o basati su cloud a basso costo, tutto ora vive in un'unica grande partizione e fai semplicemente il backup delle tue cose personali altrove.

/usr, sta per Unix System Resources

/sbin, Binari di sistema

Contrariamente alle credenze popolari, /etcnon rappresenta et cetera . Invece, sta per Extended Tool Chest . Ma, contrariamente alle credenze popolari, è ancora una questione di dibattito.

Ecco alcune altre informazioni su quelle cartelle e su come sono organizzate.


0

Lo scambio dovrebbe essere tenuto separatamente se lo si utilizza. E usa 1,5-2,0 x la dimensione della tua ram per questo.

Il resto può essere tenuto insieme e non ha molta importanza (Linux / Unix non è Windows e ha una gerarchia di directory singola, indipendentemente dal fatto che la directory / var sia una partizione separata o meno, sembra esattamente la stessa). Lo scopo principale del partizionamento è usare diversi filesystem e dividere possibili scenari "full disk" (quindi, per esempio, se / var si riempie di log di alcune app pazze, / home stil funziona)

Come sidenote, consiglio vivamente di utilizzare LVM che consente di creare tutte le partizioni rimovibili e rimovibili liberamente che si desidera, e anche di aggiungere nuovi dischi rigidi alla famiglia. Tuttavia, richiede l'apprendimento della riga di comando, quindi non è per il principiante totale.

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.