run_workspace_command(args, root, ["bootctl", "install"])
if args.get_partition(PartitionIdentifier.bios):
- grub = (
- "grub"
- if args.distribution in (Distribution.ubuntu,
- Distribution.debian,
- Distribution.arch,
- Distribution.gentoo)
- else "grub2"
- )
- # TODO: Just use "grub" once https://github.com/systemd/systemd/pull/16645 is widely available.
- if args.distribution in (Distribution.ubuntu, Distribution.debian, Distribution.opensuse):
- grub = f"/usr/sbin/{grub}"
-
- install_grub(args, root, loopdev, grub)
+ install_grub(args, root, loopdev)
def install_extra_trees(args: MkosiArgs, root: Path, for_cache: bool) -> None:
f.write('GRUB_SERIAL_COMMAND="serial --unit=0 --speed 115200"\n')
-def install_grub(args: MkosiArgs, root: Path, loopdev: Path, grub: str) -> None:
+def install_grub(args: MkosiArgs, root: Path, loopdev: Path) -> None:
assert args.partition_table is not None
part = args.get_partition(PartitionIdentifier.bios)
nspawn_params = nspawn_params_for_blockdev_access(args, loopdev)
+ grub = "/usr/sbin/grub" if root.joinpath("usr/sbin/grub-install").exists() else "/usr/sbin/grub2"
+
cmdline: Sequence[PathString] = [f"{grub}-install", "--modules=ext2 part_gpt", "--target=i386-pc", loopdev]
run_workspace_command(args, root, cmdline, nspawn_params=nspawn_params)