linux 系统启动过程分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 系统启动过程分析相关的知识,希望对你有一定的参考价值。

       linux启动顺序

主板Bios加电自检  检查硬件

--> 读取硬盘引导扇区(MBR)

--> 启动引导程序(grub)

--> 选择系统

--> 加载系统内核(kernel shell)

--> 启动系统读取相应的默认设置(环境变量,运行级别)

--> 启动相应的服务和进程 

--> 登陆系统界面


引导程序的配置文件

/etc/grub2.cfg


查看所有的启动级别

#cd /usr/lib/systemd/system --> ls


1.(1)查看当前开机的默认启动级别

#systemctl get-default

修改默认启动级别

例:3级别--》5级别

ln -sf /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target

例:5级别--》3级别

systemctl set-default multi-user.target(要修改的级别)

[注] runlevel 只能通过软连接的方式修改



         模拟事故

将修改级别启动的0级别,系统将不能启动

修复:

重启进入grub开机界面

-->上下箭头结束倒计时

-->按e键进入启动参数设置

-->找到Linux16在行尾UTF-8后加入systemd.unit = rescue.target(指定进入系统的模式)

-->ctrl x (启动参数设置)


         破解root密码

重启进入grub开机界面

-->上下箭头结束倒计时

-->按e键进入启动参数设置

-->方法①:找到Linux16将ro修改为rw init = /systemctl/bin/sh(进root入系统默认使用的shell),躲避硬盘加载

-->方法②xd:UTF-8后加入关键字rd.break

-->ctrl x

:/#mount                           查看挂载表,检查根分区的挂载权限是否是rw;如果是ro,需要重新挂载,加载权限

:/#mount -o remount,rw /sysroot    重新挂载,加载权限

:/#chroot /sysroot /bin/bash       切换正常启动的bash

:/#unset LANG                      清除语言环境变量

:/#passwd                          修改密码

:/#getenforce                      查看selinux状态

如果selinux没有关闭,需要使selinux接受新密码

:/#touch /.autorelabel             在/下创建一个关联标签文件        

:/#exit                            退回到sh

:/#reboot                          重启验证新密码


以上是关于linux 系统启动过程分析的主要内容,如果未能解决你的问题,请参考以下文章

linux系统的启动过程简要分析

linux 系统启动过程分析

Linux系统启动的大致过程

Android系统启动过程分析

Linux系统启动及定制过程

跟踪分析Linux内核的启动过程