efi-boot-generator: hookup to fsck

This commit is contained in:
Tom Gundersen 2013-10-05 17:32:21 +02:00
parent accdd018ed
commit d09ee17da2
2 changed files with 22 additions and 5 deletions

1
TODO
View File

@ -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?)

View File

@ -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);