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