How to determine why Linux boots into Emergency mode
November 1, 2021
How to determine the exact reason why Systemd falls in emergency mode
A Linux system can go into an emergency mode shell if it encounters problems during boot.
The screen prompts you to execute the command
journalctl -xb
to find the causes of system problems.
It is also proposed to execute
systemctl default
or
exit
so that the system tries to boot normally.
You can try “systemctl default” – sometimes it really helps, but sometimes first you need to fix the problem that caused the Emergency mode.
The output of “journalctl -xb” is quite extensive, and examining it without filters does not always give a clue why it is booted into an emergency shell. Let's look at ways that can help you find the problem.
1. Finding problems with mounting
There are not so many reasons why the system goes into Emergency mode, usually these are problems with mounting disks and partitions. See what the following commands tell you?
systemctl status local-fs.target journalctl -xb | grep -i -E 'local-fs.target'
2. Finding errors
What's do “journalctl -xb” tell? Try looking for mount and error related strings – maybe there is an answer.
journalctl -xb | grep -i mount journalctl -xb | grep -i -E '(error|fail|warn|\(EE\))'
3. Unsuccessful fsck launch
Check fsck related entries:
journalctl -xb | grep -i -E 'fsck' systemctl status systemd-fsck*
4. Unsuccessful start of any services
The following commands (they are identical) will list the services that failed to start:
systemctl --state=failed systemctl --failed
5. Log search in Emergency mode and Maintenance mode
You can search for errors in the journald log without using commands – you may find it more convenient for you. Since journalctl uses the “less” command for multi-page browsing, you can use all of the keyboard shortcuts for this utility for your searches.
Output the log:
journalctl -xb
If you are relying on the search (/) function and are looking for something like “error”, “warning”, or “fail”, use -i to make sure the search is case insensitive.
List of commands and keys to search through journalctl (and less generally):
- -i (case insensitive)
- g (go to start)
- /error (find “error”)
- nnnn (skip nnnn results)
- g (go to start)
- /fail (find “fail”)
- nnnn (skip nnnn results)
- g (go to start)
- /warn (find “warn”
- nnnn (skip nnnn results)
Related articles:
- How to repair an LVM disk using fsck (100%)
- Error “Cannot open access to console, the root account is locked” (SOLVED) (70.4%)
- An unplugged disk causes a delay in system boot (68.9%)
- Persistent names for block devices (65.9%)
- In-RAM filesystem to speed up file handling and reduce disk load (tmpfs) (63.8%)
- Error “convert: cache resources exhausted” (SOLVED) (RANDOM - 50.3%)