16

How can the messages that scroll by when booting a Debian system be reviewed later?

In other words, how can I review absolutely all of them conveniently? That's the important point to the question; merely a subset of them is insufficient.

Some boot time messages are written only to /var/log/daemon.log and /var/log/syslog, where I have seen messages like: udevd[240]: SYSFS{}= will be removed in a future udev version.

In squeeze, these are not in /var/log/dmesg. Nor are they in /var/log/boot with setting BOOTLOGD_ENABLE=yes in /etc/default/bootlogd and package bootlogd installed.

For more details on rsyslogd's various logging locations see your /etc/rsyslog.conf.

4 Answers 4

13

The boot messages come in two parts: those that come from the kernel (loading drivers, detecting partitions, etc) and those that come from the services starting up ([ OK ] Starting Apache...). The kernel messages are stored in /var/log/kern.log and can also be accessed from the kernel's own log buffer with the dmesg program.

The userspace messages are not stored anywhere unless you install the bootlogd package. It will log the service startup messages in /var/log/boot Note if you have the "fancy" boot messages (the colored [ OK ] [FAIL] etc messages), it will log the terminal escape codes in the file. You can disable the fancy boot messages by creating an /etc/lsb-base-logging.sh shell script which defines FANCYTTY=0 in it.

1
7

Bootup messages pass by so fleetingly that, for some, one might not be sure what they say. You may wish to check all the files where they might be logged, in addition to the usual (well-known) log files, for verification purposes (at least).

On Debian, logs generally are kept in directory /var/log.

After booting, what changed there today (which files) can be seen in the Bash shell by:

sudo ls -ld --sort=time `sudo find /var/log -type f -daystart -ctime 0 | sed -r 's/^.*\.([0-9]+|old|gz)$//g'`

The scrolling output may contain interesting strings like 'will be removed'. Here's how to find them:

sudo grep -ilF 'will be removed' `sudo find /var/log -type f -daystart -ctime 0 | sed -r 's/^.*\.([0-9]+|old|gz)$//g' | sort` > log-list; sudo nano `cat log-list`

Boot-time logging can be enabled by:

apt-get install bootlogd

and edit /etc/default/bootlogd to contain

BOOTLOGD_ENABLE=yes

Unfortunately, bootlogd seems unavailable on squeeze.

For color information, see here.

1
  • 4
    As of Wheezy, bootlogd no longer requires the /etc/default/bootlogd config file, see here.
    – RolfBly
    Jul 2, 2015 at 21:28
1

In 2021, I couldn't make bootlogd work as expected in debian buster. I installed it, enabled the service (with some difficulties similar to those described here), rebooted several times, but there was still nothing in /var/log/boot (except the hint that nothing had been logged yet).

It turned out that bootlogd is not compatible with systemd. But it is systemd itself which came to rescue: journalctl --list-boots lists the boot processes it is aware of, while journalctl -b N outputs the log of boot process N. To output the log of the last boot process, use N=0, i.e. journalctl -b 0. As far as I can tell, these logs include the messages of the kernel as well as those from the init system.

journalctl -b lists all details from all boot processes, but on my systems, it is only aware of the last boot process, so it doesn't make a difference. To be honest, I have no clue how to make the boot logs permanent so that it could output the logs for all of them instead of only the last one. But I'm usually interested only in the last boot process anyway, so this isn't a problem for me.

I am pretty sure that journalctl -b does not only work on debian, but on nearly all distributions which use systemd.

3
  • Go to a search engine and type in: How to make systemd journal persistent. You will have your answer. Jul 19, 2021 at 13:42
  • Thank you very much for the hint. However, I actually didn't ask that question. To cite myself: ... But I'm usually interested only in the last boot process anyway, so this isn't a problem for me. ... My post was just meant as new answer in 2021 to the OP's question from 2013, because the other answers are from 2013 as well and don't mention journalctl -b, which in 2021 IMHO is by far the easiest method to view the whole boot log.
    – Binarus
    Jul 22, 2021 at 11:05
  • Regarding "I am pretty sure that journalctl -b does not only work on debian": It works flawlessly in a freshly-installed Debian 11 bullseye.
    – Abdull
    Jul 17, 2023 at 6:13
1

I know it sounds silly, but when none of the other options work and you're desperate, you can grab your phone and record your screen as it boots and then play back the video at reduced speed to review them.

This is not a good solution if you want to programmatically check your boot messages, but if you see an error during booting and you want to diagnose it, this solution works fine.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .