[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss] systemd reboot
- Subject: [Discuss] systemd reboot
- From: richard.pieri at gmail.com (Richard Pieri)
- Date: Sun, 4 Mar 2018 09:20:09 -0500
- In-reply-to: <firstname.lastname@example.org>
- References: <email@example.com> <firstname.lastname@example.org> <email@example.com>
The old "sync;sync;sync;halt" mantra is folklore from the days before we had a shutdown/reboot command which does this for us. The first sync flushes any dirty buffers, the second blocks waiting for the first to complete ensuring that there are no dirty buffers when the system goes down, and the third... makes us feel good (it has no technical benefit). This doesn't work as expected today because most drives lie about committing writes to permanent storage. The second sync won't block unless the size of data in dirty kernel buffers exceeds the drives' write cache capacity and then it will block only long enough for that ratio to flip. If the system restarts, loses power, whatever, when the drives' on-board caches have not been committed then there will be data loss. The Linux kernel code which guarantees that writes are committed doesn't actually work because it relies on drives not lying about their cache commits. In which case the explicit sync in the script doesn't do anything in terms of flushing data to disk. It does add a small delay between running update-grub and the reboot which, I guess, gives your drives enough time to commit their caches. -- Rich P.