echo -n 'BOOT_IMAGE=http://10.10.101.2:5248/images/ubuntu/amd64/generic/bionic/daily/boot-kernel nomodeset ro root=squash:http://10.10.101.2:5248/images/ubuntu/amd64/generic/bionic/daily/squashfs ip=::::maas-vhost6:BOOTIF ip6=off overlayroot=tmpfs overlayroot_cfgdisk=disabled cc:{'datasource_list': ['MAAS']}end_cc cloud-config-url=http://10.10.101.2:5248/MAAS/metadata/latest/by-id/xeqrrw/?op=get_preseed apparmor=0 log_host=10.10.101.2 log_port=5247 --- console=ttyS0,115200 initrd=http://10.10.101.2:5248/images/ubuntu/amd64/generic/bionic/daily/boot-initrd BOOTIF=01-52-54-00-3f-ae-46' | wc -c 576
arch/x86/include/asm/setup.h: #define COMMAND_LINE_SIZE 2048 #define PARAM_SIZE 4096 /* sizeof(struct boot_params) */ Doesn't look like we are any close to the kernel limits on parameters. However, the root argument as printed in the panic message looks like a 64-byte string (last byte for null termination): echo -n 'squash:http://10.10.101.2:5248/images/ubuntu/amd64/generic/bion' | wc -c 63 It looks like this is coming from the following code (strlcpy into a 64-byte array): https://git.launchpad.net/~ubuntu- kernel/ubuntu/+source/linux/+git/bionic/tree/init/do_mounts.c?id=Ubuntu-4.15.0-47.50#n42 static char __initdata saved_root_name[64]; static int __init root_dev_setup(char *line) { strlcpy(saved_root_name, line, sizeof(saved_root_name)); return 1; } __setup("root=", root_dev_setup); And the overall code-path (judging by the md auto-detection log messages): https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bionic/tree/init/do_mounts.c?id=Ubuntu-4.15.0-47.50#n545 prepare_namespace -> if (saved_root_name[0]) { root_device_name = saved_root_name; // <---- (!) usage of a cut-down root param if (!strncmp(root_device_name, "mtd", 3) || !strncmp(root_device_name, "ubi", 3)) { mount_block_root(root_device_name, root_mountflags); Does not look like we are hitting either EACCES or EINVAL and so we fall through to panic(): https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bionic/tree/init/do_mounts.c?id=Ubuntu-4.15.0-47.50#n381 void __init mount_block_root(char *name, int flags) // ... for (p = fs_names; *p; p += strlen(p)+1) { int err = do_mount_root(name, p, flags, root_mount_data); switch (err) { case 0: goto out; case -EACCES: case -EINVAL: continue; } /* * Allow the user to distinguish between failed sys_open * and bad superblock on root device. * and give them a list of the available devices */ #ifdef CONFIG_BLOCK __bdevname(ROOT_DEV, b); #endif printk("VFS: Cannot open root device \"%s\" or %s: error %d\n", root_device_name, b, err); printk("Please append a correct \"root=\" boot option; here are the available partitions:\n"); printk_all_partitions(); #ifdef CONFIG_DEBUG_BLOCK_EXT_DEVT printk("DEBUG_BLOCK_EXT_DEVT is enabled, you need to specify " "explicit textual name for \"root=\" boot option.\n"); #endif panic("VFS: Unable to mount root fs on %s", b); -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1797581 Title: Composing a VM in MAAS with exactly 2048 MB RAM causes the VM to kernel panic To manage notifications about this bug go to: https://bugs.launchpad.net/maas/+bug/1797581/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs