I have Ubuntu 18.04 Server. I find the behaviour of GRUB is strange.
When I uncomment line in /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on"
intel_iommu
isn't loaded in the kernel.
And when I uncomment line:
GRUB_CMDLINE_LINUX="intel_iommu=on"
intel_iommu
is loaded in the kernel.
My config:
GRUB_DEFAULT=0
#GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on"
GRUB_CMDLINE_LINUX=""
#GRUB_CMDLINE_LINUX="intel_iommu=on"
I know that GRUB_CMDLINE_LINUX_DEFAULT
is loaded when is normal mode only. Contrarywise GRUB_CMDLINE_LINUX
is loaded when is normal mode or recovery mode.
Do it seems my ubuntu load in recovery mode?
Why intel_iommu
do not load with GRUB_CMDLINE_LINUX_DEFAULT
?
Where can I look for a log of GRUB loading?
EDIT:
After that, I didn't forget about sudo update-grub
.
UPDATE:
1. When so:
GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity"
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on"
#GRUB_CMDLINE_LINUX=""
GRUB_CMDLINE_LINUX="intel_iommu=on"
Result:
# sudo virt-host-validate
...
QEMU: Checking if IOMMU is enabled by kernel : PASS
...
dmesg | grep -E "IOMMU"
[ 0.000000] DMAR: IOMMU enabled
[ 0.000000] DMAR-IR: IOAPIC id 8 under DRHD base 0xfed91000 IOMMU 1
cat /etc/modules
/etc/modules: kernel modules to load at boot time.
This file contains the names of kernel modules that should be loaded
at boot time, one per line. Lines beginning with "#" are ignored.
2. And when so:
#GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on"
GRUB_CMDLINE_LINUX=""
#GRUB_CMDLINE_LINUX="intel_iommu=on"
Result:
# sudo virt-host-validate
...
QEMU: Checking if IOMMU is enabled by kernel : WARN (IOMMU appears to be disabled in kernel. Add intel_iommu=on to kernel cmdline arguments)
...
dmesg | grep -E "IOMMU"
[ 0.000000] DMAR-IR: IOAPIC id 8 under DRHD base 0xfed91000 IOMMU 1
cat /etc/modules
/etc/modules: kernel modules to load at boot time.
This file contains the names of kernel modules that should be loaded
at boot time, one per line. Lines beginning with "#" are ignored.