Apa yang dilakukan Linux dengan file yang ada di mount point?
52
Jika saya mencoba me-mount folder yang sudah memiliki file di dalamnya, apakah linux memberi saya pesan kesalahan atau melanjutkan dan memperlihatkan filesystem yang di-mount dan file yang sudah ada di folder?
Selalu bisa mencobanya dengan beberapa file uji, bukan?
Chris
Aku akan melakukannya jika aku bisa. Ternyata saya tidak punya apa-apa untuk diuji. Saya mencoba meng-unmount dan memasang drive yang dimaksud tetapi hasilnya tidak meyakinkan karena keduanya memiliki file yang sama.
langsing
Apakah ada cara untuk membuat folder tidak dapat ditulis sehingga file tidak bisa ada di sana?
endolith
Jawaban:
33
Itu hanya akan di-mount, dan file-file hilang, kembali ketika folder di-umount.
Apa yang Anda maksud dengan menghilang? Mereka terus ada di server dan tidak ditampilkan atau apakah dihapus?
langsing
Saya akan pergi memeriksa cepat, tetapi saya pikir mereka dihapus.
Azz
17
+1 File tidak terlihat saat direktori di-mount "di atas" mereka. Mereka tidak pernah benar-benar pergi, itu hanya tidak dapat diakses ...
sleske
10
Ini berfungsi seperti tumpukan, jika Anda me-mount sesuatu yang lain, itu menyembunyikan konten sebelumnya. Saat Anda melepas gunung, hal-hal sebelumnya menjadi terlihat lagi.
vtest
4
Saya bingung dengan bagaimana seseorang yang mengatakan "kembali ketika folder dilepas" dapat mengatakan 3 menit kemudian "Saya pikir mereka dihapus". Syukurlah untuk semua orang, yang pertama adalah kenyataan di sini.
underscore_d
111
Ketika Anda memasang sistem file pada direktori /mount-point, Anda tidak dapat lagi mengakses file di bawah /mount-pointsecara langsung. Mereka masih ada, tetapi /mount-pointsekarang merujuk ke root dari sistem file yang dipasang, bukan ke direktori yang berfungsi sebagai titik mount, sehingga isi direktori ini tidak dapat diakses, setidaknya dengan cara ini. Sebagai contoh:
# 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
Ada beberapa cara untuk mendapatkan tampilan gabungan dari sistem file yang terpasang dan data yang sudah ada, tetapi Anda membutuhkan lapisan tambahan yang disebut sistem file gabungan .
Di Linux, ada cara untuk melihat file yang tersembunyi. Anda dapat menggunakan mount --binduntuk mendapatkan tampilan lain dari sistem file di mana titik mount berada. Sebagai contoh
mount --bind / /other-root-view
Anda akan melihat semua file di sistem file root di bawah /other-root-view.
# cat /other-root-view/etc/hostname
darkstar
Khususnya, /mount-pointsekarang akan dapat diakses sebagai /other-root-view/mount-point, dan karena /other-root-view/mount-pointbukan titik mount, Anda dapat melihat isinya di sana:
# 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, jawaban ini baru saja menyelamatkanku ketika aku perlu mendapatkan beberapa rekaman asterisk yang disimpan di bawah titik mount NSF! Saya selalu berpikir --bind memiliki perspektif yang sama dengan pengguna. Terima kasih!
andyortlieb
Bagaimana dengan direktori? Jika saya melakukan mount /mount-point/1/kemudian menginstal filesystem lain /mount-point/, apakah saya masih bisa mengakses /mount-point/1/?
CMCDragonkai
@ CMCDragonkai Ya, secara tidak langsung dengan menggunakan bind mount seperti yang dijelaskan dalam jawaban saya.
Gilles 'SANGAT berhenti menjadi jahat'
Giles, ini adalah teknik yang brilian dan telah membantu saya menganalisis apa yang ada di sistem saya sendiri. Ini juga membantu dengan pertanyaan lain, yaitu bagaimana memeriksa penggunaan semua direktori root tanpa melewati titik mount. Solusi: mkdir /r; mount --bind / /r; du -sh /r/*. Terima kasih
Manngo
@Manngo untuk referensi di masa mendatang, ini tidak perlu. du -x(setara dengan du --one-file-system) akan melakukan itu tanpa perlu --bindshenanigans.
Jawaban:
Itu hanya akan di-mount, dan file-file hilang, kembali ketika folder di-umount.
sumber
Ketika Anda memasang sistem file pada direktori
/mount-point
, Anda tidak dapat lagi mengakses file di bawah/mount-point
secara langsung. Mereka masih ada, tetapi/mount-point
sekarang merujuk ke root dari sistem file yang dipasang, bukan ke direktori yang berfungsi sebagai titik mount, sehingga isi direktori ini tidak dapat diakses, setidaknya dengan cara ini. Sebagai contoh:Ada beberapa cara untuk mendapatkan tampilan gabungan dari sistem file yang terpasang dan data yang sudah ada, tetapi Anda membutuhkan lapisan tambahan yang disebut sistem file gabungan .
Di Linux, ada cara untuk melihat file yang tersembunyi. Anda dapat menggunakan
mount --bind
untuk mendapatkan tampilan lain dari sistem file di mana titik mount berada. Sebagai contohAnda akan melihat semua file di sistem file root di bawah
/other-root-view
.Khususnya,
/mount-point
sekarang akan dapat diakses sebagai/other-root-view/mount-point
, dan karena/other-root-view/mount-point
bukan titik mount, Anda dapat melihat isinya di sana:sumber
/mount-point/1/
kemudian menginstal filesystem lain/mount-point/
, apakah saya masih bisa mengakses/mount-point/1/
?mkdir /r; mount --bind / /r; du -sh /r/*
. Terima kasihdu -x
(setara dengandu --one-file-system
) akan melakukan itu tanpa perlu--bind
shenanigans.