订阅内容
Linux 

Linux is used everywhere in the IT world. You've probably used Linux today, even if you didn't realize it. If you have learned anything about Linux, then you know it is indeed a kernel. The kernel is the primary unit of the Linux operating system (OS) and is responsible for communications between a computer's hardware and its processes.

In this article, you will learn about one situation related to the Linux kernel: The kernel panic. The term itself can make you panic, but if you have the proper knowledge, then you can remain calm. Every system admin faces this issue at least once in their career, but reinstalling the system is not the first solution you should turn to.

Kernel panic screen with phrase "What do you do in case of Kernel Panic?"

What is a kernel panic?

A kernel panic is one of several Linux boot issues. In basic terms, it is a situation when the kernel can't load properly and therefore the system fails to boot. During the boot process, the kernel doesn't load directly. Instead, initramfs loads in RAM, then it points to the kernel (vmlinuz), and then the operating system boots. If initramfs gets corrupted or deleted at this stage because of recent OS patching, updates, or other causes, then we face a kernel panic.

Linux kernel panic crash screen

If we dig into the boot process more, then we encounter the Linux "chicken/egg problem."

[ Readers also liked: Terminals, shells, consoles, and command lines ]

When a Linux system boot process starts after the Master Boot Record (MBR) step, GRUB is loaded. The kernel needs to be loaded into RAM to start the OS, but the kernel is situated on the hard disk (/boot/vmlinuz), and the hard disk is not yet mounted on /. Without mounting, no files can be accessed, even the kernel. To overcome this, first initramfs/initrd loads in RAM directly and mounts the /boot partition in read-only mode. Next, it mounts the hard disk on the / partition, and the process continues.

# ls -lrth /boot/
Output of the ls command for the boot directory, with callouts for the kernel file and the initramfs file

This process emphasizes the importance of initramfs/initrd in the Linux boot process.

Why do kernel panics occur?

Kernel panics occur:

  1. If the initramfs file gets corrupted.
  2. If initramfs is not created properly for the specified kernel. Every kernel version has its own corresponding initramfs.
  3. If the installed kernel is not supported or not installed correctly.
  4. If recent patches have some flaws.
  5. If a module has been installed from online or another source, but the initrd image is not created with the latest installed module.

How to troubleshoot?

The first thing to do after seeing a kernel panic error is not to panic ,because now you are aware of the image file related to the error.

Step 1: Boot the system normally with your given kernel version.

Linux OS menu screen

Then you may see this error:

Error screen indicating /initramfs file not found

Press Enter or any key, and then you will see the following:

Linux kernel panic crash screen

This is your kernel panic situation.

Step 2: Reboot your machine again and select the rescue prompt.

Linux OS menu screen with the rescue image selected

In RHEL 6 or earlier versions, we do not have this option, but in RHEL 7 and onwards, we have a built-in rescue image.

This image boots your OS normally.

Step 2.1: Go to /boot and list all files. Here you will see there is no initramfs file for your kernel, but there is an initramfs file for rescue by which you have booted your system, and another is for kdump.

Output of the ls command for the boot directory, with the initramfs file missing

The initramfs for the kernel is missing.

Step 3: You will need to create a new initramfs file that corresponds to your kernel version.

Step 3.1: First check your kernel version:

#uname -r

Step 3.2: Next, run the dracut command:

#dracut -f <initrd-image> <kernal-version>
Output of the uname -r command displaying the kernel version

3.3) List the /boot directory contents again. The initramfs file for the kernel is now created.

Output of the ls command for the boot directory, with a callout for the new initramfs file

Step 4: Now, when you boot normally, your machine starts without a kernel panic error.

Step 5: There might be a situation that occurs when you boot your system with a rescue image with creating a new initramfs file where you couldn't make a new file because it was already present.

Output of the dracut command

At this point, we need to create an initramfs image with the mkinitrd command or dracut command.

Step 5.1: Check your kernel version first using the uname -r command.

Step 5.2: Run the mkinitrd command with the --force option and your kernel specification:

#mkinitrd --force <initrd-Image> <Kernel-Version>
Output of the mkinitrd --force command

Your initramfs file is regenerated by these short steps, and you can now start your OS without any errors.

[ Free ebook: Manage your Linux environment for success ]

Wrapping up

Now, anytime you see a kernel panic error, you will definitely not panic because you know why this error occurred and how to resolve it. This article covers one of the common Linux boot problems: kernel panic. There are so many other potential boot problems that can occur in Linux, but resolving those issues will become much less of a panic when you gain some advanced knowledge of your system.


关于作者

Abhineet is an open source software fan, an automation enthusiast, and a music lover. 

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

按频道浏览

automation icon

自动化

有关技术、团队和环境 IT 自动化的最新信息

AI icon

人工智能

平台更新使客户可以在任何地方运行人工智能工作负载

open hybrid cloud icon

开放混合云

了解我们如何利用混合云构建更灵活的未来

security icon

安全防护

有关我们如何跨环境和技术减少风险的最新信息

edge icon

边缘计算

简化边缘运维的平台更新

Infrastructure icon

基础架构

全球领先企业 Linux 平台的最新动态

application development icon

应用领域

我们针对最严峻的应用挑战的解决方案

Original series icon

原创节目

关于企业技术领域的创客和领导者们有趣的故事