Bug#762007: Kernel command line handling change breaks d-i user-params functionality
Package: debian-installer-utils
X-Debbugs-CC: debian-kernel@lists.debian.org
(CCing debian-kernel just FYI, since I don't think this can/should be
fixed with a kernel change, likewise filing against
debian-installer-utils and not the kernel even though a kernel change
introduced the breakage)
A recent change to the kernel[0] (from v3.15 onwards) has changed the
way the kernel handles its command line, such that it now ignores
anything passed after a "--" marker. This has broken d-i's own use of
that marker which was to separate options intended for the installer
only (before the marker) from those which are intended to be both
consumed by the d-i kernel and propagated to the final installation
(after the marker, returned by the user-params utility).
It used to be that you could do:
vmlinuz some/preseed=value -- console=ttyFOO
which would have the dual affect of having the kernel console (and hence
installer UI) run on ttyFOO and also, via grub-installer's use of
user-params, propagate the console=ttyFOO into the final grub config
(similarly for other bootloaders).
With the kernel change this no longer works -- the kernel doesn't put
its console on ttyFOO since it stops parsing at the --. So you get
silence on boot.
To get the old behaviour you need
vmlinuz some/preseed=value console=ttyFOO -- console=ttyFOO
which is pretty tedious.
Just using
vmlinuz some/preseed=value console=ttyFOO
doesn't propagate the console=ttyFOO to the installed system.
Since the kernel change was related to the "systemd abusing kernel
cmdline" debacle I'm not overly keen on raising this upstream and I
don't think that changing the kernel in a way which diverges from
upstream would not be the right approach here.
I don't know how widely used/documented/Supported this ability was, but
I thought e.g. the pxe and isolinux cfgs made use of it.
Not sure what we can do about this. Perhaps choose another separator
("=="?) and make user-params support both?
Ian.
[0] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=51e158c12aca3c9ac63988611a97c05109b14dc9
Reply to: