Linux 启动日志:分析系统启动状况

1. Linux 启动过程

Linux 的启动过程是一个复杂的过程,涉及到多个阶段。当计算机启动时,硬件初始化完成后, BIOS 会加载引导程序到内存中,并将控制权交给引导程序。引导程序会加载操作系统的内核和初始化 RAM 磁盘功能,然后开始引导 Linux。

1.1 引导加载器 GRUB

GRUB(Grand Unified Bootloader)是一种常用的引导加载器,它负责加载操作系统的内核和初始化 RAM 磁盘功能。GRUB 提供了一个菜单,显示可用的操作系统。用户可以选择启动哪个操作系统,或者进入 GRUB 的命令行界面。

GRUB_LOADING_STAGE1.5

引导加载器 GRUB 在启动时会显示一系列的信息,包括 GRUB 版本号、菜单等,这些信息可以通过查看 GRUB 的配置文件进行自定义。

GRUB loading stage1.5

Press ESC for the GRUB menu...

1.2 内核启动

一旦引导加载器 GRUB 加载完内核,控制权就会交给内核。内核开始执行系统初始化和设备检测等操作。

Loading Linux 4.18.0-238.el8.x86_64...

Loading initial ramdisk...

内核加载完成后,会显示加载的内核版本号信息。同时会加载初始化 RAM 磁盘,该磁盘映像包含了 Linux 提供的初始文件系统和驱动程序。

1.3 系统初始化

在系统初始化阶段,内核会完成一系列初始化操作,包括初始化设备驱动程序、加载并挂载根文件系统、启动系统服务等。

random: crng init done

在启动过程中,系统会进行随机数生成器(CRNG)的初始化。随机数在许多加密和安全相关的操作中起到了至关重要的作用。

EXT4-fs (sda1): mounted filesystem with ordered data mode

文件系统的挂载是系统启动过程中的关键步骤之一。上述示例中的 "sda1" 表示挂载的分区为设备 "sda" 的第一个分区。EXT4-fs 是 Linux 中一种常见的文件系统类型。

2. 启动日志

Linux 启动时会生成一个启动日志,记录了系统启动过程中的相关信息。启动日志通常存储在 /var/log 目录下,其中包含了多个日志文件,每个文件都记录了特定的启动阶段日志。

2.1 /var/log/boot.log

/var/log/boot.log 文件记录了系统启动过程中的一般日志信息。

Starting system message bus: [  OK  ]

Starting Avahi mDNS/DNS-SD Stack: [ OK ]

Starting Sendmail: [ OK ]

Starting sm-client: [ OK ]

上述示例中的日志信息显示了系统启动时的一些服务的启动情况。"[ OK ]" 表示服务正常启动,可以根据日志信息判断服务是否启动成功。

2.2 /var/log/dmesg

/var/log/dmesg 文件记录了内核在启动过程中的详细信息。

[    0.000000] Linux version 4.18.0-238.el8.x86_64 ...

[ 0.000000] Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-...

[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x00000000a...

...

上述示例中的日志信息显示了内核版本号、命令行参数以及 BIOS 内存布局等信息。这些信息可以用于故障排查和系统配置。

2.3 /var/log/messages

/var/log/messages 文件记录了系统启动过程中的各种系统消息。

Sep 23 10:00:00 localhost kernel: imklog 5.8.10, log source = ...

Sep 23 10:00:00 localhost rsyslogd: [origin software="rsyslogd...

Sep 23 10:00:01 localhost kernel: Initializing cgroup subsys net...

Sep 23 10:00:01 localhost kernel: Initializing cgroup subsys fs...

上述示例中的日志信息包括内核消息、系统日志守护进程的消息等。这些消息可以用于系统监控和故障排查。

3. 分析系统启动状况

通过分析系统启动日志,可以了解系统启动过程中的各个阶段是否正常,可以快速定位启动过程中出现的错误或异常。

3.1 查看启动日志

可以使用命令或文本编辑器查看启动日志文件。

cat /var/log/boot.log

less /var/log/dmesg

3.2 关键字搜索

在启动日志文件中可以使用关键字搜索来查找感兴趣的信息。

grep "Starting" /var/log/boot.log

grep "error" /var/log/dmesg

3.3 分析关键信息

在启动日志中关注涉及系统启动过程的关键信息,如服务的启动状态、硬件设备的识别、文件系统的挂载等。被标记为重要的内容可以使用 <strong> 标签进行强调。

Starting system message bus: [  OK  ]

Starting Avahi mDNS/DNS-SD Stack: [ OK ]

Starting Sendmail: [ OK ]

Starting sm-client: [ OK ]

通过分析上述示例中的启动日志,可以确认系统消息总线、Avahi 服务、Sendmail 服务和 sm-client 服务均成功启动。

4. 总结

Linux 启动日志记录了系统启动过程中的详细信息,通过分析启动日志可以了解系统启动状况、检查服务启动情况和排查启动故障。

启动日志通常存储在 /var/log 目录下的多个日志文件中,包括 /var/log/boot.log、/var/log/dmesg 和 /var/log/messages 等。

可以使用命令或文本编辑器查看和搜索启动日志文件。关注关键信息,使用标签进行标记以强调重要内容。

操作系统标签