Confirming Bootloader and Kernel Loading with UUID
The fact that both /proc/cmdline
and dmesg | grep -i boot
show the same UUID for the storage media confirms that the kernel and initramfs are being loaded from the correct storage device. This UUID corresponds to the VM’s disk, as verified by /dev/disk/by-uuid/
.
Key Points from the UUID
UUID in
/proc/cmdline
:The kernel command line (
/proc/cmdline
) includes theroot=UUID=<uuid>
parameter, which specifies the root filesystem by its UUID.This ensures that the kernel mounts the correct partition as the root filesystem during boot.
UUID in
dmesg
:The dmesg output shows the same UUID during the boot process, confirming that the kernel successfully identified and mounted the root filesystem.
Verification with
/dev/disk/by-uuid/
:The UUID matches the VM’s disk, as confirmed by /dev/disk/by-uuid/. This eliminates any ambiguity about the storage device being used.
Next Steps
Now that we’ve confirmed the UUID and storage device, let’s focus on determining how the kernel and initramfs are being loaded and which bootloader is in use.
Check the Bootloader:
Since the system is booting in BIOS mode (not EFI), the most likely bootloader is GRUB.
Inspect the MBR for GRUB or other bootloaders:
sudo dd if=/dev/vda bs=512 count=1 | strings
Check GRUB configuration files in
/boot/grub/
or/boot/grub2/
:ls /boot/grub2/ cat /boot/grub2/grub.cfg
Check for custom GRUB entries in
/etc/grub.d/40_custom
:cat /etc/grub.d/40_custom
Analyze
/proc/cmdline
:The kernel command line (
/proc/cmdline
) provides critical information about how the kernel and initramfs are loaded.Look for parameters like BOOT_IMAGE=,
initrd=
, androot=UUID=<uuid>
.
Verify Kernel and Initramfs Files:
Ensure the kernel and initramfs files exist in
/boot/
:ls /boot/
Look for files like
vmlinuz-<version>
andinitrd.img-<version>
.
Check for Network Boot (PXE):
If the kernel and initramfs are not found locally, check for PXE configurations:
ls /var/lib/tftpboot/ ls /srv/tftp/ dmesg | grep -i pxe
Summary of Findings
UUID Confirmation:
The UUID in
/proc/cmdline
anddmesg
matches the VM’s disk, confirming the correct storage device is being used.
Bootloader:
The most likely bootloader is GRUB, but we need to confirm this by inspecting the MBR and GRUB configuration files.
Kernel and Initramfs:
The kernel and initramfs are being loaded as specified in
/proc/cmdline
.Verify that the files exist in
/boot/
.
Network Boot (PXE):
If the kernel and initramfs are not found locally, check for PXE configurations.