Linux启动流程怎么分析_从BIOS到系统就绪详解【指导】
发布时间 - 2026-01-02 00:00:00 点击率:次Linux启动可分六个关键控制点定位故障:先查UEFI/BIOS模式(ls /sys/firmware/efi/efivars),再依次排查GRUB加载、内核启动、initramfs、根文件系统挂载及systemd服务失败原因。
Linux 启动不是黑盒——只要分清六个关键控制点,你就能在系统卡死、进不了登录界面、甚至 kernel panic 时,快速定位是固件问题、引导损坏、内核加载失败,还是用户空间服务没起来。
怎么看当前系统走的是 BIOS 还是 UEFI?
这是所有分析的起点。错判模式会导致后续排查方向全偏:
BIOS 对应 MBR + grub 阶段1加载;UEFI 对应 ESP 分区 + grubx64.efi 直接执行。
- 运行
ls /sys/firmware/efi/efivars:能列出大量变量 → 确认为 UEFI 模式 - 运行
efibootmgr -v:有输出且含ubuntu、centos等启动项 → UEFI - 若报错
No such file or directory,且fdisk -l显示磁盘用dos标签 → 极大概率是 BIOS+MBR
⚠️ 容易踩的坑:有些新主板默认启用 UEFI,但安装系统时误选了 Legacy BIOS 模式(或反之),导致 /boot/efi 分区缺失、grub.cfg 不被读取、甚至 GRUB 提示 error: unknown filesystem。
GRUB 菜单不出现 / 卡在 black screen 怎么查?
这不是“没反应”,而是 GRUB 阶段2没成功加载配置或找不到内核镜像。常见于升级内核后未更新 GRUB 配置、/boot 分区满、或 initramfs 损坏。
- 开机时狂按
Shift(BIOS)或Esc(UEFI)强行呼出 GRUB 菜单;失败则说明阶段1.5或阶段2根本没跑起来 - 进 Live 系统挂载原系统后检查:
ls /boot/vmlinuz-*和ls /boot/initramfs-*.img是否成对存在 - 重建 GRUB 配置:
grub2-mkconfig -o /boot/grub2/grub.cfg(RHEL/CentOS)或update-grub(Debian/Ubuntu) - 确认
/boot或/boot/efi分区未满:df -h /boot*
? 注意:grub.cfg 是生成文件,**不要手动编辑它**;修改应通过 /etc/default/grub 和 /etc/grub.d/ 下脚本完成。
内核加载后黑屏 / 卡在 “Starting kernel...” 怎么办?
说明 GRUB 成功把 vmli 和
nuzinitramfs 加载进内存,但内核无法挂载根文件系统——90% 是驱动缺失或设备路径错误。
- 开机时在 GRUB 菜单选中条目,按
e编辑启动参数,在linux行末尾加rd.debug systemd.log_level=debug,再按Ctrl+X启动,看卡在哪一步 - 常见原因:
root=参数指向错误设备(如/dev/sda2变成/dev/nvme0n1p2),或 LVM/RAID/LUKS 设备没在 initramfs 中包含对应模块 - 检查 initramfs 内容:
lsinitrd /boot/initramfs-$(uname -r).img | grep -E "(lvm|raid|crypt|nvme)" - 重生成 initramfs:
dracut -f(RHEL/CentOS)或update-initramfs -u(Debian/Ubuntu)
⚠️ 关键细节:UEFI 下若根分区是 Btrfs 或 XFS,某些旧内核 initramfs 默认不带对应驱动,必须显式启用。
systemd 启动卡在某个 service(如 NetworkManager、dbus)怎么诊断?
此时内核已就绪、根文件系统已挂载、/sbin/init 已是 systemd(PID 1),但某个 unit 启动超时或失败,阻塞整个初始化链。
- 启动后立即运行:
systemctl --failed查看失败单元 - 查具体日志:
journalctl -b -p err(本次启动的错误)或journalctl -b -u NetworkManager - 跳过故障服务临时启动:
systemd.unit=multi-user.target(绕过图形 target)或systemd.mask=NetworkManager.service(禁用该服务) - 检查依赖关系:
systemctl list-dependencies --reverse看谁在等它.service
? 最容易被忽略的一点:systemd 的 timeout 默认只有 90 秒,而某些存储设备(如 USB-NAS、iSCSI)初始化慢,会直接被 kill。可通过 DefaultTimeoutStartSec=300s 在 /etc/systemd/system.conf 中延长。
# linux
# centos
# 主板
# ubuntu
# usb
# ai
# ios
# bios
# nas
# Directory
# Error
# Filesystem
# default
# debian
# 加载
# 卡在
# 文件系统
# 的是
# 开机时
# 这是
# 你就
# 找不到
# 能在
# 这不是
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何打造高效商业网站?建站目的决定转化率
如何用wdcp快速搭建高效网站?
Laravel如何自定义分页视图?(Pagination示例)
高防服务器租用首荐平台,企业级优惠套餐快速部署
Laravel怎么调用外部API_Laravel Http Client客户端使用
三星、SK海力士获美批准:可向中国出口芯片制造设备
html5的keygen标签为什么废弃_替代方案说明【解答】
微信小程序 scroll-view组件实现列表页实例代码
JavaScript模板引擎Template.js使用详解
如何在搬瓦工VPS快速搭建网站?
如何实现javascript表单验证_正则表达式有哪些实用技巧
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
如何用y主机助手快速搭建网站?
如何用花生壳三步快速搭建专属网站?
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Android okhttputils现在进度显示实例代码
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
如何快速查询网站的真实建站时间?
制作企业网站建设方案,怎样建设一个公司网站?
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
如何快速查询域名建站关键信息?
如何快速生成专业多端适配建站电话?
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
个人网站制作流程图片大全,个人网站如何注销?
Thinkphp 中 distinct 的用法解析
深圳网站制作平台,深圳市做网站好的公司有哪些?
网站建设保证美观性,需要考虑的几点问题!
如何快速搭建虚拟主机网站?新手必看指南
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
Laravel如何创建自定义Facades?(详细步骤)
如何快速上传自定义模板至建站之星?
如何在Windows服务器上快速搭建网站?
动图在线制作网站有哪些,滑动动图图集怎么做?
高端建站如何打造兼具美学与转化的品牌官网?
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
Laravel怎么使用Intervention Image库处理图片上传和缩放
Laravel如何使用查询构建器?(Query Builder高级用法)
Laravel如何使用Eloquent进行子查询
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
如何快速使用云服务器搭建个人网站?
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
如何用PHP工具快速搭建高效网站?
iOS发送验证码倒计时应用
如何在云虚拟主机上快速搭建个人网站?
黑客如何通过漏洞一步步攻陷网站服务器?

