diff --git a/man/ostree.repo-config.xml b/man/ostree.repo-config.xml index e4984430..6fead168 100644 --- a/man/ostree.repo-config.xml +++ b/man/ostree.repo-config.xml @@ -373,7 +373,9 @@ Boston, MA 02111-1307, USA. bootloader Configure the bootloader that OSTree uses when deploying the sysroot. This may take the values - bootloader=none or bootloader=auto. + bootloader=none, bootloader=auto, + bootloader=grub2, bootloader=syslinux, + bootloader=uboot or bootloader=zipl. Default is auto. @@ -388,6 +390,11 @@ Boston, MA 02111-1307, USA. then OSTree will generate a config for the bootloader found. For example, grub2-mkconfig is run for the grub2 case. + + A specific bootloader type may also be explicitly requested by choosing + grub2, syslinux, uboot or + zipl. + diff --git a/src/libostree/ostree-repo-private.h b/src/libostree/ostree-repo-private.h index 14e2f753..628f2b46 100644 --- a/src/libostree/ostree-repo-private.h +++ b/src/libostree/ostree-repo-private.h @@ -114,6 +114,9 @@ typedef enum { typedef enum { CFG_SYSROOT_BOOTLOADER_OPT_AUTO = 0, CFG_SYSROOT_BOOTLOADER_OPT_NONE, + CFG_SYSROOT_BOOTLOADER_OPT_GRUB2, + CFG_SYSROOT_BOOTLOADER_OPT_SYSLINUX, + CFG_SYSROOT_BOOTLOADER_OPT_UBOOT, CFG_SYSROOT_BOOTLOADER_OPT_ZIPL, /* Non-exhaustive */ } OstreeCfgSysrootBootloaderOpt; @@ -122,6 +125,9 @@ static const char* const CFG_SYSROOT_BOOTLOADER_OPTS_STR[] = { /* This must be kept in the same order as the enum */ "auto", "none", + "grub2", + "syslinux", + "uboot", "zipl", NULL, }; diff --git a/src/libostree/ostree-sysroot.c b/src/libostree/ostree-sysroot.c index 63065fb9..265d39d1 100644 --- a/src/libostree/ostree-sysroot.c +++ b/src/libostree/ostree-sysroot.c @@ -1352,6 +1352,15 @@ _ostree_sysroot_query_bootloader (OstreeSysroot *sysroot, /* No bootloader specified; do not query bootloaders to run. */ ret_loader = NULL; break; + case CFG_SYSROOT_BOOTLOADER_OPT_GRUB2: + ret_loader = (OstreeBootloader*) _ostree_bootloader_grub2_new (sysroot); + break; + case CFG_SYSROOT_BOOTLOADER_OPT_SYSLINUX: + ret_loader = (OstreeBootloader*) _ostree_bootloader_syslinux_new (sysroot); + break; + case CFG_SYSROOT_BOOTLOADER_OPT_UBOOT: + ret_loader = (OstreeBootloader*) _ostree_bootloader_uboot_new (sysroot); + break; case CFG_SYSROOT_BOOTLOADER_OPT_ZIPL: /* We never consider zipl as active by default, so it can only be created * if it's explicitly requested in the config */