Installing 18.04 to a virtio device produces an unbootable system on armhf
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
debian-installer (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Using the netboot vmlinuz and initrd found here: http://
Running in a QEMU "virt" machine, the install goes fine but the result can't boot because virtio_blk is not compiled into the kernel and update-initramfs is stubbed out (appears to be a copy/hardlink of /bin/true). I should note that the install produces /boot/initrd.img as a broken/dangling symlink which may or may not be desirable.
I am currently attempting to produce a bootable system by:
- Running the installer again on the same virtual disk
- Getting to the point where it asks how to partition the install
- Backing out until I can drop to a shell
- chrooting into the install (involves mounting /, /boot, and bind-mounting /dev /sys and /proc)
- adding virtio_blk to /etc/initramfs-
- running mkinitramfs manually
This is very painful even if it works because the installer is *slow* inside QEMU and there's no clear way to get to the state where I can mount /dev/vda more quickly.
From what I gather people did not have this problem on xenial, and I'm not the only one who tripped on this.
To reproduce (use a machine with fast CPU...), on xenial as your host:
qemu-system-arm built from source: ubuntu- 1404:~/ qemu$ git remote get-url origin /git.qemu- project. org/qemu. git ubuntu- 1404:~/ qemu$ git rev-parse --abbrev-ref HEAD ubuntu- 1404:~/ qemu$
rmerrill@
git:/
rmerrill@
stable-2.9
rmerrill@
Follow the instructions here: https:/ /gist.github. com/takeshixx/ 686a4b5e057deff 7892913bf69bcb8 5a
With the following changes:
- Download the bionic vmlinuz and initrd instead of xenial
- I ran into some trouble getting the network set up right on the host. Note that you will have to install isc-dhcp-server (NOT udhcpd as apt will helpfully suggest). You will also have to tweak apparmor to allow dhcpd to read conf files outside of its usual place.
- On the invocation of qemu-system-arm, change `-serial stdio` to `-serial mon:stdio` -- this is what you actually want anyway.
- Add `-smp 4` (or however many CPUs your host has, maybe minus one) to make the install go a little faster.