Pada sistem Arch Linux saya (Linux Kernel 3.14.2) bind mount tidak menghormati opsi read only
# mkdir test
# mount --bind -o ro test/ /mnt
# touch /mnt/foo
membuat file /mnt/foo
. Entri yang relevan /proc/mounts
adalah
/dev/sda2 /mnt ext4 rw,noatime,data=ordered 0 0
Mount pilihan tidak cocok pilihan saya diminta, tetapi melakukan mencocokkan kedua perilaku membaca / menulis dari mengikat mount dan opsi yang digunakan untuk awalnya me-mount /dev/sda2
pada/
/dev/sda2 / ext4 rw,noatime,data=ordered 0 0
Namun, jika saya memasang kembali mount maka itu menghormati opsi read only
# mount --bind -o remount,ro test/ /mnt
# touch /mnt/bar
touch: cannot touch ‘/mnt/bar’: Read-only file system
dan entri yang relevan di /proc/mounts/
/dev/sda2 /mnt ext4 ro,relatime,data=ordered 0 0
sepertinya apa yang saya harapkan (walaupun sebenarnya saya akan berharap untuk melihat path lengkap dari test
direktori). Entri /proc/mounts/
untuk mount orignal /dev/sda2/
on /
juga tidak berubah dan tetap baca / tulis
/dev/sda2 / ext4 rw,noatime,data=ordered 0 0
Perilaku ini dan pekerjaannya telah diketahui setidaknya sejak 2008 dan didokumentasikan di halaman manualmount
Perhatikan bahwa opsi pemasangan sistem berkas akan tetap sama dengan yang ada di titik pemasangan asli, dan tidak dapat diubah dengan melewatkan opsi -o bersama dengan --bind / - rbind. Opsi pemasangan dapat diubah dengan perintah remount terpisah
Tidak semua distribusi berperilaku sama. Arch tampaknya diam-diam gagal menghargai opsi sementara Debian menghasilkan peringatan ketika bind mount tidak mendapatkan mount read-only
mount: warning: /mnt seems to be mounted read-write.
Ada laporan bahwa perilaku ini "diperbaiki" di Debian Lenny dan Squeeze meskipun tampaknya tidak menjadi perbaikan universal juga tidak bekerja di Debian Wheezy. Apa yang paling sulit dikaitkan dengan membuat bind mount menghormati opsi read only pada mount awal?
mount -t bind
dan skrip pembantu di bugs.launchpad.net/ubuntu/+source/mountall/+bug/519380
/etc/mtab
. Setelah mount awal entri mengatakan mount adalah rw dan setelah remount dikatakan ro, sehingga melaporkan keadaan mount dengan benar. Hanya perintah mount yang gagal.
mount --bind -o ro
, mereka berdua mengeluarkan pesan mount: warning: «mountpoint» seems to be mounted read-write.
Jadi sepertinya Debian menjatuhkan atau kehilangan tambalan di beberapa titik ... Remount bekerja, meskipun.