Saya ingin memaksa partisi disk untuk hanya membaca mode dan tetap hanya baca selama lebih dari 30 menit.
Apa yang saya coba:
mount -o remount,ro (partition-identifier) (mount-point) -t (filesystem)
Masalah : Ini membuat kesalahan perangkat sibuk karena beberapa proses menggunakan partisi. Saya tidak ingin mematikan proses menggunakan disk. Saya ingin mensimulasikan disk yang tiba-tiba menjadi read-only ketika proses masih menggunakannya.
Gunakan kunci sysrq ajaib, seperti di bawah ini
echo u > /proc/sysrq-trigger
Masalah : Ini akan membuat semua partisi disk read-only (meskipun perangkat sedang sibuk). Tetapi setelah 20-30 menit mesin itu me-reboot dirinya sendiri. Beberapa mesin langsung reboot setelah perintah ini dijalankan. Belum yakin apa yang menyebabkan reboot ini. Saya tidak ingin mesin reboot sendiri dan perlu menjaga disk dalam mode read-only selama 30+ menit.
Pertanyaan : Apakah ada cara yang lebih baik saya bisa memaksa satu partisi disk hanya-baca dan mempertahankannya dalam keadaan itu selama setengah jam dan membawanya kembali ke mode baca-tulis tanpa menyebabkan reboot dalam proses?
sumber
fsfreeze -f
? Itu tidak persis remount sistem file read-only. Alih-alih, ia memblokir semua penulis hinggafsfreeze -u
. Tapi ini mirip ...fsfreeze -f
dan itu kasus saya lebih "os freeze". Mungkin karena menulis diblokir alih-alih ditolak?fsfreeze
mengubah sistem saya tidak dapat diakses dan saya tidak dapat memasukkan perintah unfreeze tidak dapat kembali ke terminal dan harus me-reboot mesin saya. Jadi berhati-hatilah ! :)Jawaban:
Anda biasanya tidak dapat me-remount sistem file sebagai hanya-baca jika proses memiliki file di atasnya yang terbuka untuk ditulis, atau jika itu berisi file yang dihapus tetapi masih terbuka. Demikian pula, Anda tidak dapat meng-unmount sistem file yang membuka file apa pun (atau penggunaan serupa file seperti proses memiliki direktori saat ini di sana, menjalankan executable, dll.).
Anda dapat menggunakan
umount -l
untuk melepaskan titik mount dan mencegah pembukaan file lebih lanjut, tetapi tetap menginstal sistem file dan menjaga proses yang sudah memiliki file terbuka berjalan normal.Saya tidak bisa memikirkan cara umum untuk memaksa sistem file untuk di-remount hanya-baca padahal seharusnya tidak. Namun, jika sistem file didukung oleh perangkat blok, Anda dapat membuat perangkat blok hanya-baca , misalnya
echo u > /proc/sysrq-trigger
adalah cara yang agak ekstrem untuk memaksa remounting sebagai hanya-baca, karena ini memengaruhi semua sistem file. Ini dimaksudkan sebagai metode terakhir untuk membiarkan filesystem dalam keadaan bersih sebelum reboot.Menghitung ulang sistem file sebagai read-only tidak menyebabkan reboot. Apa pun yang menyebabkan reboot tidak secara langsung berkaitan dengan remounting partisi sebagai hanya-baca. Mungkin itu sama sekali tidak terkait, atau mungkin ini memicu bug dalam aplikasi yang menyebabkannya berputar dan membuat prosesor terlalu panas dan prosesor Anda rusak atau overclock dan akhirnya reboot. Anda perlu melacak penyebab reboot.
sumber
echo 1 | sudo tee /sys/block/mmcblk0/mmcblk0p2/ro
echo u > /proc/sysrq-trigger
tidak hanya ekstrem, tetapi juga bisa memaksa Anda untuk reboot jika Anda ingin mengembalikan RW. Ketika saya mencoba ini dan kemudian remount (withmount..
)dmesg
berkata "Tidak dapat me-remount RDWR karena daftar inode anak yatim yang belum diproses. Silakan umount / remount sebagai gantinya"Gunakan
mount
opsi kekuatan (dengan anggapan mount Anda memiliki satu; GNUmount
tidak, tetapi BSD dan macOS misalnya melakukannya):Tentu saja, jarak tempuh Anda dapat bervariasi tergantung pada sistem file yang sebenarnya, versi kernel dan situasi , jadi ini hanya opsi level yang lebih tinggi yang mencoba trik tingkat rendah lainnya seperti misalnya yang disebutkan oleh @Gilles.
sumber
/
partisi ext4 saya .umount -f
, tapi saya baru saja mencoba remounting ke ro, dan sementara -f membuat perintah tidak mengembalikan kesalahan, sistem file sebenarnya, tidak dibuat hanya baca.-f
itu--fake
. Kutipan: "Menyebabkan segala sesuatu harus dilakukan kecuali untuk pemanggilan sistem yang sebenarnya; jika tidak jelas, ini '' palsu '' memasang sistem file. Opsi ini berguna dalam hubungannya dengan flag -v untuk menentukan apa yang coba diperintahkan oleh perintah mount Hal ini juga dapat digunakan untuk menambahkan entri untuk perangkat yang dipasang sebelumnya dengan opsi -n. Opsi -f memeriksa catatan yang ada di / etc / mtab dan gagal ketika catatan sudah ada (dengan mount non-palsu biasa, pemeriksaan ini dilakukan oleh kernel). "-f
memang berarti "kekuatan".