diff --git a/shared/checks/oval/bootloader_disable_recovery_set_to_true.xml b/shared/checks/oval/bootloader_disable_recovery_set_to_true.xml
index ff64177d6df..e58cc95c228 100644
--- a/shared/checks/oval/bootloader_disable_recovery_set_to_true.xml
+++ b/shared/checks/oval/bootloader_disable_recovery_set_to_true.xml
@@ -24,7 +24,11 @@
+ {{%- if 'ubuntu' in product %}}
+ ^/etc/default/grub(\.d/[^/]+\.cfg)?$
+ {{%- else %}}
/etc/default/grub
+ {{%- endif %}}
^\s*GRUB_DISABLE_RECOVERY=(.*)$
1
diff --git a/shared/templates/grub2_bootloader_argument/oval.template b/shared/templates/grub2_bootloader_argument/oval.template
index b8ef28297a8..63478873a01 100644
--- a/shared/templates/grub2_bootloader_argument/oval.template
+++ b/shared/templates/grub2_bootloader_argument/oval.template
@@ -88,7 +88,11 @@
+ {{%- if 'ubuntu' in product %}}
+ ^/etc/default/grub(\.d/[^/]+\.cfg)?$
+ {{%- else %}}
/etc/default/grub
+ {{%- endif %}}
^\s*GRUB_CMDLINE_LINUX="(.*)"$
1
@@ -102,7 +106,11 @@
+ {{%- if 'ubuntu' in product %}}
+ ^/etc/default/grub(\.d/[^/]+\.cfg)?$
+ {{%- else %}}
/etc/default/grub
+ {{%- endif %}}
^\s*GRUB_CMDLINE_LINUX_DEFAULT="(.*)"$
1
diff --git a/shared/templates/grub2_bootloader_argument/tests/arg_not_there_etcdefaultgrub.fail.sh b/shared/templates/grub2_bootloader_argument/tests/arg_not_there_etcdefaultgrub.fail.sh
index 93907c79405..b594abe6de4 100644
--- a/shared/templates/grub2_bootloader_argument/tests/arg_not_there_etcdefaultgrub.fail.sh
+++ b/shared/templates/grub2_bootloader_argument/tests/arg_not_there_etcdefaultgrub.fail.sh
@@ -1,7 +1,11 @@
#!/bin/bash
-# platform = multi_platform_fedora,multi_platform_ol,multi_platform_rhel
+# platform = multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_ubuntu
+{{%- if 'ubuntu' in product %}}
+# packages = grub2
+{{%- else %}}
# packages = grub2,grubby
+{{%- endif %}}
source common.sh
diff --git a/shared/templates/grub2_bootloader_argument/tests/correct_value.pass.sh b/shared/templates/grub2_bootloader_argument/tests/correct_value.pass.sh
index 2a0ea70caeb..25f7d6a8f62 100644
--- a/shared/templates/grub2_bootloader_argument/tests/correct_value.pass.sh
+++ b/shared/templates/grub2_bootloader_argument/tests/correct_value.pass.sh
@@ -1,7 +1,12 @@
#!/bin/bash
# platform = multi_platform_all
+{{%- if 'ubuntu' in product %}}
+# packages = grub2
+{{%- else %}}
# packages = grub2,grubby
+{{%- endif %}}
+
{{%- if ARG_VARIABLE %}}
# variables = {{{ ARG_VARIABLE }}}=correct_value
{{%- set ARG_NAME_VALUE= ARG_NAME ~ "=correct_value" %}}
diff --git a/shared/templates/grub2_bootloader_argument/tests/correct_value_configdir.pass.sh b/shared/templates/grub2_bootloader_argument/tests/correct_value_configdir.pass.sh
new file mode 100644
index 00000000000..734142a4e3a
--- /dev/null
+++ b/shared/templates/grub2_bootloader_argument/tests/correct_value_configdir.pass.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# platform = multi_platform_ubuntu
+# packages = grub2
+
+{{%- if ARG_VARIABLE %}}
+# variables = {{{ ARG_VARIABLE }}}=correct_value
+{{%- set ARG_NAME_VALUE= ARG_NAME ~ "=correct_value" %}}
+{{%- endif %}}
+
+source common.sh
+
+echo > /etc/default/grub
+rm -f /etc/default/grub.d/*
+
+echo "GRUB_CMDLINE_LINUX=\"\$GRUB_CMDLINE_LINUX {{{ ARG_NAME_VALUE }}}\"" > /etc/default/grub.d/custom.cfg
+
+{{{ grub_command("update") }}}
+