diff options
author | Christian Kastner <ckk@kvr.at> | 2021-01-11 23:49:04 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2021-01-16 09:11:02 +0200 |
commit | c49594f240132d2d9a0eeef407d9219c21c86f85 (patch) | |
tree | 77bbe007d0945592931f33245d1ce2d2e604ac1f /vmdb/plugins/grub_plugin.py | |
parent | f60bdf43c2364fe7ce8389b060bbdb3d822f4a1b (diff) | |
download | vmdb2-c49594f240132d2d9a0eeef407d9219c21c86f85.tar.gz |
feat: Add support for IEEE1275 booting
Adaptation of a solution provided by Ryutaroh.
Diffstat (limited to 'vmdb/plugins/grub_plugin.py')
-rw-r--r-- | vmdb/plugins/grub_plugin.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/vmdb/plugins/grub_plugin.py b/vmdb/plugins/grub_plugin.py index 7905c97..b57ce72 100644 --- a/vmdb/plugins/grub_plugin.py +++ b/vmdb/plugins/grub_plugin.py @@ -88,6 +88,7 @@ class GrubStepRunner(vmdb.StepRunnerInterface): "root-fs": "", "efi": "", "efi-part": "", + "prep": "", "console": "", "tag": "", "image-dev": "", @@ -102,6 +103,8 @@ class GrubStepRunner(vmdb.StepRunnerInterface): self.install_uefi(values, settings, state) elif flavor == "bios": self.install_bios(values, settings, state) + elif flavor == "ieee1275": + self.install_ieee1275(values, settings, state) else: raise Exception("Unknown GRUB flavor {}".format(flavor)) @@ -135,6 +138,12 @@ class GrubStepRunner(vmdb.StepRunnerInterface): grub_target = "i386-pc" self.install_grub(values, settings, state, grub_package, grub_target) + def install_ieee1275(self, values, settings, state): + vmdb.progress("Installing GRUB for IEEE1275") + grub_package = "grub-ieee1275" + grub_target = "powerpc-ieee1275" + self.install_grub(values, settings, state, grub_package, grub_target) + def install_grub(self, values, settings, state, grub_package, grub_target): console = values["console"] or None @@ -155,11 +164,21 @@ class GrubStepRunner(vmdb.StepRunnerInterface): else: efi_dev = None + prep = values["prep"] or None + if prep: + prep_dev = state.tags.get_dev(prep) + else: + prep_dev = None + quiet = values["quiet"] - self.bind_mount_many(chroot, ["/dev", "/sys"], state) + self.bind_mount_many(chroot, ["/dev", "/sys", "/proc"], state) if efi_dev: self.mount(chroot, efi_dev, "/boot/efi", state) + elif prep_dev: + pn = prep_dev[-1] + vmdb.runcmd(["parted", "-s", image_dev, "set", pn, "prep", "on" ]) + image_dev = prep_dev self.install_package(chroot, grub_package) kernel_params = [ |