Todavía veo que la gente recomienda el uso de sync; sync; sync; sleep 30; halt
encantamientos cuando se habla de apagar o reiniciar Linux.
He estado ejecutando Linux desde su inicio y, aunque este fue el procedimiento recomendado en el BSD 4.2 / 4.3 y SunOS 4 días, no recuerdo que tuve que hacerlo durante al menos los últimos diez años, durante los cuales probablemente pasó por el apagado / reinicio de Linux tal vez miles de veces.
Sospecho que esto es un anacronismo desde los días en que el núcleo no podía desmontar y sincronizar el sistema de archivos raíz y otros sistemas de archivos críticos necesarios incluso durante el modo de usuario único (por ejemplo, / tmp), y por lo tanto, era necesario decirle explícitamente que se vacíe tantos datos como sea posible al disco.
En estos días, sin encontrar todavía el código relevante en la fuente del kernel (buscando en http://lxr.linux.no y google), sospecho que el kernel es lo suficientemente inteligente como para desmontar limpiamente incluso el sistema de archivos raíz y el sistema de archivos es lo suficientemente inteligente hacer una sincronización efectiva (2) antes de desmontarse durante una shutdown
/ reboot
/ normal poweorff
.
Esto "sync; sync; sync"
solo es necesario en casos extremos donde el sistema de archivos no se desmontará limpiamente (por ejemplo, falla del disco físico) o el sistema está en un estado que solo forzando un reinicio directo (8) lo sacará de su congelamiento (por ejemplo, la carga también alto para permitirle programar el comando de apagado).
Tampoco hago el sync
procedimiento antes de desmontar dispositivos extraíbles, y nunca encuentro un problema.
Otro ejemplo: Xen permite que el DomU reciba un shutdown
comando desde el Dom0, esto se considera un "apagado limpio" sin que nadie tenga que iniciar sesión y escribir el mágico sync; sync; sync
primero.
¿Tengo razón o tuve la suerte de algunos miles de paradas del sistema?