I noticed an issue recently with an Arch Linux installation inside a QEMU VM.

A screenshot of garbled text as seen in a QEMU guest display
A screenshot of garbled text as seen in a QEMU guest display

Text appeared after booting. I was able to see messages as the kernel loaded the initramfs:

Loading initial ramdisk ...

However, after that prompt, that garbled console text appeared. This implied that something was broken. It seemed liked once the kernel loaded the initramfs image this issue occurred with the distorted text.

I eventually realized the garbled text was my LUKS root disk encryption password prompt. I was able to input my password and boot normally, but it was annoying seeing the garbled prompt every boot.

I thought this might be an issue with fonts or the video driver. Running videoinfo at the GRUB shell showed the Cirrus CLGD 5446 PCI VIdeo Driver and Bochs PCI Video Driver under supported video modes.

Output of the videoinfo command in a GRUB shell session
Output of the videoinfo command in a GRUB shell session

The internet archive describes the Cirrus PCI Video card listed in GRUB like so:

Commonly used for computers from before the 2000s

The Gentoo Wiki’s QEMU section on Graphics card describes the -vga cirrus option as:

Simple graphics card. Every guest OS has a built-in driver

Without knowing much about the history of the Cirrus and Bochs systems I added the bochs module to my /etc/mkinitcpio.conf config.

MODULES=(bochs)

I re-generated my initramfs with mkinitpcio -P and that seemed to get things working as expected.

The LUKS password prompt without garbled text
The LUKS password prompt without garbled text