#768657 sysvinit: Please provide xen virtual console in inittab

Package:
debian-installer
Source:
debian-installer
Description:
Debian Installer documentation
Submitter:
Gedalya
Date:
2014-12-04 09:57:14 UTC
Severity:
normal
#768657#5
Date:
2014-11-09 01:58:46 UTC
From:
To:
debian-installer has a script[1] to add a line like
'co:2345:respawn:/sbin/getty hvc0 9600 linux' to inittab at the end of
the installation, when running under xen.
This no longer works because sysvinit-core is not installed by default.
It seems this should be perhaps moved to the sysvinit-core package, in a
way similar to bug #745260
Currently this line must be manually added by the user to get console
access.

[1]
http://anonscm.debian.org/cgit/d-i/finish-install.git/tree/finish-install.d/90console

Thanks,

Gedalya

#768657#10
Date:
2014-11-10 07:19:53 UTC
From:
To:
Control: reassign -1 debian-installer

It's not for the sysvinit-core package to fix up the installer's handling of
consoles, when sysvinit-core is not installed.  Reassigning this to the
debian-installer package.

#768657#19
Date:
2014-11-10 07:39:28 UTC
From:
To:
And how could it possibly be debian-installer's job to modify a file
that is part of your package, when the package is not installed?
I find your response incomprehensible. This bug is about making sure
inittab, part of sysvinit-core, supports the console on the platform is
is running on.
Currently sysvinit-core is defective in not doing so. My comment about
debian-installer was just so that you could see an example for code that
handles this, and it explains why the maintainers of this package
coincidentally haven't had to worry about this problem thus far.
One way or another, to reproduce this problem all one needs to do is to
install sysvinit-core on a xen VM, with debian-installer nowhere in sight.
I also don't understand why #745260 was fixed (exactly the same problem)
and this one somehow not.

#768657#24
Date:
2014-11-10 18:43:18 UTC
From:
To:
Ok, I misunderstood what the bug was that you were reporting.  I thought you
were saying that the installer sets up /etc/inittab, but that this doesn't
cause the console to work on systems where sysvinit-core is not being
installed.

I think fixing bug #745260 in sysvinit-core is dubious; I really think that
the console setup should be done as part of the installer, not as part of
init's maintainer scripts.  However, since we are no longer installing
sysvinit-core, it's a legitimate question whether the installer should be
changed to create /etc/inittab on its own if it doesn't already exist, or if
the installer should entirely hand over control of this file to the sysvinit
package.

I think we should get input from the installer team on this.

#768657#29
Date:
2014-11-10 19:41:27 UTC
From:
To:
I don't really see how it makes sense to create an /etc/inittab when
we're installing systemd (silently and without asking). Without
sysvinit, inittab doesn't belong there and doesn't make sense. The way I
see it, the only way the installer can be of help here is if it is
changed to prompt the user for his init system choice, which AFAIK
wasn't the decision so far.. though it would please me very much!
Otherwise we're sort of pre-creating a file for a hypothetical purpose..

#768657#34
Date:
2014-11-10 19:51:28 UTC
From:
To:
Hi,

Steve Langasek <vorlon@debian.org> (2014-11-10):

let's pretend for a moment that I know nothing about inittab, and that I'm
focussing on installation scenarios only, not upgrades.

It looks to me that this is an issue different from yet similar to the
one described in [1], where systemd w/o dbus would lead to no console on
vt 2-6.

 1. https://lists.debian.org/debian-boot/2014/11/msg00127.html

Would it make any sense to have $something created by d-i, consumed by
both systemd and sysvinit to make sure consoles are available? If
maintainers of both systems can come up with something suitable for
everyone, let's do that? Maybe some kind of /etc/inittab.compat which
could be created by d-i and could be defaulted to by relevant packages
in case /etc/inittab is missing and yet needed?

Of course if I'm conflating issues that are orthogonal, please say so
and we'll track both issues separately.

Mraw,
KiBi.

#768657#39
Date:
2014-11-25 10:54:42 UTC
From:
To:
I noticed that my last mail about 766187 being related to 768657
didn't actually go to the bug report. (which was about this bug being
related)
Anyway, both of these bugs seem to be about providing /etc/inittab in
one form or another.
Please see KiBi's last entry about providing it via D-I which has gone
unanswered.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=768657
I'm only sharing this as it would appear there are two separate
conversations happening about the same problem. (and i'm assuming that
a solution should / would solve both)

#768657#44
Date:
2014-12-03 22:12:26 UTC
From:
To:
I'm not sure to understand what the original bug report is about
precisely.  AIUI, it is about the following scenario:

1) install debian in a Xen domU, ending up with systemd installed by
default
2) install sysvinit-core to switch back to sysvinit boot
3) end up having to fix this and that to get sysvinit work properly

I am not very surprised that it does not work.  The various tuning that
d-i does usually only work on what gets installed during d-i, not on
what gets installed later on.  That's particularly the case for software
which doesn't provide nice hooks for d-i to use them.

I'm just wondering one thing: between steps 1) and 2), does the
installed system (using systemd) properly have a login banner on hvc0?
If not, then it's indeed a problem, but not related with sysvinit
and inittab. In the current logic, some more code should be added to
finish-install's 90console script to handle the systemd case.  I don't
have a Xen system offhand to easily test that.

Cyril Brulebois, le Mon 10 Nov 2014 20:51:28 +0100, a écrit :

It would make sense, but I'm not sure we can manage to write something
that both sysvinit and systemd can understand easily. "include" support
could be added to sysvinit, and /etc/inittab made to include the
d-i-generate bits, but it'd still be in inittab format, which AIUI
systemd wouldn't grok. So it would be something else, but then we would
have to make sysvinit aware of what a serial login is, which it has
never been made to, for flexibility reasons.

I actually haven't quoted the vt2-6 issue here because I don't think it
is related with d-i.

Samuel

#768657#49
Date:
2014-12-03 22:22:41 UTC
From:
To:
"this and that" being very specifically one line added to inittab:
co:2345:respawn:/sbin/getty hvc0 9600 linux
Given the above scenario this needs to be done by hand.
As I understand the code, currently d-i would still add that for the
user, if /etc/inittab existed, and it doesn't because sysvinit-core is
not installed.
I'm not aware of any other issue.
It does. The problem occurs only after installing sysvinit-core. If the
user really depends on a console then they would need to add this line
before rebooting, and we can expect that they might not know to do so.

#768657#54
Date:
2014-12-03 22:45:45 UTC
From:
To:
Gedalya, le Wed 03 Dec 2014 17:22:41 -0500, a écrit :
tunes packages which it has installed.  It doesn't tune much what could
potentially get installed later on.  And it should for sure not install
a complete /etc/inittab, that would only confuse people who were used to
configure things there.

What is new here is that sysvinit-core can now get initially installed
not from d-i.  And thus the tuning usually done by d-i can't work.

Also, we probably have to think about ping-pong scenarii: install
sysvinit-core, then switch back to systemd, purge sysvinit-core, and
drop /etc/inittab. Change one's mind again, reinstall sysvinit-core.
We still want to have a console on /dev/hvc0.  We're far from d-i, so
it'd rather be sysvinit-core which does the job of adding the console to
inittab.

Can't some of the logic in finish-install's 90console simply moved to
sysvinit-core's postinst?

Samuel

#768657#59
Date:
2014-12-03 23:41:24 UTC
From:
To:
The bug I initially opened was against sysvinit, asking for exactly
this, and citing a case where this was already done, recently.

#768657#64
Date:
2014-12-04 08:33:05 UTC
From:
To:
I believe it will, systemd probes for suitable console devices and
spawns getty's for them. I'm sure I've seen this in Debian guests using
systemd, although I've not gone and checked my recollection.

Something which might be helpful is
http://lists.xen.org/archives/html/xen-devel/2013-12/msg00805.html which
was posted on the xen-devel but redirected to the appropriate upstream,
since it isn't Xen specific. I wonder how that got on. Anyway, it would
allow all the various initsystems to just spawn one of these "smart
gettys" and get a getty on the console device, whatever that may be.

Ian.

#768657#69
Date:
2014-12-04 09:56:12 UTC
From:
To:
Samuel Thibault <sthibault@debian.org> writes:
because having an /etc/inittab which does not do anything on systemd is
confusing I think moving this to sysvinit-core is the best solution.

Not reassing the bug right now to let others comment first.

Gaudenz