diff options
-rwxr-xr-x | draklive | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -561,6 +561,8 @@ sub create_bootloader { } else { create_classical_bootloader($live); } + + create_efi_boot_image($live) if ($live->{settings}{arch} eq 'x86_64'); } sub remove_unneeded_bootlogo_locales { @@ -649,6 +651,17 @@ $live->{media}{title} <kernel options> )); } +sub create_efi_boot_image { + my ($live) = @_; + my $src_dir = $live->get_builddir . $live->{prefix}{build}{files} . '/EFI'; + my $dst_dir = $live->get_builddir . $live->{prefix}{build}{files} . '/boot'; + mkdir_p($dst_dir); + my $boot_image = $dst_dir . '/efiboot.img'; + eval { rm_rf($boot_image) }; + run_("/sbin/mkdosfs", "-F12", "-C", $boot_image, "4096"); + run_("mcopy", "-s", "-i", $boot_image, $src_dir, "::"); +} + sub create_media_bootloader { my ($live) = @_; cp_f($live->get_system_root . '/boot/vmlinuz-' . $live->find_kernel->{version}, $live->get_builddir . $live->{prefix}{build}{boot} . '/vmlinuz'); |