40

I want to find place to where Linux writes all boot messages. You know:

facility one    [STARTED]
facility two    [STARTED]
facility three  [FAILED]

I searched with

find . -print0 | xargs -0 grep -i "words from boot messages"

in /var/log/, but found nothing.

I have CentOS 5.5.
For example at boot time I had: "Determining IP information for eth0... failed; no link present. Check cable?"
I don't care about error specificaly, but I can't find any log that holds this error.

dmesg | grep "no link present" returns nothing too.

2
  • 1
    did you run the find command with root permissions? find will print all files you can list, but grep can only check the files you can read & some log files might be owned by root withput read permissions for other users. Also, at least GNU grep supports th -l option to print the names of files with matches instead of matched lines. This can be very usefule looking for files that contain certain text. So try su -c 'find /var/log -print0 | xargs -0 grep -l -i "words from boot messages"' or sudo find /varlog -print0 | xargs -0 sudo grep -l -i "words from boot messages"
    – mschilli
    Feb 15, 2015 at 8:33
  • Nowadays with systemd here is the answer.
    – Pablo A
    Dec 24, 2018 at 2:22

4 Answers 4

26

Most of the boot messages are put in a buffer, that you can access using the command dmesg. On most Linux distributions, that output is also stored in

/var/log/dmesg.log

That you can view with

tail -n 100 /var/log/dmesg.log
3
  • 1
    For example, I had at boot time: "Determining IP information for eth0... failed; no link present Check cable?" I don't care about this error specificaly, but when I do: dmesg | grep "no link present" I get nothing... Actually I get VERY MUCH lines with grep "eth0", but not with concrete error. So is there way to find concrete boot errors description or no? (Thank you for reply to the point)
    – Rodnower
    Aug 15, 2010 at 20:43
  • Try using Nano's ^w (whereis) command, essentially a Find command. Or grep with a relaxed regexp. If you are really worried about a specific command's output, you could go in it's init.d file and change the offending command's STDOUT or STDERR logging. Mar 20, 2014 at 22:12
  • No /var/log/dmesg.log on Lubuntu 18.04 May 2, 2019 at 19:03
19

Every exceptional entry during boot is placed in /var/log/syslog Could also be in /var/log/boot.msg

5
  • I have CentOS 5.5 and I have no syslog in /var/log/
    – Rodnower
    Aug 15, 2010 at 20:22
  • boot.log (generally boot.log(x) where x is positive integer or nothing) is empty.
    – Rodnower
    Aug 15, 2010 at 20:51
  • 1
    Try /var/log/messages
    – pjc50
    Nov 17, 2011 at 16:42
  • 1
    /var/log/boot.msg is the correct one on linux mint
    – MaxV
    Dec 1, 2015 at 23:20
  • may also contain non-exceptional entries.
    – Abdull
    Mar 15, 2016 at 15:40
9

This solution surely works on Debian systems, but maybe can be useful anyway.

In order to store all the messages shown during the boot you have to start a service called bootlogd, after the next reboot you can read the messages in /var/log/boot.

2
  • On debian wheezy, I get root@wheezy:/home/jrx# service bootlogd start bootlogd: unrecognized service Apr 9, 2015 at 7:46
  • 4
    @JérômeRadix maybe you should install it first?
    – behrooz
    Jul 16, 2015 at 14:56
3

Type dmesg > ~/dmesg.log to copy all the boot messages into your own copy. You can add the date and time if you want to keep multiple copies and you could even automate it within a login script.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.