This is a designed-in feature of grub – useful if you’ve got a physical machine in front of you, as the linux box won’t automatically restart if someone kicks the power cable out or hits the off switch – and more importantly it won’t endlessly reboot if there’s a hardware problem, slowly shredding your file systems.
If you’re running Ubuntu as a headless virtual machine in the cloud, it’s not so useful. Disable it like this:
edit /etc/default/grub and add the line:
then sudo update-grub.
Next time you accidentally “sudo ip route flush table all” on your vm and acpi-restart it, it’ll boot properly.