I am trying to use the official ubuntu/focal64
Vagrant box to run some new VMs. I have tried with versions v20200518.0.0
and v20200522.0.0
(the newest as of my testing). I am using Vagrant 2.2.9 and I tried with both VirtualBox 6.0.4 and 6.1.8.
My Vagrantfile is extremely simple:
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.box_version = "20200522.0.0"
config.vm.define "db1" do |db1|
db1.vm.network "private_network", ip: "192.168.56.10"
end
config.vm.define "db2" do |db2|
db2.vm.network "private_network", ip: "192.168.56.11"
end
config.vm.define "app1" do |app1|
app1.vm.network "private_network", ip: "192.168.56.20"
end
end
(Later on I plan to add provisioning to each of those boxes, but this is a simple test just to get started.)
The problem is that these boxes will not boot. Here is the error I get:
[ 148.806822] VFS: Cannot open root device "PARTUUID=43931bda-01" or unknown-block(0,0): error -6
[ 151.754729] Please append a correct "root=" boot option: here are the available partitions
[ 154.534996] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 157.312019] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.0-31-generic #35-Ubuntu
[ 159.842670] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
After that there is a stack trace, but I can't get a screenshot because the box reboots too quickly.
When I try to use the ubuntu/bionic64
images, those work fine. Only the new focal64
images seem to be broken.
How can I get these VMs to boot?
Best Answer
This issue was caused by a change to the images: older images connected a serial console to output to a file, but this behavior was removed due to a user request.
A fix is in progress (originally here), but it has not yet been merged.
In the mean time, the simplest workaround is to create a serial port and redirect it to nowhere: