16.04 VirtualBox VM (from vhd file) hangs at "non blocking pool is initialized"
I'm trying to boot Canonical's Azure 16.04 .vhd
file in a VirtualBox VM and it hangs at "non blocking pool is initialized".
It works in Hyper-V, so it may only be a bug in virtual box (5.0.20).
This is long-standing bug in the images released by Canonical.
- https://bugs.launchpad.net/cloud-images/+bug/1573095
- https://bugs.launchpad.net/ubuntu/+source/livecd-rootfs/+bug/1546108
The grub configuration is trying to use a serial port, but when it is not there, it fails to handle this gracefully. So, either add a serial port or change grub not to requires it.
Three options here to get it to boot the first time:
- if the grub menu is available, you can edit the boot arguments to remove
console=ttyS0
- you can also enable a serial port in VirtualBox
- you can mount the drive from another VM or via loopback device and remove
console=ttyS0
from /boot/grub/grub.cfg
Two options to get it to boot thereafter:
- leave a serial port attached via VirtualBox
- override the
GRUB_CMDLINE_LINUX_DEFAULT
value in/etc/default/grub
or/etc/default/grub.d/*.cfg
to not includeconsole=ttyS0
, then runsudo update-grub
and verify /boot/grub/grub.cfg has your changes.
I had this problem on actual machine and the fix was to enable "nomodeset" option for kernel. It is doing this because Ubuntu is trying to switch to a high resolution video mode for the console and your hardware isn't cooperating. To fix this
Fixing this while at the machine
When Grub2 shows up highlight the menu item for Ubuntu and press 'e'
Go to the line where it loads the kernel and press 'End' to go to the end of the line Add 'nomodeset'
Press F10 or Ctrl-X to boot it
Fixing this for good
Update the grub config file nano /etc/init/grub
Find the line that starts with GRUB_CMDLINE_LINUX_DEFAULT
Edit the line to include nomodeset, in my case, the line looked like this afterwards: GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
Save/exit nano Run update-grub Reboot