From e78143ceafa7744b3614eb64b6d1b2039a72fa46 Mon Sep 17 00:00:00 2001 From: JUN JIE NAN Date: Sat, 11 May 2024 17:45:21 +0800 Subject: [PATCH] Repack windows bios boot support Closes issue #842 Signed-off-by: JUN JIE NAN --- distrobuilder/main_repack-windows.go | 40 +++++++++++++++++----------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/distrobuilder/main_repack-windows.go b/distrobuilder/main_repack-windows.go index 44cfb053..47a79b8e 100644 --- a/distrobuilder/main_repack-windows.go +++ b/distrobuilder/main_repack-windows.go @@ -307,23 +307,33 @@ func (c *cmdRepackWindows) run(cmd *cobra.Command, args []string, overlayDir str } version := strings.Split(stdout.String(), "\n")[0] - genArgs := []string{"--allow-limited-size"} + genArgs := []string{"-l", "-iso-level", "4", + "-no-emul-boot", "-b", "boot/etfsboot.com", + "-boot-load-seg", "0", "-boot-load-size", "8", "-eltorito-alt-boot"} if strings.HasPrefix(version, "mkisofs") { - genArgs = []string{"-iso-level", "3"} - } - - genArgs = append(genArgs, "-input-charset", "utf-8", "-l", "-no-emul-boot", - "-b", "efi/microsoft/boot/efisys.bin", "-o", args[1], overlayDir) - err = shared.RunCommand(context.WithValue(c.global.ctx, shared.ContextKeyStderr, - shared.WriteFunc(func(b []byte) (int, error) { - for i := range b { - if b[i] == '\n' { - b[i] = '\r' + genArgs = append(genArgs, + "-eltorito-platform", "efi", "-no-emul-boot", + "-b", "efi/microsoft/boot/efisys.bin", + "-boot-load-size", "1", "-UDF", + "-o", args[1], overlayDir) + } else { + genArgs = append(genArgs, + "--allow-limited-size", "-no-emul-boot", + "-e", "efi/microsoft/boot/efisys.bin", + "-boot-load-size", "1", "-udf", + "-o", args[1], overlayDir) + } + + err = shared.RunCommand( + context.WithValue(c.global.ctx, shared.ContextKeyStderr, + shared.WriteFunc(func(b []byte) (int, error) { + for i := range b { + if b[i] == '\n' { + b[i] = '\r' + } } - } - - return os.Stderr.Write(b) - })), + return os.Stderr.Write(b) + })), nil, nil, "genisoimage", genArgs...) if err != nil {