diff --git a/config/rootfiles/common/aarch64/grub b/config/rootfiles/common/aarch64/grub
index 83166a61c..c62eadee7 100644
--- a/config/rootfiles/common/aarch64/grub
+++ b/config/rootfiles/common/aarch64/grub
@@ -10,6 +10,7 @@ etc/grub.d/20_linux_xen
 etc/grub.d/25_bli
 etc/grub.d/30_os-prober
 etc/grub.d/30_uefi-firmware
+etc/grub.d/31_efi_bootnext
 etc/grub.d/40_custom
 etc/grub.d/41_custom
 #etc/grub.d/README
@@ -23,6 +24,7 @@ usr/bin/grub-mkfont
 usr/bin/grub-mkimage
 usr/bin/grub-mklayout
 usr/bin/grub-mknetdir
+usr/bin/grub-mkpasswd-argon2
 usr/bin/grub-mkpasswd-pbkdf2
 usr/bin/grub-mkrelpath
 usr/bin/grub-mkrescue
@@ -89,6 +91,8 @@ usr/lib/grub/arm64-efi/command.lst
 usr/lib/grub/arm64-efi/config.h
 usr/lib/grub/arm64-efi/configfile.mod
 usr/lib/grub/arm64-efi/configfile.module
+usr/lib/grub/arm64-efi/connectefi.mod
+usr/lib/grub/arm64-efi/connectefi.module
 usr/lib/grub/arm64-efi/cpio.mod
 usr/lib/grub/arm64-efi/cpio.module
 usr/lib/grub/arm64-efi/cpio_be.mod
@@ -126,6 +130,8 @@ usr/lib/grub/arm64-efi/echo.mod
 usr/lib/grub/arm64-efi/echo.module
 usr/lib/grub/arm64-efi/efi_gop.mod
 usr/lib/grub/arm64-efi/efi_gop.module
+usr/lib/grub/arm64-efi/efibootnext.mod
+usr/lib/grub/arm64-efi/efibootnext.module
 usr/lib/grub/arm64-efi/efifwsetup.mod
 usr/lib/grub/arm64-efi/efifwsetup.module
 usr/lib/grub/arm64-efi/efinet.mod
@@ -196,6 +202,8 @@ usr/lib/grub/arm64-efi/gcry_md4.mod
 usr/lib/grub/arm64-efi/gcry_md4.module
 usr/lib/grub/arm64-efi/gcry_md5.mod
 usr/lib/grub/arm64-efi/gcry_md5.module
+usr/lib/grub/arm64-efi/gcry_pubkey_dilithium.mod
+usr/lib/grub/arm64-efi/gcry_pubkey_dilithium.module
 usr/lib/grub/arm64-efi/gcry_rfc2268.mod
 usr/lib/grub/arm64-efi/gcry_rfc2268.module
 usr/lib/grub/arm64-efi/gcry_rijndael.mod
@@ -294,6 +302,8 @@ usr/lib/grub/arm64-efi/lsefimmap.mod
 usr/lib/grub/arm64-efi/lsefimmap.module
 usr/lib/grub/arm64-efi/lsefisystab.mod
 usr/lib/grub/arm64-efi/lsefisystab.module
+usr/lib/grub/arm64-efi/lsefivar.mod
+usr/lib/grub/arm64-efi/lsefivar.module
 usr/lib/grub/arm64-efi/lsmmap.mod
 usr/lib/grub/arm64-efi/lsmmap.module
 usr/lib/grub/arm64-efi/lssal.mod
@@ -318,8 +328,12 @@ usr/lib/grub/arm64-efi/mdraid1x.mod
 usr/lib/grub/arm64-efi/mdraid1x.module
 usr/lib/grub/arm64-efi/memdisk.mod
 usr/lib/grub/arm64-efi/memdisk.module
+usr/lib/grub/arm64-efi/memmove_bench.mod
+usr/lib/grub/arm64-efi/memmove_bench.module
 usr/lib/grub/arm64-efi/memrw.mod
 usr/lib/grub/arm64-efi/memrw.module
+usr/lib/grub/arm64-efi/mfa.mod
+usr/lib/grub/arm64-efi/mfa.module
 usr/lib/grub/arm64-efi/minicmd.mod
 usr/lib/grub/arm64-efi/minicmd.module
 usr/lib/grub/arm64-efi/minix.mod
@@ -334,6 +348,8 @@ usr/lib/grub/arm64-efi/minix3_be.mod
 usr/lib/grub/arm64-efi/minix3_be.module
 usr/lib/grub/arm64-efi/minix_be.mod
 usr/lib/grub/arm64-efi/minix_be.module
+usr/lib/grub/arm64-efi/mldsa_test.mod
+usr/lib/grub/arm64-efi/mldsa_test.module
 usr/lib/grub/arm64-efi/mmap.mod
 usr/lib/grub/arm64-efi/mmap.module
 usr/lib/grub/arm64-efi/moddep.lst
@@ -388,6 +404,8 @@ usr/lib/grub/arm64-efi/parttool.mod
 usr/lib/grub/arm64-efi/parttool.module
 usr/lib/grub/arm64-efi/password.mod
 usr/lib/grub/arm64-efi/password.module
+usr/lib/grub/arm64-efi/password_argon2.mod
+usr/lib/grub/arm64-efi/password_argon2.module
 usr/lib/grub/arm64-efi/password_pbkdf2.mod
 usr/lib/grub/arm64-efi/password_pbkdf2.module
 usr/lib/grub/arm64-efi/pbkdf2.mod
@@ -426,6 +444,7 @@ usr/lib/grub/arm64-efi/romfs.mod
 usr/lib/grub/arm64-efi/romfs.module
 usr/lib/grub/arm64-efi/rsa_sexp_test.mod
 usr/lib/grub/arm64-efi/rsa_sexp_test.module
+usr/lib/grub/arm64-efi/sbat.csv
 usr/lib/grub/arm64-efi/scsi.mod
 usr/lib/grub/arm64-efi/scsi.module
 usr/lib/grub/arm64-efi/search.mod
@@ -485,6 +504,8 @@ usr/lib/grub/arm64-efi/tpm.mod
 usr/lib/grub/arm64-efi/tpm.module
 usr/lib/grub/arm64-efi/tpm2_key_protector.mod
 usr/lib/grub/arm64-efi/tpm2_key_protector.module
+usr/lib/grub/arm64-efi/tpm_record_pcrs.mod
+usr/lib/grub/arm64-efi/tpm_record_pcrs.module
 usr/lib/grub/arm64-efi/tr.mod
 usr/lib/grub/arm64-efi/tr.module
 usr/lib/grub/arm64-efi/trig.mod
@@ -607,6 +628,7 @@ usr/share/grub/unicode.pf2
 #usr/share/locale/ko/LC_MESSAGES/grub.mo
 #usr/share/locale/lg/LC_MESSAGES/grub.mo
 #usr/share/locale/lt/LC_MESSAGES/grub.mo
+#usr/share/locale/lv/LC_MESSAGES/grub.mo
 #usr/share/locale/nb/LC_MESSAGES/grub.mo
 #usr/share/locale/nl/LC_MESSAGES/grub.mo
 #usr/share/locale/pa/LC_MESSAGES/grub.mo
@@ -633,6 +655,7 @@ usr/share/grub/unicode.pf2
 #usr/share/man/man1/grub-mkimage.1
 #usr/share/man/man1/grub-mklayout.1
 #usr/share/man/man1/grub-mknetdir.1
+#usr/share/man/man1/grub-mkpasswd-argon2.1
 #usr/share/man/man1/grub-mkpasswd-pbkdf2.1
 #usr/share/man/man1/grub-mkrelpath.1
 #usr/share/man/man1/grub-mkrescue.1
diff --git a/config/rootfiles/common/loongarch64/grub b/config/rootfiles/common/loongarch64/grub
index a8ae2a2e1..c9d704578 100644
--- a/config/rootfiles/common/loongarch64/grub
+++ b/config/rootfiles/common/loongarch64/grub
@@ -10,6 +10,7 @@ etc/grub.d/20_linux_xen
 etc/grub.d/25_bli
 etc/grub.d/30_os-prober
 etc/grub.d/30_uefi-firmware
+etc/grub.d/31_efi_bootnext
 etc/grub.d/40_custom
 etc/grub.d/41_custom
 #etc/grub.d/README
@@ -23,6 +24,7 @@ usr/bin/grub-mkfont
 usr/bin/grub-mkimage
 usr/bin/grub-mklayout
 usr/bin/grub-mknetdir
+usr/bin/grub-mkpasswd-argon2
 usr/bin/grub-mkpasswd-pbkdf2
 usr/bin/grub-mkrelpath
 usr/bin/grub-mkrescue
@@ -89,6 +91,8 @@ usr/lib/grub/loongarch64-efi/command.lst
 usr/lib/grub/loongarch64-efi/config.h
 usr/lib/grub/loongarch64-efi/configfile.mod
 usr/lib/grub/loongarch64-efi/configfile.module
+usr/lib/grub/loongarch64-efi/connectefi.mod
+usr/lib/grub/loongarch64-efi/connectefi.module
 usr/lib/grub/loongarch64-efi/cpio.mod
 usr/lib/grub/loongarch64-efi/cpio.module
 usr/lib/grub/loongarch64-efi/cpio_be.mod
@@ -126,6 +130,8 @@ usr/lib/grub/loongarch64-efi/echo.mod
 usr/lib/grub/loongarch64-efi/echo.module
 usr/lib/grub/loongarch64-efi/efi_gop.mod
 usr/lib/grub/loongarch64-efi/efi_gop.module
+usr/lib/grub/loongarch64-efi/efibootnext.mod
+usr/lib/grub/loongarch64-efi/efibootnext.module
 usr/lib/grub/loongarch64-efi/efifwsetup.mod
 usr/lib/grub/loongarch64-efi/efifwsetup.module
 usr/lib/grub/loongarch64-efi/efinet.mod
@@ -196,6 +202,8 @@ usr/lib/grub/loongarch64-efi/gcry_md4.mod
 usr/lib/grub/loongarch64-efi/gcry_md4.module
 usr/lib/grub/loongarch64-efi/gcry_md5.mod
 usr/lib/grub/loongarch64-efi/gcry_md5.module
+usr/lib/grub/loongarch64-efi/gcry_pubkey_dilithium.mod
+usr/lib/grub/loongarch64-efi/gcry_pubkey_dilithium.module
 usr/lib/grub/loongarch64-efi/gcry_rfc2268.mod
 usr/lib/grub/loongarch64-efi/gcry_rfc2268.module
 usr/lib/grub/loongarch64-efi/gcry_rijndael.mod
@@ -294,6 +302,8 @@ usr/lib/grub/loongarch64-efi/lsefimmap.mod
 usr/lib/grub/loongarch64-efi/lsefimmap.module
 usr/lib/grub/loongarch64-efi/lsefisystab.mod
 usr/lib/grub/loongarch64-efi/lsefisystab.module
+usr/lib/grub/loongarch64-efi/lsefivar.mod
+usr/lib/grub/loongarch64-efi/lsefivar.module
 usr/lib/grub/loongarch64-efi/lsmmap.mod
 usr/lib/grub/loongarch64-efi/lsmmap.module
 usr/lib/grub/loongarch64-efi/lssal.mod
@@ -318,8 +328,12 @@ usr/lib/grub/loongarch64-efi/mdraid1x.mod
 usr/lib/grub/loongarch64-efi/mdraid1x.module
 usr/lib/grub/loongarch64-efi/memdisk.mod
 usr/lib/grub/loongarch64-efi/memdisk.module
+usr/lib/grub/loongarch64-efi/memmove_bench.mod
+usr/lib/grub/loongarch64-efi/memmove_bench.module
 usr/lib/grub/loongarch64-efi/memrw.mod
 usr/lib/grub/loongarch64-efi/memrw.module
+usr/lib/grub/loongarch64-efi/mfa.mod
+usr/lib/grub/loongarch64-efi/mfa.module
 usr/lib/grub/loongarch64-efi/minicmd.mod
 usr/lib/grub/loongarch64-efi/minicmd.module
 usr/lib/grub/loongarch64-efi/minix.mod
@@ -334,6 +348,8 @@ usr/lib/grub/loongarch64-efi/minix3_be.mod
 usr/lib/grub/loongarch64-efi/minix3_be.module
 usr/lib/grub/loongarch64-efi/minix_be.mod
 usr/lib/grub/loongarch64-efi/minix_be.module
+usr/lib/grub/loongarch64-efi/mldsa_test.mod
+usr/lib/grub/loongarch64-efi/mldsa_test.module
 usr/lib/grub/loongarch64-efi/mmap.mod
 usr/lib/grub/loongarch64-efi/mmap.module
 usr/lib/grub/loongarch64-efi/moddep.lst
@@ -388,6 +404,8 @@ usr/lib/grub/loongarch64-efi/parttool.mod
 usr/lib/grub/loongarch64-efi/parttool.module
 usr/lib/grub/loongarch64-efi/password.mod
 usr/lib/grub/loongarch64-efi/password.module
+usr/lib/grub/loongarch64-efi/password_argon2.mod
+usr/lib/grub/loongarch64-efi/password_argon2.module
 usr/lib/grub/loongarch64-efi/password_pbkdf2.mod
 usr/lib/grub/loongarch64-efi/password_pbkdf2.module
 usr/lib/grub/loongarch64-efi/pbkdf2.mod
@@ -426,6 +444,7 @@ usr/lib/grub/loongarch64-efi/romfs.mod
 usr/lib/grub/loongarch64-efi/romfs.module
 usr/lib/grub/loongarch64-efi/rsa_sexp_test.mod
 usr/lib/grub/loongarch64-efi/rsa_sexp_test.module
+usr/lib/grub/loongarch64-efi/sbat.csv
 usr/lib/grub/loongarch64-efi/scsi.mod
 usr/lib/grub/loongarch64-efi/scsi.module
 usr/lib/grub/loongarch64-efi/search.mod
@@ -485,6 +504,8 @@ usr/lib/grub/loongarch64-efi/tpm.mod
 usr/lib/grub/loongarch64-efi/tpm.module
 usr/lib/grub/loongarch64-efi/tpm2_key_protector.mod
 usr/lib/grub/loongarch64-efi/tpm2_key_protector.module
+usr/lib/grub/loongarch64-efi/tpm_record_pcrs.mod
+usr/lib/grub/loongarch64-efi/tpm_record_pcrs.module
 usr/lib/grub/loongarch64-efi/tr.mod
 usr/lib/grub/loongarch64-efi/tr.module
 usr/lib/grub/loongarch64-efi/trig.mod
@@ -605,6 +626,7 @@ usr/share/grub/unicode.pf2
 #usr/share/locale/ko/LC_MESSAGES/grub.mo
 #usr/share/locale/lg/LC_MESSAGES/grub.mo
 #usr/share/locale/lt/LC_MESSAGES/grub.mo
+#usr/share/locale/lv/LC_MESSAGES/grub.mo
 #usr/share/locale/nb/LC_MESSAGES/grub.mo
 #usr/share/locale/nl/LC_MESSAGES/grub.mo
 #usr/share/locale/pa/LC_MESSAGES/grub.mo
@@ -631,6 +653,7 @@ usr/share/grub/unicode.pf2
 #usr/share/man/man1/grub-mkimage.1
 #usr/share/man/man1/grub-mklayout.1
 #usr/share/man/man1/grub-mknetdir.1
+#usr/share/man/man1/grub-mkpasswd-argon2.1
 #usr/share/man/man1/grub-mkpasswd-pbkdf2.1
 #usr/share/man/man1/grub-mkrelpath.1
 #usr/share/man/man1/grub-mkrescue.1
diff --git a/config/rootfiles/common/riscv64/grub b/config/rootfiles/common/riscv64/grub
index f9b981db9..5709ba46f 100644
--- a/config/rootfiles/common/riscv64/grub
+++ b/config/rootfiles/common/riscv64/grub
@@ -10,6 +10,7 @@ etc/grub.d/20_linux_xen
 etc/grub.d/25_bli
 etc/grub.d/30_os-prober
 etc/grub.d/30_uefi-firmware
+etc/grub.d/31_efi_bootnext
 etc/grub.d/40_custom
 etc/grub.d/41_custom
 #etc/grub.d/README
@@ -23,6 +24,7 @@ usr/bin/grub-mkfont
 usr/bin/grub-mkimage
 usr/bin/grub-mklayout
 usr/bin/grub-mknetdir
+usr/bin/grub-mkpasswd-argon2
 usr/bin/grub-mkpasswd-pbkdf2
 usr/bin/grub-mkrelpath
 usr/bin/grub-mkrescue
@@ -89,6 +91,8 @@ usr/lib/grub/riscv64-efi/command.lst
 usr/lib/grub/riscv64-efi/config.h
 usr/lib/grub/riscv64-efi/configfile.mod
 usr/lib/grub/riscv64-efi/configfile.module
+usr/lib/grub/riscv64-efi/connectefi.mod
+usr/lib/grub/riscv64-efi/connectefi.module
 usr/lib/grub/riscv64-efi/cpio.mod
 usr/lib/grub/riscv64-efi/cpio.module
 usr/lib/grub/riscv64-efi/cpio_be.mod
@@ -126,6 +130,8 @@ usr/lib/grub/riscv64-efi/echo.mod
 usr/lib/grub/riscv64-efi/echo.module
 usr/lib/grub/riscv64-efi/efi_gop.mod
 usr/lib/grub/riscv64-efi/efi_gop.module
+usr/lib/grub/riscv64-efi/efibootnext.mod
+usr/lib/grub/riscv64-efi/efibootnext.module
 usr/lib/grub/riscv64-efi/efifwsetup.mod
 usr/lib/grub/riscv64-efi/efifwsetup.module
 usr/lib/grub/riscv64-efi/efinet.mod
@@ -196,6 +202,8 @@ usr/lib/grub/riscv64-efi/gcry_md4.mod
 usr/lib/grub/riscv64-efi/gcry_md4.module
 usr/lib/grub/riscv64-efi/gcry_md5.mod
 usr/lib/grub/riscv64-efi/gcry_md5.module
+usr/lib/grub/riscv64-efi/gcry_pubkey_dilithium.mod
+usr/lib/grub/riscv64-efi/gcry_pubkey_dilithium.module
 usr/lib/grub/riscv64-efi/gcry_rfc2268.mod
 usr/lib/grub/riscv64-efi/gcry_rfc2268.module
 usr/lib/grub/riscv64-efi/gcry_rijndael.mod
@@ -294,6 +302,8 @@ usr/lib/grub/riscv64-efi/lsefimmap.mod
 usr/lib/grub/riscv64-efi/lsefimmap.module
 usr/lib/grub/riscv64-efi/lsefisystab.mod
 usr/lib/grub/riscv64-efi/lsefisystab.module
+usr/lib/grub/riscv64-efi/lsefivar.mod
+usr/lib/grub/riscv64-efi/lsefivar.module
 usr/lib/grub/riscv64-efi/lsmmap.mod
 usr/lib/grub/riscv64-efi/lsmmap.module
 usr/lib/grub/riscv64-efi/lssal.mod
@@ -318,8 +328,12 @@ usr/lib/grub/riscv64-efi/mdraid1x.mod
 usr/lib/grub/riscv64-efi/mdraid1x.module
 usr/lib/grub/riscv64-efi/memdisk.mod
 usr/lib/grub/riscv64-efi/memdisk.module
+usr/lib/grub/riscv64-efi/memmove_bench.mod
+usr/lib/grub/riscv64-efi/memmove_bench.module
 usr/lib/grub/riscv64-efi/memrw.mod
 usr/lib/grub/riscv64-efi/memrw.module
+usr/lib/grub/riscv64-efi/mfa.mod
+usr/lib/grub/riscv64-efi/mfa.module
 usr/lib/grub/riscv64-efi/minicmd.mod
 usr/lib/grub/riscv64-efi/minicmd.module
 usr/lib/grub/riscv64-efi/minix.mod
@@ -334,6 +348,8 @@ usr/lib/grub/riscv64-efi/minix3_be.mod
 usr/lib/grub/riscv64-efi/minix3_be.module
 usr/lib/grub/riscv64-efi/minix_be.mod
 usr/lib/grub/riscv64-efi/minix_be.module
+usr/lib/grub/riscv64-efi/mldsa_test.mod
+usr/lib/grub/riscv64-efi/mldsa_test.module
 usr/lib/grub/riscv64-efi/mmap.mod
 usr/lib/grub/riscv64-efi/mmap.module
 usr/lib/grub/riscv64-efi/moddep.lst
@@ -388,6 +404,8 @@ usr/lib/grub/riscv64-efi/parttool.mod
 usr/lib/grub/riscv64-efi/parttool.module
 usr/lib/grub/riscv64-efi/password.mod
 usr/lib/grub/riscv64-efi/password.module
+usr/lib/grub/riscv64-efi/password_argon2.mod
+usr/lib/grub/riscv64-efi/password_argon2.module
 usr/lib/grub/riscv64-efi/password_pbkdf2.mod
 usr/lib/grub/riscv64-efi/password_pbkdf2.module
 usr/lib/grub/riscv64-efi/pbkdf2.mod
@@ -426,6 +444,7 @@ usr/lib/grub/riscv64-efi/romfs.mod
 usr/lib/grub/riscv64-efi/romfs.module
 usr/lib/grub/riscv64-efi/rsa_sexp_test.mod
 usr/lib/grub/riscv64-efi/rsa_sexp_test.module
+usr/lib/grub/riscv64-efi/sbat.csv
 usr/lib/grub/riscv64-efi/scsi.mod
 usr/lib/grub/riscv64-efi/scsi.module
 usr/lib/grub/riscv64-efi/search.mod
@@ -485,6 +504,8 @@ usr/lib/grub/riscv64-efi/tpm.mod
 usr/lib/grub/riscv64-efi/tpm.module
 usr/lib/grub/riscv64-efi/tpm2_key_protector.mod
 usr/lib/grub/riscv64-efi/tpm2_key_protector.module
+usr/lib/grub/riscv64-efi/tpm_record_pcrs.mod
+usr/lib/grub/riscv64-efi/tpm_record_pcrs.module
 usr/lib/grub/riscv64-efi/tr.mod
 usr/lib/grub/riscv64-efi/tr.module
 usr/lib/grub/riscv64-efi/trig.mod
@@ -605,6 +626,7 @@ usr/share/grub/unicode.pf2
 #usr/share/locale/ko/LC_MESSAGES/grub.mo
 #usr/share/locale/lg/LC_MESSAGES/grub.mo
 #usr/share/locale/lt/LC_MESSAGES/grub.mo
+#usr/share/locale/lv/LC_MESSAGES/grub.mo
 #usr/share/locale/nb/LC_MESSAGES/grub.mo
 #usr/share/locale/nl/LC_MESSAGES/grub.mo
 #usr/share/locale/pa/LC_MESSAGES/grub.mo
@@ -631,6 +653,7 @@ usr/share/grub/unicode.pf2
 #usr/share/man/man1/grub-mkimage.1
 #usr/share/man/man1/grub-mklayout.1
 #usr/share/man/man1/grub-mknetdir.1
+#usr/share/man/man1/grub-mkpasswd-argon2.1
 #usr/share/man/man1/grub-mkpasswd-pbkdf2.1
 #usr/share/man/man1/grub-mkrelpath.1
 #usr/share/man/man1/grub-mkrescue.1
diff --git a/config/rootfiles/common/x86_64/grub b/config/rootfiles/common/x86_64/grub
index b6ddd5709..0d56c2fa5 100644
--- a/config/rootfiles/common/x86_64/grub
+++ b/config/rootfiles/common/x86_64/grub
@@ -11,6 +11,7 @@ etc/grub.d/20_linux_xen
 etc/grub.d/25_bli
 etc/grub.d/30_os-prober
 etc/grub.d/30_uefi-firmware
+etc/grub.d/31_efi_bootnext
 etc/grub.d/40_custom
 etc/grub.d/41_custom
 #etc/grub.d/README
@@ -24,6 +25,7 @@ usr/bin/grub-mkfont
 usr/bin/grub-mkimage
 usr/bin/grub-mklayout
 usr/bin/grub-mknetdir
+usr/bin/grub-mkpasswd-argon2
 usr/bin/grub-mkpasswd-pbkdf2
 usr/bin/grub-mkrelpath
 usr/bin/grub-mkrescue
@@ -231,6 +233,8 @@ usr/lib/grub/i386-pc/gcry_md4.mod
 usr/lib/grub/i386-pc/gcry_md4.module
 usr/lib/grub/i386-pc/gcry_md5.mod
 usr/lib/grub/i386-pc/gcry_md5.module
+usr/lib/grub/i386-pc/gcry_pubkey_dilithium.mod
+usr/lib/grub/i386-pc/gcry_pubkey_dilithium.module
 usr/lib/grub/i386-pc/gcry_rfc2268.mod
 usr/lib/grub/i386-pc/gcry_rfc2268.module
 usr/lib/grub/i386-pc/gcry_rijndael.mod
@@ -369,8 +373,12 @@ usr/lib/grub/i386-pc/mdraid1x.mod
 usr/lib/grub/i386-pc/mdraid1x.module
 usr/lib/grub/i386-pc/memdisk.mod
 usr/lib/grub/i386-pc/memdisk.module
+usr/lib/grub/i386-pc/memmove_bench.mod
+usr/lib/grub/i386-pc/memmove_bench.module
 usr/lib/grub/i386-pc/memrw.mod
 usr/lib/grub/i386-pc/memrw.module
+usr/lib/grub/i386-pc/mfa.mod
+usr/lib/grub/i386-pc/mfa.module
 usr/lib/grub/i386-pc/minicmd.mod
 usr/lib/grub/i386-pc/minicmd.module
 usr/lib/grub/i386-pc/minix.mod
@@ -385,6 +393,8 @@ usr/lib/grub/i386-pc/minix3_be.mod
 usr/lib/grub/i386-pc/minix3_be.module
 usr/lib/grub/i386-pc/minix_be.mod
 usr/lib/grub/i386-pc/minix_be.module
+usr/lib/grub/i386-pc/mldsa_test.mod
+usr/lib/grub/i386-pc/mldsa_test.module
 usr/lib/grub/i386-pc/mmap.mod
 usr/lib/grub/i386-pc/mmap.module
 usr/lib/grub/i386-pc/moddep.lst
@@ -417,6 +427,8 @@ usr/lib/grub/i386-pc/ntfscomp.mod
 usr/lib/grub/i386-pc/ntfscomp.module
 usr/lib/grub/i386-pc/ntldr.mod
 usr/lib/grub/i386-pc/ntldr.module
+usr/lib/grub/i386-pc/nvme.mod
+usr/lib/grub/i386-pc/nvme.module
 usr/lib/grub/i386-pc/odc.mod
 usr/lib/grub/i386-pc/odc.module
 usr/lib/grub/i386-pc/offsetio.mod
@@ -451,6 +463,8 @@ usr/lib/grub/i386-pc/parttool.mod
 usr/lib/grub/i386-pc/parttool.module
 usr/lib/grub/i386-pc/password.mod
 usr/lib/grub/i386-pc/password.module
+usr/lib/grub/i386-pc/password_argon2.mod
+usr/lib/grub/i386-pc/password_argon2.module
 usr/lib/grub/i386-pc/password_pbkdf2.mod
 usr/lib/grub/i386-pc/password_pbkdf2.module
 usr/lib/grub/i386-pc/pata.mod
@@ -629,6 +643,8 @@ usr/lib/grub/i386-pc/videotest.mod
 usr/lib/grub/i386-pc/videotest.module
 usr/lib/grub/i386-pc/videotest_checksum.mod
 usr/lib/grub/i386-pc/videotest_checksum.module
+usr/lib/grub/i386-pc/virtionet.mod
+usr/lib/grub/i386-pc/virtionet.module
 usr/lib/grub/i386-pc/wrmsr.mod
 usr/lib/grub/i386-pc/wrmsr.module
 usr/lib/grub/i386-pc/xfs.mod
@@ -734,6 +750,8 @@ usr/lib/grub/x86_64-efi/command.lst
 usr/lib/grub/x86_64-efi/config.h
 usr/lib/grub/x86_64-efi/configfile.mod
 usr/lib/grub/x86_64-efi/configfile.module
+usr/lib/grub/x86_64-efi/connectefi.mod
+usr/lib/grub/x86_64-efi/connectefi.module
 usr/lib/grub/x86_64-efi/cpio.mod
 usr/lib/grub/x86_64-efi/cpio.module
 usr/lib/grub/x86_64-efi/cpio_be.mod
@@ -775,8 +793,8 @@ usr/lib/grub/x86_64-efi/echo.mod
 usr/lib/grub/x86_64-efi/echo.module
 usr/lib/grub/x86_64-efi/efi_gop.mod
 usr/lib/grub/x86_64-efi/efi_gop.module
-usr/lib/grub/x86_64-efi/efi_uga.mod
-usr/lib/grub/x86_64-efi/efi_uga.module
+usr/lib/grub/x86_64-efi/efibootnext.mod
+usr/lib/grub/x86_64-efi/efibootnext.module
 usr/lib/grub/x86_64-efi/efifwsetup.mod
 usr/lib/grub/x86_64-efi/efifwsetup.module
 usr/lib/grub/x86_64-efi/efinet.mod
@@ -849,6 +867,8 @@ usr/lib/grub/x86_64-efi/gcry_md4.mod
 usr/lib/grub/x86_64-efi/gcry_md4.module
 usr/lib/grub/x86_64-efi/gcry_md5.mod
 usr/lib/grub/x86_64-efi/gcry_md5.module
+usr/lib/grub/x86_64-efi/gcry_pubkey_dilithium.mod
+usr/lib/grub/x86_64-efi/gcry_pubkey_dilithium.module
 usr/lib/grub/x86_64-efi/gcry_rfc2268.mod
 usr/lib/grub/x86_64-efi/gcry_rfc2268.module
 usr/lib/grub/x86_64-efi/gcry_rijndael.mod
@@ -961,6 +981,8 @@ usr/lib/grub/x86_64-efi/lsefimmap.mod
 usr/lib/grub/x86_64-efi/lsefimmap.module
 usr/lib/grub/x86_64-efi/lsefisystab.mod
 usr/lib/grub/x86_64-efi/lsefisystab.module
+usr/lib/grub/x86_64-efi/lsefivar.mod
+usr/lib/grub/x86_64-efi/lsefivar.module
 usr/lib/grub/x86_64-efi/lsmmap.mod
 usr/lib/grub/x86_64-efi/lsmmap.module
 usr/lib/grub/x86_64-efi/lspci.mod
@@ -987,8 +1009,12 @@ usr/lib/grub/x86_64-efi/mdraid1x.mod
 usr/lib/grub/x86_64-efi/mdraid1x.module
 usr/lib/grub/x86_64-efi/memdisk.mod
 usr/lib/grub/x86_64-efi/memdisk.module
+usr/lib/grub/x86_64-efi/memmove_bench.mod
+usr/lib/grub/x86_64-efi/memmove_bench.module
 usr/lib/grub/x86_64-efi/memrw.mod
 usr/lib/grub/x86_64-efi/memrw.module
+usr/lib/grub/x86_64-efi/mfa.mod
+usr/lib/grub/x86_64-efi/mfa.module
 usr/lib/grub/x86_64-efi/minicmd.mod
 usr/lib/grub/x86_64-efi/minicmd.module
 usr/lib/grub/x86_64-efi/minix.mod
@@ -1003,6 +1029,8 @@ usr/lib/grub/x86_64-efi/minix3_be.mod
 usr/lib/grub/x86_64-efi/minix3_be.module
 usr/lib/grub/x86_64-efi/minix_be.mod
 usr/lib/grub/x86_64-efi/minix_be.module
+usr/lib/grub/x86_64-efi/mldsa_test.mod
+usr/lib/grub/x86_64-efi/mldsa_test.module
 usr/lib/grub/x86_64-efi/mmap.mod
 usr/lib/grub/x86_64-efi/mmap.module
 usr/lib/grub/x86_64-efi/moddep.lst
@@ -1033,6 +1061,8 @@ usr/lib/grub/x86_64-efi/ntfs.mod
 usr/lib/grub/x86_64-efi/ntfs.module
 usr/lib/grub/x86_64-efi/ntfscomp.mod
 usr/lib/grub/x86_64-efi/ntfscomp.module
+usr/lib/grub/x86_64-efi/nvme.mod
+usr/lib/grub/x86_64-efi/nvme.module
 usr/lib/grub/x86_64-efi/odc.mod
 usr/lib/grub/x86_64-efi/odc.module
 usr/lib/grub/x86_64-efi/offsetio.mod
@@ -1067,6 +1097,8 @@ usr/lib/grub/x86_64-efi/parttool.mod
 usr/lib/grub/x86_64-efi/parttool.module
 usr/lib/grub/x86_64-efi/password.mod
 usr/lib/grub/x86_64-efi/password.module
+usr/lib/grub/x86_64-efi/password_argon2.mod
+usr/lib/grub/x86_64-efi/password_argon2.module
 usr/lib/grub/x86_64-efi/password_pbkdf2.mod
 usr/lib/grub/x86_64-efi/password_pbkdf2.module
 usr/lib/grub/x86_64-efi/pata.mod
@@ -1117,6 +1149,7 @@ usr/lib/grub/x86_64-efi/romfs.mod
 usr/lib/grub/x86_64-efi/romfs.module
 usr/lib/grub/x86_64-efi/rsa_sexp_test.mod
 usr/lib/grub/x86_64-efi/rsa_sexp_test.module
+usr/lib/grub/x86_64-efi/sbat.csv
 usr/lib/grub/x86_64-efi/scsi.mod
 usr/lib/grub/x86_64-efi/scsi.module
 usr/lib/grub/x86_64-efi/search.mod
@@ -1176,10 +1209,14 @@ usr/lib/grub/x86_64-efi/tga.mod
 usr/lib/grub/x86_64-efi/tga.module
 usr/lib/grub/x86_64-efi/time.mod
 usr/lib/grub/x86_64-efi/time.module
+usr/lib/grub/x86_64-efi/tpcm.mod
+usr/lib/grub/x86_64-efi/tpcm.module
 usr/lib/grub/x86_64-efi/tpm.mod
 usr/lib/grub/x86_64-efi/tpm.module
 usr/lib/grub/x86_64-efi/tpm2_key_protector.mod
 usr/lib/grub/x86_64-efi/tpm2_key_protector.module
+usr/lib/grub/x86_64-efi/tpm_record_pcrs.mod
+usr/lib/grub/x86_64-efi/tpm_record_pcrs.module
 usr/lib/grub/x86_64-efi/tr.mod
 usr/lib/grub/x86_64-efi/tr.module
 usr/lib/grub/x86_64-efi/trig.mod
@@ -1231,8 +1268,12 @@ usr/lib/grub/x86_64-efi/videotest.mod
 usr/lib/grub/x86_64-efi/videotest.module
 usr/lib/grub/x86_64-efi/videotest_checksum.mod
 usr/lib/grub/x86_64-efi/videotest_checksum.module
+usr/lib/grub/x86_64-efi/virtionet.mod
+usr/lib/grub/x86_64-efi/virtionet.module
 usr/lib/grub/x86_64-efi/wrmsr.mod
 usr/lib/grub/x86_64-efi/wrmsr.module
+usr/lib/grub/x86_64-efi/xen_boot.mod
+usr/lib/grub/x86_64-efi/xen_boot.module
 usr/lib/grub/x86_64-efi/xfs.mod
 usr/lib/grub/x86_64-efi/xfs.module
 usr/lib/grub/x86_64-efi/xnu.mod
@@ -1326,6 +1367,7 @@ usr/share/grub/unicode.pf2
 #usr/share/locale/ko/LC_MESSAGES/grub.mo
 #usr/share/locale/lg/LC_MESSAGES/grub.mo
 #usr/share/locale/lt/LC_MESSAGES/grub.mo
+#usr/share/locale/lv/LC_MESSAGES/grub.mo
 #usr/share/locale/nb/LC_MESSAGES/grub.mo
 #usr/share/locale/nl/LC_MESSAGES/grub.mo
 #usr/share/locale/pa/LC_MESSAGES/grub.mo
@@ -1352,6 +1394,7 @@ usr/share/grub/unicode.pf2
 #usr/share/man/man1/grub-mkimage.1
 #usr/share/man/man1/grub-mklayout.1
 #usr/share/man/man1/grub-mknetdir.1
+#usr/share/man/man1/grub-mkpasswd-argon2.1
 #usr/share/man/man1/grub-mkpasswd-pbkdf2.1
 #usr/share/man/man1/grub-mkrelpath.1
 #usr/share/man/man1/grub-mkrescue.1
diff --git a/lfs/grub b/lfs/grub
index 226775c63..6bfa7e964 100644
--- a/lfs/grub
+++ b/lfs/grub
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.14
+VER        = 2.16
 
 THISAPP    = grub-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -61,7 +61,7 @@ objects = $(DL_FILE) \
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 unifont-7.0.03.pcf.gz = $(DL_FROM)/unifont-7.0.03.pcf.gz
 
-$(DL_FILE)_BLAKE2 = 724bb430d8824bec39e6a025cf354a780b79260684c7c4e3d28beb08c8bee10d082a089fcb799f8f5eb6e83abcf8675fb7c5f5ddf443c5c0e61d6f180ee341af
+$(DL_FILE)_BLAKE2 = 74437966a70854ec29f3d80715ac3436f4340e6f69ccd084b8762dd36f80a30e707333d2102639372ce421b79179a1fa043cbb6a2d25e568d035b916b228fca1
 unifont-7.0.03.pcf.gz_BLAKE2 = fb96c1786fcc8c77796c90ce30a2b7d544013bd62cedbf7b027e1894fe75cdbd2044717796cb0e3150db1457fcb58076491d9c0b855621b652fb9a52c0793469
 
 install : $(TARGET)
@@ -94,9 +94,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@rm -rf $(DIR_APP) $(DIR_APP_EFI) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
 	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.06-remove_os_prober_disabled_warning.patch
 	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.02_disable_vga_fallback.patch
-	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.12-Use-medany-instead-of-large-model-for-RISCV.patch
-	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.14-Revert-configure:_Check_linker_for_--image-base_support.patch
-	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.14-Revert-configure:_Print_a_more_helpful_error_if_autoconf-archive_is_not_installed.patch
+	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.16-Use-medany-instead-of-large-model-for-RISCV.patch
 	cd $(DIR_APP) && [ ! -e grub-core/extra_deps.lst ] && echo 'depends bli part_gpt' > grub-core/extra_deps.lst
 	cd $(DIR_APP) && autoreconf -vfi
 
diff --git a/src/patches/grub/grub-2.14-Revert-configure:_Check_linker_for_--image-base_support.patch b/src/patches/grub/grub-2.14-Revert-configure:_Check_linker_for_--image-base_support.patch
deleted file mode 100644
index 33013e46b..000000000
--- a/src/patches/grub/grub-2.14-Revert-configure:_Check_linker_for_--image-base_support.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-diff -Naur grub-2.14.orig/acinclude.m4 grub-2.14/acinclude.m4
---- grub-2.14.orig/acinclude.m4	2025-11-20 17:02:39.000000000 +0100
-+++ grub-2.14/acinclude.m4	2026-05-05 17:11:21.117127788 +0200
-@@ -79,11 +79,6 @@
- [AC_MSG_CHECKING([whether ${TARGET_OBJCOPY} works for absolute addresses])
- AC_CACHE_VAL(grub_cv_prog_objcopy_absolute,
- [cat > conftest.c <<\EOF
--asm (
--    ".globl start, _start, __start\n"
--    ".ifdef cmain; .set start = _start = __start = cmain\n.endif\n"
--    ".ifdef _cmain; .set start = _start = __start = _cmain\n.endif\n"
--);
- void cmain (void);
- void
- cmain (void)
-diff -Naur grub-2.14.orig/configure.ac grub-2.14/configure.ac
---- grub-2.14.orig/configure.ac	2026-01-14 15:30:04.000000000 +0100
-+++ grub-2.14/configure.ac	2026-05-05 17:09:38.251922592 +0200
-@@ -1461,6 +1461,7 @@
-   TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/conf/i386-cygwin-img-ld.sc"
-   TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}"
-   TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/conf/i386-cygwin-img-ld.sc"
-+  TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
-   TARGET_IMG_CFLAGS=
- else
-   TARGET_APPLE_LINKER=0
-@@ -1468,6 +1469,7 @@
-   TARGET_IMG_LDSCRIPT=
-   TARGET_IMG_LDFLAGS='-Wl,-N'
-   TARGET_IMG_LDFLAGS_AC='-Wl,-N'
-+  TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
-   TARGET_IMG_CFLAGS=
- fi
- 
-@@ -1798,18 +1800,6 @@
- m4_ifndef([AX_CHECK_LINK_FLAG], [m4_fatal([autoconf-archive is missing. You must install it to generate the configure script.])])
- 
- if test "x$TARGET_APPLE_LINKER" != x1 ; then
--AX_CHECK_LINK_FLAG([-Wl,--image-base,0x400000],
--    [TARGET_IMG_BASE_LDOPT="-Wl,--image-base"],
--    [TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"],
--    [],
--    [AC_LANG_SOURCE([
--asm (".globl start; start:");
--asm (".globl _start; _start:");
--asm (".globl __start; __start:");
--void __main (void);
--void __main (void) {}
--int main (void);
--    ])])
- grub_PROG_OBJCOPY_ABSOLUTE
- fi
- grub_PROG_LD_BUILD_ID_NONE
diff --git a/src/patches/grub/grub-2.14-Revert-configure:_Print_a_more_helpful_error_if_autoconf-archive_is_not_installed.patch b/src/patches/grub/grub-2.14-Revert-configure:_Print_a_more_helpful_error_if_autoconf-archive_is_not_installed.patch
deleted file mode 100644
index 5bde9e56c..000000000
--- a/src/patches/grub/grub-2.14-Revert-configure:_Print_a_more_helpful_error_if_autoconf-archive_is_not_installed.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Naur grub-2.14.orig/configure.ac grub-2.14/configure.ac
---- grub-2.14.orig/configure.ac	2026-05-05 17:09:38.251922592 +0200
-+++ grub-2.14/configure.ac	2026-05-05 17:32:27.405733625 +0200
-@@ -1794,11 +1794,6 @@
- # Defined in acinclude.m4.
- grub_ASM_USCORE
- grub_PROG_TARGET_CC
--
--# The error message produced by autoconf if autoconf-archive is not installed is
--# quite misleading and not very helpful. So, try point people in the right direction.
--m4_ifndef([AX_CHECK_LINK_FLAG], [m4_fatal([autoconf-archive is missing. You must install it to generate the configure script.])])
--
- if test "x$TARGET_APPLE_LINKER" != x1 ; then
- grub_PROG_OBJCOPY_ABSOLUTE
- fi
diff --git a/src/patches/grub/grub-2.12-Use-medany-instead-of-large-model-for-RISCV.patch b/src/patches/grub/grub-2.16-Use-medany-instead-of-large-model-for-RISCV.patch
similarity index 50%
rename from src/patches/grub/grub-2.12-Use-medany-instead-of-large-model-for-RISCV.patch
rename to src/patches/grub/grub-2.16-Use-medany-instead-of-large-model-for-RISCV.patch
index 4bfd46856..0416d9af4 100644
--- a/src/patches/grub/grub-2.12-Use-medany-instead-of-large-model-for-RISCV.patch
+++ b/src/patches/grub/grub-2.16-Use-medany-instead-of-large-model-for-RISCV.patch
@@ -1,27 +1,15 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jason Montleon <jason@montleon.com>
-Date: Fri, 3 May 2024 13:18:37 -0400
-Subject: [PATCH] Use medany instead of large model for RISCV
-
-Signed-off-by: Jason Montleon <jason@montleon.com>
----
- configure.ac | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index d223fe3ef6e..6a6688e362a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1313,7 +1313,7 @@ AC_SUBST(TARGET_LDFLAGS_OLDMAGIC)
+--- grub-2.16/configure.ac.orig	2026-10-05 23:16:28.087549369 +0200
++++ grub-2.16/configure.ac	2026-10-05 23:23:51.374295457 +0200
+@@ -1712,7 +1712,7 @@
  
- LDFLAGS="$TARGET_LDFLAGS"
+ CFLAGS="$TARGET_CFLAGS"
  
 -if test "$target_cpu" = x86_64 || test "$target_cpu" = sparc64 || test "$target_cpu" = riscv64 ; then
 +if test "$target_cpu" = x86_64 || test "$target_cpu" = sparc64 ; then
    # Use large model to support 4G memory
    AC_CACHE_CHECK([whether option -mcmodel=large works], grub_cv_cc_mcmodel, [
      CFLAGS="$TARGET_CFLAGS -mcmodel=large"
-@@ -1323,9 +1323,11 @@ if test "$target_cpu" = x86_64 || test "$target_cpu" = sparc64 || test "$target_
+@@ -1722,9 +1722,11 @@
    ])
    if test "x$grub_cv_cc_mcmodel" = xyes; then
      TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=large"
@@ -33,4 +21,4 @@ index d223fe3ef6e..6a6688e362a 100644
 +    TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=medany"
  fi
  
- if test "$target_cpu"-"$platform" = x86_64-efi; then
+ # Stack smashing protector.
