Add (non-atomic) support for GRUB2 + UEFI

We need basic support for UEFI - many newer servers don't support
BIOS compatibility mode anymore.

However, this patch only implements non-atomic because UEFI is FAT, and
we can't do the previous design for OSTree of atomic swap of
/boot/loader.

The Fedora/RHEL UEFI layout has the kernels on a "real" /boot
partition, and /boot/efi/EFI/$vendor just holds the grub2 UEFI binary
and grub.cfg.

Following this, /boot/loader is still on the OS boot partition, and we
still atomically swap it.  This potentially paves the way to atomic
upgrades in the future.

https://bugzilla.gnome.org/show_bug.cgi?id=724246
This commit is contained in:
Colin Walters committed 2014-10-23 21:42:30 -04:00
1 parent b43ce2329e
commit 0c89abee6d
10 files changed
+202 -42

No files matched your search

+8 -2
View File
@@ -37,7 +37,10 @@ struct _OstreeBootloaderInterface
GTypeInterface g_iface;
/* virtual functions */
gboolean (* query) (OstreeBootloader *self);
gboolean (* query) (OstreeBootloader *bootloader,
gboolean *out_is_active,
GCancellable *cancellable,
GError **error);
const char * (* get_name) (OstreeBootloader *self);
gboolean (* write_config) (OstreeBootloader *self,
int bootversion,
@@ -48,7 +51,10 @@ struct _OstreeBootloaderInterface
GType _ostree_bootloader_get_type (void) G_GNUC_CONST;
gboolean _ostree_bootloader_query (OstreeBootloader *self);
gboolean _ostree_bootloader_query (OstreeBootloader *bootloader,
gboolean *out_is_active,
GCancellable *cancellable,
GError **error);
const char *_ostree_bootloader_get_name (OstreeBootloader *self);