Unmount yang malas menciptakan mount kucing Schrödinger
- Anda tidak dapat mengetahui apakah perangkat ini benar-benar dilepas atau tidak
- Sistem file "unmount" tetap dapat diakses dalam beberapa keadaan
- Sistem file "unmount" tidak dapat diakses dalam beberapa keadaan
Ada rasa aman yang keliru : tampaknya sistem file telah di-unmount, tetapi pada kenyataannya itu hanya disembunyikan dari file namespace / heirarchy.
- Proses masih dapat menulis melalui deskriptor file terbuka
- File baru atau yang sudah ada dapat dibuka untuk ditulis oleh proses dengan direktori yang berfungsi di dalam mountpoint melalui nama path relatif
Ini berarti bahwa jika Anda umount -l /media/hdd
tidak dapat lagi mengakses /media/hdd/dir/file
(pathname absolut) tetapi jika Anda memiliki proses dengan direktori kerja, /media/hdd
ia masih dapat membuat proses baru yang dapat membaca / menulis ./dir/file
(relatif pathname).
Jika Anda mencoba melepas perangkat, Anda akan mendapat pesan yang membingungkan:
# umount --force --all-targets /dev/sdb2
umount: /dev/sdb2: not mounted
Ini membuatnya tampak seperti perangkat telah diurungkan, tetapi masih ada proses menulis ke disk.
Karena ada berbagai situasi yang tidak jelas yang dapat menyebabkan umount diblokir , sistem file mungkin masih belum dilepas meskipun lsof +f -- /dev/device
tidak menunjukkan apa-apa.
Anda tidak akan pernah tahu apakah sistem file benar-benar dilepas. Tidak ada cara untuk mengetahuinya.
Perangkat yang dapat dilepas
Jika Anda melakukan umount -l
removable disk, Anda berada di daratan: Anda tidak dapat memastikan bahwa semua data yang tertunda telah ditulis ke disk.
Yang terbaik yang dapat Anda lakukan setelah a umount -l
adalah untuk memastikan semua penulisan selesai dan mencegah penulisan di masa depan , tetapi Anda masih tidak dapat menjamin bahwa itu telah dilepas.
Dengan perangkat yang dapat dilepas, jika perangkat tidak terpasang dengan benar, perilaku aneh dapat terjadi saat berikutnya dicolokkan:
Perangkat akan mendapatkan nama perangkat yang ditambahkan, yaitu /dev/sdb
menjadi /dev/sdc
. Pesan-pesan log kernel mungkin masih merujuk /dev/sdb
meskipun perangkat itu tidak ada lagi sebagai file di bawah /dev
. (Satu-satunya cara saya tahu untuk menyelesaikan ini adalah reboot.)
korupsi btrf dapat terjadi. btrfs mengharapkan bahwa hanya satu sistem file dengan UUID yang diberikan hadir pada satu waktu. Kernel masih melihat UUID yang sama yang tersedia pada perangkat phantom dan perangkat baru. (Saya harus membangun kembali HDD cadangan btrfs saya).
systemd
Gotchas