ds=nocloud and ds=nocloud-net for automated installs do not work on a machine booted via uefi+grub2
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
subiquity |
Invalid
|
Undecided
|
Unassigned | ||
cloud-init (Ubuntu) |
Triaged
|
Medium
|
Unassigned |
Bug Description
cloud-init docs are not clear that ';' in kernel cmdline is potentially missmarsed by bootloaders, and thus the values passed to ds= should be ideally escaped like ds='all the settings' because \; to separate key-value pairs can be eaten easily. see the below confusing where most of the cmdline after and including ';' got discarded
--
Attempting to automate the installation of Ubuntu Server 20.04 on a variety of machines, some that use isolinux and others that require UEFI+grub2. Booting the installer works fine on all machines tested, but adding ds=nocloud;
description: | updated |
Changed in cloud-init (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in subiquity: | |
status: | New → Invalid |
tags: | added: bitesize |
dsidentify logs would be better, i think they are somewhere in /run/cloud* something directory.
Cause on boot ds-identify should run and determine the data sources.
Looking at your cmdline, it seems like ';' got interpreted as the end of string/command in uefi+grub2 boot
[ 0.000000] kernel: Command line: BOOT_IMAGE= /casper/ vmlinuz quiet --- ds=nocloud-net
did you try to quote the ';' as in?
ds='nocloud- net;s=< url>' ? Is any shell scripts involved at all? maybe they are eating ';' too?