Dove vanno i file se si monta un'unità in una cartella che contiene già file?


32

Ho appena montato una nuova unità in una cartella che conteneva già file. Non mi importa di loro e li ho da qualche altra parte, ma quella cartella sembra vuota ora. Sono curioso di sapere cosa è successo ai file. Sono semplicemente cancellati da Linux?


Non "vanno" da nessuna parte. Non puoi vederli.
Shadur,

14
Vanno nello stesso posto dove vanno i personaggi dei libri quando non li leggi.
Andrew Beals,

5
Questa è una delle divertenti funzioni / caratteristiche del montaggio che uso / abuso a volte per conoscere lo stato di alcune cose. Alcuni punti di mount (la directory), lascerò un file vuoto not mountedin modo che se lo sfoglio, saprò immediatamente che non è stato montato per nessun motivo.
assassino

Risposte:


37

Appena "ombreggiato" e ci sarà di nuovo quando smontato. :)

In effetti i file sono "lì" intatti e se è necessario raggiungerli immediatamente, senza smontare, questo può essere risolto con il cosiddetto bindmount:

mount --bind /Original/FS/Mount/Point /Somewhere/Else

Funziona (così) perché quando chiedi al kernel di montare un filesystem su un mountpoint, il kernel considera quel mountpoint come una "porta di visualizzazione" sul filesystem che stai montando, quindi ci si aspetta che vedrai il contenuto FS montato lì.

Ma questo non è l'unico modo in cui questi "livelli" di FS possono essere combinati in un'unica vista. C'è il cosiddetto approccio " mount mount " (è divertente sapere che questo "un concetto centrale in Plan 9", BTW). Su Linux potresti usare Aufs , che non si è mai fatto strada nel kernel mainline o, attualmente (dal 3.18), OverlayFS - lo ha fatto .


21

Il filesystem appena montato è come un overlay che nasconde parte del filesystem iniziale. Ci sono dei trucchi per accedere ai file, come il bind mount come descritto da Poige. Su Linux mi piace personalmente il fatto che tu possa montare un filesystem più di una volta su punti di mount diversi. Quindi puoi montare perfettamente il filesystem di root /sia su che su /mnt. Ciò risulta utile durante il debug di spazio perso / file persi / conteggio dell'utilizzo del disco / ...

Gotcha di:

  • I vecchi file sono ancora lì e stanno esaurendo lo spazio . È un errore comune avere spazio su disco "mancante" nei file nascosti da un mount. Ad esempio, quando hai accidentalmente scritto file di grandi dimensioni in una directory e in qualche momento hai deciso di montare un filesystem su di essa. Ad esempio l'avvio accidentale di un database di grandi dimensioni prima che il filesystem di registrazione fosse correttamente montato ...
  • Quando un programma ha un file aperto che viene successivamente nascosto da un filesystem appena montato, il programma non se ne preoccuperà e continuerà a utilizzare correttamente il file "nascosto" fino a quando non lo chiuderà. Da quel momento, quel file diventa invisibile al processo fino a quando il nuovo filesystem non viene smontato e la directory sottostante appare di nuovo.

Molto interessante che tu possa montare un filesystem più di una volta. Sembra che tornerà utile.
T. Brian Jones,
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.