diff options
Diffstat (limited to 'abs/core/systemd/0006-efi-boot-generator-hookup-to-fsck.patch')
-rw-r--r-- | abs/core/systemd/0006-efi-boot-generator-hookup-to-fsck.patch | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/abs/core/systemd/0006-efi-boot-generator-hookup-to-fsck.patch b/abs/core/systemd/0006-efi-boot-generator-hookup-to-fsck.patch new file mode 100644 index 0000000..3830ecf --- /dev/null +++ b/abs/core/systemd/0006-efi-boot-generator-hookup-to-fsck.patch @@ -0,0 +1,81 @@ +From d09ee17da21b7ca2259067ac4e54f8a1cc3c0fc0 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen <teg@jklm.no> +Date: Sat, 5 Oct 2013 17:32:21 +0200 +Subject: [PATCH 6/7] efi-boot-generator: hookup to fsck + +--- + TODO | 1 - + src/efi-boot-generator/efi-boot-generator.c | 26 ++++++++++++++++++++++---- + 2 files changed, 22 insertions(+), 5 deletions(-) + +diff --git a/TODO b/TODO +index f0060d9..814d82d 100644 +--- a/TODO ++++ b/TODO +@@ -308,7 +308,6 @@ Features: + * introduce ExecCondition= in services + + * EFI: +- - fsck hookup for the ESP mount is missing + - write man page for efi boot generator + - honor language efi variables for default language selection (if there are any?) + - honor timezone efi variables for default timezone selection (if there are any?) +diff --git a/src/efi-boot-generator/efi-boot-generator.c b/src/efi-boot-generator/efi-boot-generator.c +index 05b95ed..e20d325 100644 +--- a/src/efi-boot-generator/efi-boot-generator.c ++++ b/src/efi-boot-generator/efi-boot-generator.c +@@ -26,13 +26,14 @@ + #include "path-util.h" + #include "util.h" + #include "mkdir.h" ++#include "unit-name.h" + + static const char *arg_dest = "/tmp"; + + int main(int argc, char *argv[]) { + int r = EXIT_SUCCESS; + sd_id128_t id; +- _cleanup_free_ char *name = NULL; ++ _cleanup_free_ char *name = NULL, *what = NULL, *fsck = NULL; + _cleanup_fclose_ FILE *f = NULL; + + if (argc > 1 && argc != 4) { +@@ -75,15 +76,32 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + ++ r = asprintf(&what, ++ "/dev/disk/by-partuuid/%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", ++ SD_ID128_FORMAT_VAL(id)); ++ if (r < 0) { ++ log_oom(); ++ return EXIT_FAILURE; ++ } ++ ++ fsck = unit_name_from_path_instance("systemd-fsck", what, ".service"); ++ if (!fsck) { ++ log_oom(); ++ return EXIT_FAILURE; ++ } ++ + fprintf(f, + "# Automatially generated by systemd-efi-boot-generator\n\n" + "[Unit]\n" +- "Description=EFI System Partition\n\n" ++ "Description=EFI System Partition\n" ++ "Requires=%s\n" ++ "After=%s\n" ++ "\n" + "[Mount]\n" + "Where=/boot\n" +- "What=/dev/disk/by-partuuid/%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x\n" ++ "What=%s\n" + "Options=umask=0077\n", +- SD_ID128_FORMAT_VAL(id)); ++ fsck, fsck, what); + + free(name); + name = strjoin(arg_dest, "/boot.automount", NULL); +-- +1.8.5.1 + |