linux命令行引导
linux命令行引导详细介绍
在 Linux 系统中,命令行引导通常涉及系统启动、重启、切换运行级别以及故障排除时的引导操作。以下是核心内容整理:
一、Linux 引导基本流程(从启动到登录)
- 硬件初始化:BIOS/UEFI 检测硬件,加载引导程序。
- GRUB 引导加载程序:
- 显示启动菜单(默认停留几秒,可按
ESC或C进入命令行)。 - 选择内核版本或启动项(如正常启动、恢复模式)。
- 显示启动菜单(默认停留几秒,可按
- 内核启动:加载内核文件(
vmlinuz)和初始内存盘(initramfs),检测硬件驱动。 - 初始化进程(init):
- systemd(主流):作为 1 号进程,读取配置文件(
/etc/systemd/system/default.target)。 - SystemV init(旧版):基于运行级别(0-6),如
runlevel 3为字符界面,5为图形界面。
- systemd(主流):作为 1 号进程,读取配置文件(
- 服务启动:加载系统服务(如网络、文件系统),最终进入登录界面(命令行或图形化)。
二、正常引导操作(命令行控制)
1.
重启 / 关机 / 切换运行级别(systemd 环境)
- 重启系统:
bashsystemctlsystemctl --firmware-setup
- 关机:
bashsystemctl poweroffsystemctl
- 切换运行级别(通过 target):
目标(target) 对应传统运行级别 说明 multi-user.target3 纯命令行界面 graphical.target5 图形界面(需安装桌面环境) rescue.target救援模式 单用户,仅基本服务启动 emergency.target紧急模式 最小化环境,需手动挂载文件系统 示例:切换到命令行界面(重启后失效):
bashsystemctl isolate multi-user.target
2.
GRUB 命令行临时引导(启动时使用)
启动时按 ESC 或 C 进入 GRUB 命令行,手动指定引导参数:
- 列出可用启动项:grub
ls /boot/grub/boot.cfg # 或通过分区查找,如 ls (hd0,gpt1)/ - 加载内核并引导(示例):grub
linux /vmlinuz-5.15.0-70-generic root=/dev/sda1 ro # 加载内核,指定根分区initrd /initramfs-5.15.0-70-generic.img # 加载初始内存盘
boot # 启动
三、故障排除:命令行救援引导
当系统无法正常启动时,可通过以下方式进入修复环境:
1.
进入单用户模式(救援模式)
- 方法 1:通过 GRUB 菜单
启动时选择内核,按e编辑,找到以linux开头的行,末尾添加systemd.unit=rescue.target或init=/bin/sh(适用于旧版 init),按F10启动。- 添加
rw init=/bin/sh可获得可写文件系统和 shell,用于修复。
- 添加
- 方法 2:通过已启动系统切换
bashsystemctl rescuesystemctl emergency
2.
修复文件系统
进入救援模式后,常用命令:
- 挂载根分区(若未自动挂载):bash
remount,rw //dev/sda1
- 修复 GRUB 引导(以 Ubuntu 为例):bash
grub-install /dev/sda
3.
重置 root 密码
单用户模式下(init=/bin/sh):
bash
remount,rw /root
/sbin/init
四、引导相关配置文件
- GRUB 配置:
- 主配置文件:
/etc/default/grub(修改后需运行update-grub或grub-mkconfig生成新配置)。 - 启动项目录:
/boot/grub/grub.cfg(自动生成,不建议手动修改)。
- 主配置文件:
- systemd 目标配置:
- 默认目标:
/etc/systemd/system/default.target(指向graphical.target或multi-user.target)。 - 运行级别映射:
/usr/lib/systemd/system/runlevel*.target(如runlevel3.target指向multi-user.target)。
- 默认目标:
五、注意事项
- 谨慎操作:救援模式下拥有最高权限,修改系统文件前建议备份。
- 分区识别:不同系统分区命名可能不同(如
sda1、nvme0n1p1),通过lsblk确认。 - 发行版差异:Debian/Ubuntu、RedHat/CentOS 等在 GRUB 路径和命令上可能略有不同(如 RedHat 使用
grub2-mkconfig)。
通过以上命令行操作,可实现 Linux 系统的引导控制、运行级别切换及故障修复。如有具体发行版或场景问题,可进一步补充说明!