Saya masih melihat orang merekomendasikan penggunaan sync; sync; sync; sleep 30; halt
mantra ketika berbicara tentang mematikan atau me-reboot Linux.
Saya sudah menjalankan Linux sejak awal dan meskipun ini adalah prosedur yang disarankan dalam BSD 4.2 / 4.3 dan SunOS 4 hari, saya tidak dapat mengingat bahwa saya harus melakukannya setidaknya selama sepuluh tahun terakhir, di mana saya mungkin melewati shutdown / reboot Linux mungkin ribuan kali.
Saya menduga bahwa ini adalah anakronisme sejak zaman kernel tidak dapat meng-unmount dan menyinkronkan sistem file root dan sistem file kritis lainnya yang diperlukan bahkan selama mode single-user (misalnya / tmp), dan oleh karena itu perlu untuk memberitahu secara eksplisit untuk menyiram data sebanyak mungkin ke disk.
Saat ini, tanpa menemukan kode yang relevan di sumber kernel (menggali melalui http://lxr.linux.no dan google), saya menduga bahwa kernel cukup cerdas untuk unmount unmount bahkan sistem file root dan sistem file cukup cerdas untuk secara efektif melakukan sinkronisasi (2) sebelum melepas sendiri selama normal shutdown
/ reboot
/ poweorff
.
The "sync; sync; sync"
hanya diperlukan dalam kasus-kasus ekstrim di mana filesystem tidak akan unmount bersih (misalnya kegagalan disk fisik) atau sistem dalam keadaan yang hanya memaksa reboot langsung (8) akan mendapatkannya dari pembekuan (misalnya beban terlalu tinggi untuk membiarkannya menjadwalkan perintah shutdown).
Saya juga tidak pernah melakukan sync
prosedur sebelum melepas perangkat yang bisa dilepas, dan tidak pernah menemukan masalah.
Contoh lain - Xen memungkinkan DomU untuk dikirim shutdown
perintah dari Dom0, ini dianggap sebagai "shutdown bersih" tanpa ada yang harus masuk dan mengetikkan magis sync; sync; sync
terlebih dahulu.
Apakah saya benar atau saya beruntung karena beberapa ribu sistem shutdown?