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

+4 -1
View File
@@ -1598,9 +1598,12 @@ ostree_sysroot_write_deployments (OstreeSysroot *self,
else
{
int new_bootversion = self->bootversion ? 0 : 1;
gs_unref_object OstreeBootloader *bootloader = _ostree_sysroot_query_bootloader (self);
gs_unref_object OstreeBootloader *bootloader = NULL;
gs_unref_object GFile *new_loader_entries_dir = NULL;
if (!_ostree_sysroot_query_bootloader (self, &bootloader, cancellable, error))
goto out;
new_loader_entries_dir = ot_gfile_resolve_path_printf (self->path, "boot/loader.%d/entries",
new_bootversion);
if (!gs_shutil_rm_rf (new_loader_entries_dir, cancellable, error))