大家好,我是刘叨叨,一个致力于让碎片化技术系统性的运维人。
每次按下服务器电源,就像观看一场精心编排的六棒接力赛——从冷冰冰的硬件到灵动的命令行界面,每一棒都至关重要。今天,咱们就拆解这场“比赛”,让你彻底看清Linux的启动“魔法”。
因为当服务器启动“掉棒”时,你需要一眼看出:
懂原理,就是拿到了系统内部的“赛事转播权”。
因为当服务器启动“掉棒”时,你需要一眼
核心任务:确保所有“运动员”(硬件)状态良好,并确定第一位起跑者。
工作三件事:
它的角色: Grand Unified Bootloader,即系统启动的导航菜单。
三大职责:
/boot/vmlinuz-版本号)读到内存。关键文件与操作:
/boot/grub2/grub.cfg(自动生成,一般别直接改)。/etc/default/grub 后,必须执行以下命令使配置生效:# 重新生成GRUB2配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg参数解释:-o 指定输出文件。这步操作至关重要,否则修改不会生效。
内核的启动任务:
重要文件:/boot/vmlinuz-$(uname -r)
查看内核消息:
# 查看本次启动的所有内核消息(重点看错误)
dmesg -T --level=err,warn参数解释:-T 显示人类可读的时间戳,--level=err,warn 只显示错误和警告信息,便于快速定位问题。
它是什么:一个被加载到内存里的临时根文件系统。
为什么需要它?内核很“专一”,很多事不会干,比如:
它的使命:搞定这些依赖,把“真正的根文件系统”挂载好,然后功成身退,将控制权交回内核。
一句话:现代Linux系统的初始化系统和管家,负责启动和管理所有服务。
它上任后:
init快)。管家必备命令:
# 1. 查看启动耗时总览
systemd-analyze
# 输出示例:Startup finished in 2.3s (kernel) + 10.1s (userspace) = 12.4s
# 2. 查看哪个服务启动最慢(按耗时排序)
systemd-analyze blame --no-pager | head -5参数解释:blame 子命令用于分析各单元的启动时间;--no-pager 表示直接输出全部结果,不启用分页器。
最后一步:呈现登录界面,验证身份,为你启动熟悉的Shell(如bash)。
getty服务)。gdm, lightdm等)。至此,六棒接力完成,系统就绪,等待你的命令!
故障现象 | 可能“掉棒”环节 | 初步检查动作 |
|---|---|---|
通电后毫无反应,黑屏 | 第一棒 (BIOS/UEFI)或硬件 | 检查电源、连接,听主板提示音 |
出现grub>或GRUB rescue>提示 | 第二棒 (GRUB2) | 引导文件损坏,需使用安装盘修复 |
屏幕卡住,显示Kernel Panic | 第三棒 (内核) | 检查dmesg输出,常见于驱动问题 |
卡在 “Starting services…” 或某服务名 | 第五棒 (systemd) | 使用journalctl -xe查看该服务详细日志 |
# 查看启动最慢的5个服务
systemd-analyze blame | head -5# 查看所有开机自启的服务
systemctl list-unit-files --state=enabled | grep service
# 禁用某个不必要服务(例如:蓝牙在服务器上通常不用)
sudo systemctl disable bluetooth.service# 查看本次启动的所有日志
journalctl -b --no-pager | less
# 参数解释:`-b` 仅限本次启动,`--no-pager` 直接输出,`less` 用于分页浏览Linux启动,是一场分工明确的六棒接力:
理解这个过程,你就握住了排查启动问题的“地图”。下次服务器启动异常,你就能精准判断问题区间,高效解决。
关注【刘叨叨趣味运维】公众号,用有趣的方式,啃下最硬核的技术。咱们下期见!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。