On Jan 8, 2013, at 1:57 PM, James Hunt <james.h...@ubuntu.com> wrote:
[…] >> >>> The worst one here is the fact that during bootup fsck's, there is no >>> longer any progress bar showing status. No big deal for a small >>> single disk system but If your server has a multi-terabyte drive >>> array, fscks can take hours to complete > Can you provide more details on this? Plymouth should display fsck progress > which are passed to it via mountall. There is even a special "fsck" message in > the Ubuntu theme to handle displaying such data [1]. If this is no longer > working for your particular scenario, please raise a bug so we can look at it. > AFAICT there is no progress bar for anyone during bootup fscks since Karmic. Bugs have already been filed, some of them ongoing for over three years now: https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/540645 https://bugs.launchpad.net/ubuntu/+source/mountall/+bug/446596 Googling "fsck progress ubuntu" gives tons of threads too - this one sums it up well: http://ubuntu.5.n6.nabble.com/oneiric-progress-status-during-boot-time-fsck-td4832484.html > I'm sure you understand that 'hacking plymouth out of your system' is not a > recommended course of action as Plymouth is _the_ boot and shutdown splash > facility used by Ubuntu (and other distributions of course!) > Yes, understood (and why) - but it appears upstart's backward compatibility with sysv has turned out to be a bit deceptive for many folks. People are blaming plymouth, "that graphical crap" without realizing the *real* cause is that sysv init has been completely removed from ubuntu since Karmic. Nobody running ubuntu is running sysv init anymore. Things *look* business as usual due to upstart's backward compatibility layer, but they are using upstart and the sysvinit package was deleted from ubuntu back in 2009. I know upstart is used in Fedora and a few others, but notably *not* in Debian, which is still on sysvinit and gently pushing people from sysv to dependency based boot for now (via warnings during upgrade and pointers to documentation how to cleanly migrate *when you are ready*). This (for now) does seem to be a much more careful/server friendly approach. >>> any solution is going to >>> have to work best practice with upstart/plymouth, with no way to get >>> back old behavior. > What do you mean exactly by 'old behaviour'? Upstart has been used in Ubuntu > since Edge (6.10). > I mean pre-upstart behavior: plain old ugly VGA 80x25 text console, the usual sysv output we had before upstart (including our precious fsck progress bar). Also we used to be able to ctrl+c out of say, apache's startup during boot - we will be able to do this when apache gets converted to an upstart script? Upstart may have been optionally available since Edge, but it's my understanding it became mandatory with Karmic when the sysvinit package was removed from Ubuntu. So really, most people weren't running upstart until Karmic (and even then, many weren't even aware that sysv init was gone). >> Since 'old style' init scripts can still talk to the text console, why >> wouldn't upstart be able to do so? > It can. simply specify 'console output' to have a job output data direct to > the > console (via Plymouth) [2]. This is how you see the SysV output currently - > take > a look at /etc/init/rc.conf and you'll see 'console output' specified. > Plymouth's details theme output has improved a lot since Karmic, but it appears that mountall makes a special call to fsck (since the -C option takes a file descriptor), so its progress bar isn't getting through. Looking at /etc/init/mountall.conf we see this: # temporary, until we have progress indication # and output capture (next week :p) console output …this works for fsck output, *except* for the progress bar. A couple of years ago I went ahead and downloaded the mountall package sources and changed this line in mountall.c : arg = NIH_MUST (nih_sprintf (NULL, "-C%d", fds[1])); …to this: arg = NIH_MUST (nih_sprintf (NULL, "-C", fds[1])); …this brought back the fsck progress bars. I extended it a bit to implement a "FSCKCONSOLE=yes" option to /etc/default/rcS so that it would be easy to switch between behaviors, and packaged it up as a ppa. This was mentioned somewhere in the bugreports but someone pointed out that unfortunately this won't work, because it is sending output to the console - someone needs to update things to talk to the plymouth details plugin. Is this not true? Will the above change work? I did this on a vanilla lucid system; plymouth was not tinkered with in any way and it showed up. > As of version 1.4, Upstart will, by default, log all job data to files under > /var/log/upstart/. > This is good, but what people are complaining about are boot-time processes; if we can login to look at logs, then it is already up. What some refer to as "admin time" - that is, the time between when you enter the reboot command … and the server comes back up on the network. Since the servers can be thousands of miles away, only a sysadmin can attest to that feeling while you are waiting for it to come back up. With a server dist, the expectation has to be that there is no one there to provide any input; it should expect to come up unattended no matter what, as quickly as possible. Bad fstab lines etc. it should just ignore so long as the rootfs is accessible. > Meantime, since few jobs actually explicity specify the 'console' stanza, what > you can do is add '--default-console=output' to your kernel command-line which > will send all job output to the console for those jobs which have not > explicitly > specified 'console'. > Sounds like this should be the default for any server dist. Best - -- Mark -- ubuntu-server mailing list ubuntu-server@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-server More info: https://wiki.ubuntu.com/ServerTeam