2021-06-14 08:02:27 |
Thomas Bechtold |
description |
The CPC team wants to build minimal arm64 images. Those images should boot initrdless (similar to the amd64 images where the -kvm kernel is used).
But booting an initrdless image (build with livecd-rootfs) does fail with:
$ sudo qemu-system-aarch64 -m 2G -M virt -cpu max -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd -drive if=none,format=qcow2,file=livecd.ubuntu-cpc.img,id=hd0 -device virtio-blk-device,drive=hd0 -device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp:127.0.0.1:5555-:22 -nographic
[snipped]
[ 0.945928] VFS: Cannot open root device "PARTUUID=15058d73-bec1-4c7d-9cd7-f0f73f3ec694" or unknown-block(0,0): error -6
[ 0.946117] Please append a correct "root=" boot option; here are the available partitions:
[ 0.947611] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 0.948139] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.0-74-generic #83-Ubuntu
[ 0.948237] Hardware name: QEMU QEMU Virtual Machine, BIOS 0.0.0 02/06/2015
[ 0.948453] Call trace:
[ 0.948736] dump_backtrace+0x0/0x190
[ 0.948864] show_stack+0x28/0x38
[ 0.948918] dump_stack+0xb4/0x10c
[ 0.948974] panic+0x150/0x364
[ 0.949027] mount_block_root+0x248/0x304
[ 0.949090] mount_root+0x48/0x50
[ 0.949145] prepare_namespace+0x13c/0x1bc
[ 0.949205] kernel_init_freeable+0x270/0x2c4
[ 0.949274] kernel_init+0x1c/0x114
[ 0.949336] ret_from_fork+0x10/0x18
[ 0.949913] Kernel Offset: disabled
[ 0.950175] CPU features: 0x0952,20e0a230
[ 0.950251] Memory Limit: none
[ 0.950595] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
The reason is, that the the virtio drivers are modules (CONFIG_VIRTIO_BLK=m) but for initrdless boot, they need to be compiled into the kernel. |
The CPC team wants to build minimal arm64 images. Those images should boot initrdless (similar to the amd64 images where the -kvm kernel is used).
But booting an initrdless image (build with livecd-rootfs) does fail with:
$ sudo qemu-system-aarch64 -m 2G -M virt -cpu max -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd -drive if=none,format=qcow2,file=livecd.ubuntu-cpc.img,id=hd0 -device virtio-blk-device,drive=hd0 -device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp:127.0.0.1:5555-:22 -nographic
[snipped]
[ 0.945928] VFS: Cannot open root device "PARTUUID=15058d73-bec1-4c7d-9cd7-f0f73f3ec694" or unknown-block(0,0): error -6
[ 0.946117] Please append a correct "root=" boot option; here are the available partitions:
[ 0.947611] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 0.948139] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.0-74-generic #83-Ubuntu
[ 0.948237] Hardware name: QEMU QEMU Virtual Machine, BIOS 0.0.0 02/06/2015
[ 0.948453] Call trace:
[ 0.948736] dump_backtrace+0x0/0x190
[ 0.948864] show_stack+0x28/0x38
[ 0.948918] dump_stack+0xb4/0x10c
[ 0.948974] panic+0x150/0x364
[ 0.949027] mount_block_root+0x248/0x304
[ 0.949090] mount_root+0x48/0x50
[ 0.949145] prepare_namespace+0x13c/0x1bc
[ 0.949205] kernel_init_freeable+0x270/0x2c4
[ 0.949274] kernel_init+0x1c/0x114
[ 0.949336] ret_from_fork+0x10/0x18
[ 0.949913] Kernel Offset: disabled
[ 0.950175] CPU features: 0x0952,20e0a230
[ 0.950251] Memory Limit: none
[ 0.950595] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
The reason is, that the the virtio drivers are modules (CONFIG_VIRTIO_BLK=m) but for initrdless boot, they need to be compiled into the kernel.
Expected behavior:
Booting an arm64 image without an initrd does work in a virtualized environment similar to an amd64 image (that uses the -kvm kernel) |
|