diff options
author | Jörg Thalheim <joerg@thalheim.io> | 2017-05-09 18:56:26 +0100 |
---|---|---|
committer | Jörg Thalheim <joerg@thalheim.io> | 2017-05-09 19:06:27 +0100 |
commit | e3beb0710836deab2f4e366b4681e5a04c1107a8 (patch) | |
tree | 941fdb41442daa4a8b2c31c7f2a2f2cdc6c81bd8 /nixos/modules/system/boot/loader/systemd-boot | |
parent | 779ae064674aa9645bcefaacbc83f942e2ef759f (diff) |
systemd-boot: sync efi filesystem after update
Since fat32 provides little recovery facilities after a crash,
it can leave the system in an unbootable state, when a crash/outage
happens shortly after an update. To decrease the likelihood of this
event sync the efi filesystem after each update.
Diffstat (limited to 'nixos/modules/system/boot/loader/systemd-boot')
-rw-r--r-- | nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py index 704c574b822e..804b710f3759 100644 --- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py +++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py @@ -2,12 +2,15 @@ import argparse import shutil import os +import sys import errno import subprocess import glob import tempfile import errno import warnings +import ctypes +libc = ctypes.CDLL("libc.so.6") def copy_if_not_exists(source, dest): if not os.path.exists(dest): @@ -145,5 +148,9 @@ def main(): if os.readlink(system_dir(gen)) == args.default_config: write_loader_conf(gen) + rc = libc.syncfs(os.open("@efiSysMountPoint@", os.O_RDONLY)) + if rc != 0: + print("could not sync @efiSysMountPoint@: {}".format(os.strerror(rc)), file=sys.stderr) + if __name__ == '__main__': main() |