Co Linux robi z istniejącymi plikami w punkcie montowania?
52
Jeśli spróbuję zamontować folder, w którym są już pliki, czy linux wyświetli komunikat o błędzie, czy też pokaże zarówno podłączony system plików, jak i pliki, które już były w folderze?
Zawsze można to wypróbować z niektórymi plikami testowymi, nie?
Chris
Zrobiłbym, gdybym mógł. Po prostu wyszło, że nie mam nic do przetestowania. Próbowałem odmontować i zamontować dysk, o którym mowa, ale wyniki były niejednoznaczne, ponieważ oba miały te same pliki.
szczupły
Czy istnieje sposób na uniemożliwienie zapisu folderu, aby pliki nie mogły tam istnieć?
endolith,
Odpowiedzi:
33
Zostanie po prostu zamontowany, a pliki znikną, wracając, gdy folder zostanie podłączony.
Co masz na myśli przez zniknięcie? Nadal istnieją na serwerze i po prostu nie są wyświetlane, czy zostały usunięte?
szczupły
Pójdę szybko sprawdzić, ale myślę, że zostały usunięte.
Azz
17
+1 Pliki są po prostu niewidoczne, gdy katalog jest montowany „nad” nimi. Nigdy tak naprawdę nie odchodzą, są po prostu niedostępne ...
sleske 18.10.10
10
Działa jak stos, jeśli zamontujesz coś innego, ukrywa poprzednią zawartość. Po odmontowaniu poprzednie elementy stają się ponownie widoczne.
vtest
4
Jestem zdezorientowany tym, jak ktoś, kto powiedział „wracam, gdy folder jest odmontowany”, mógł powiedzieć 3 minuty później „Myślę, że zostały usunięte”. Na szczęście dla wszystkich innych ta pierwsza jest tutaj rzeczywistością.
underscore_d
111
Po zamontowaniu systemu plików w katalogu /mount-pointnie można już uzyskać /mount-pointbezpośredniego dostępu do plików w katalogu . Nadal istnieją, ale /mount-pointteraz odnoszą się do katalogu głównego zamontowanego systemu plików, a nie do katalogu, który służył jako punkt podłączenia, więc zawartość tego katalogu nie jest dostępna, przynajmniej w ten sposób. Na przykład:
# touch /mount-point/somefile
# ls /mount-point/somefile
/mount-point/somefile
# mount /dev/something /mount-point
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
Istnieją sposoby uzyskania scalonego widoku zamontowanego systemu plików i danych, które już były obecne, ale potrzebujesz dodatkowej warstwy zwanej unijnym systemem plików .
Pod Linuksem istnieje sposób, aby zobaczyć ukryte pliki. Możesz użyć, mount --bindaby uzyskać inny widok systemu plików, w którym znajduje się punkt montowania. Na przykład
mount --bind / /other-root-view
Zobaczysz wszystkie pliki w głównym systemie plików pod /other-root-view.
# cat /other-root-view/etc/hostname
darkstar
W szczególności /mount-pointbędzie teraz dostępny jako /other-root-view/mount-point, a ponieważ /other-root-view/mount-pointnie jest punktem montowania, możesz tam zobaczyć jego zawartość:
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
# ls /other-root-view/mount-point/somefile
/other-root-view/mount-point/somefile
Gilles, ta odpowiedź właśnie uratowała mi tyłek, gdy potrzebowałem nagrać gwiazdkę, która została zapisana pod punktem montowania NSF! Zawsze myślałem - Bind miał taką samą perspektywę jak użytkownik. Dziękuję Ci!
andyortlieb
Co z katalogami? Jeśli po zamontowaniu /mount-point/1/zamontowałem inny system plików /mount-point/, czy nadal mogę uzyskać dostęp /mount-point/1/?
CMCDragonkai
@CMCDragonkai Tak, pośrednio poprzez użycie mount binda, jak opisano w mojej odpowiedzi.
Gilles 'SO - przestań być zły'
Giles, to genialna technika, która pomogła mi przeanalizować zawartość mojego systemu. Pomógł także w innym pytaniu, jak sprawdzić użycie wszystkich katalogów głównych bez przechodzenia przez punkty montowania. Rozwiązanie: mkdir /r; mount --bind / /r; du -sh /r/*. Dzięki
Manngo
@Manngo do wykorzystania w przyszłości, nie jest to konieczne. du -x(odpowiednik du --one-file-system) zrobiłby to bez potrzeby --bindshenaniganów.
Odpowiedzi:
Zostanie po prostu zamontowany, a pliki znikną, wracając, gdy folder zostanie podłączony.
źródło
Po zamontowaniu systemu plików w katalogu
/mount-point
nie można już uzyskać/mount-point
bezpośredniego dostępu do plików w katalogu . Nadal istnieją, ale/mount-point
teraz odnoszą się do katalogu głównego zamontowanego systemu plików, a nie do katalogu, który służył jako punkt podłączenia, więc zawartość tego katalogu nie jest dostępna, przynajmniej w ten sposób. Na przykład:Istnieją sposoby uzyskania scalonego widoku zamontowanego systemu plików i danych, które już były obecne, ale potrzebujesz dodatkowej warstwy zwanej unijnym systemem plików .
Pod Linuksem istnieje sposób, aby zobaczyć ukryte pliki. Możesz użyć,
mount --bind
aby uzyskać inny widok systemu plików, w którym znajduje się punkt montowania. Na przykładZobaczysz wszystkie pliki w głównym systemie plików pod
/other-root-view
.W szczególności
/mount-point
będzie teraz dostępny jako/other-root-view/mount-point
, a ponieważ/other-root-view/mount-point
nie jest punktem montowania, możesz tam zobaczyć jego zawartość:źródło
/mount-point/1/
zamontowałem inny system plików/mount-point/
, czy nadal mogę uzyskać dostęp/mount-point/1/
?mkdir /r; mount --bind / /r; du -sh /r/*
. Dziękidu -x
(odpowiednikdu --one-file-system
) zrobiłby to bez potrzeby--bind
shenaniganów.