- centos6系统启动过程及相关配置文件
- 加载BIOS硬件信息,对硬件自检
- 读取硬盘中的MBR的boot Loader 就是grub引导,硬盘的0柱面,0磁头,1扇区称为主引导扇区,也叫主引导记录MBR,由3个部分组成,主引导程序,硬盘分区表DTP和硬盘有效标志,为什么MBR分区表只能分4个主分区?磁盘默认一个扇区大小为512字节,主引导程序占446字节,负责从活动分区中装载,并运行系统引导程序,分区表DPT占64字节,负责记录硬盘中分区的数量和大小。每个分区表项长16个字节,4个分区表项占用64字节。MBR有效标识位,占2个字节,固定为55AA。
- 依据boot loader的设定,到引导分区加载Kernel,Kernel会开始侦测硬件并加载驱动程序;
- 在硬件驱动成功后,Kernel会主动执行init程序,而init会取得run-level信息;
- init执行 /etc/rc.d/rc.sysinit文件来准备软件执行的作业环境(如网络,时区等);
- init执行 run-level 下各个服务并启动(script方式);
- init执行开机后自动运行脚本/etc/rc.d/rc.local 文件;
- init执行虚拟终端机控制程序 mingetty 来启动login程序等待用户登入
- centos8系统启动过程及相关配置文件
- 加载bios进行自检,根据设置读取第一个启动设备
- 读取并执行第一个启动设备内MBR的启动引导(grub2)
- 根据启动引导的设置加载内核(Kernel),此时内核在内存中运行,并检测与加载硬件驱动程序,当内核检测硬件与加载驱动程序完毕后,操作系统启动完成。
- 在硬件驱动加载成功后,内核会调用systemd程序。systemd执行sysinit.target初始化系统。basic.target准备操作系统。启动multi-user.target。systemd执行multi-user.target下的/etc/rc.d/rc.local文件。systemd执行multi-user.target下的getty.target以及登录服务。systemd执行graphical需要的服务。
- 由于系统数据都会存储到硬盘中,所以BIOS会指定启动的设备以便读取磁盘中的操作系统内核文件。但是由于不同的操作系统的文件格式并不相同,因此会以启动引导程序来处理内核文件的加载,所以这个启动引导程序就被称为boot loader,会被放置到启动设备的第一个扇区当中。
- 在内核加载完毕、进行硬件检测和驱动程序的加载之后。内核会调用第一个程序,就是systemd。使用pstree命令可以看到systemd的PID为1.systemd会准备软件运行的环境,包括系统的主机名、网络设置、语言设置、文件系统格式及其他服务的启动。而所有的操作都会通过systemd的默认启动服务集合/etc/systemd/system/default.target(实际上这是个软连接,而真正链接到的文件会随着默认启动级别的变化而变化。)
- systemd概述
- systemd即为system daemon 守护进程,是linux下的一种init软件,开发目标是系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低shell的系统开销效果,最终代替现在常用 的System v 与 BSD风格init程序。
- 与多数发行版System V风格init 相比,systemd采用了以下新技术:
- 采用Socket激活式与总现激活式服务,以提高相互依赖的各服务的并行运行性能;
- 用Cgroups代替PID来追踪进程,以此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
- unit对象:unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息
- system配置文件:
- /usr/lib/systemd/system/ #这个目录存储每个服务的启动脚本,类似于之前的/etc/init.d/
- 对于新建或修改的unit文件,要通知systemd重载此配置文件,然后可选择重启。systemctl deamon-reload
- 运行级别
- 0关机模式,1单用户模式,用于破解root密码
- 2无网络支持的,多用户模式
- 3有网络支持的多用户模式(一般叫字符界面,工作中最常用的模式)
- 4保留,未使用
- 5有网络支持,多用户的图形界面
- 6重启
- target目标态,target代替运行级别
- ls /usr/lib/systemd/system/*.target
- systemctl list-dependencies runlevel3.target #查看3级别unit的所有依赖,a依赖于b,systemd启动a的时候,同时会启动b,可以理解为3运行级别下都开启哪些服务
- centos7/8目标态,就是各种指定的服务和基础target组合而成。
- ll /etc/systemd/system/default.target
- /etc/systemd/system/default.target -> /usr/lib/systemd/system/graphical.target
- systemctl set-default multi-user.target
- /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
- 默认目标态就是创建了一个软连接到指定的target
- 我们系统中有2个内核,改变默认启动的内核顺序
- vim /etc/default/grub
- GRUB_DEFAULT=saved #这里改成1,0代表第一个内核,1代表第二个,类推
- grub2-mkconfig -o /boot/grub2/grub.cfg #修改完成后,并没有生效,用此命令生成grub2.cfg文件,下次启动就会选择新的默认内核。
- uname -r #查看当前系统内核
- cat /etc/redhat-release
- cat /proc/version
- 实战加密grub防止黑客通过单用户系统破解root密码
- grub2-mkpasswd-pbkdf2 #centos7/8 输入口令,确认口令
- grub.pbkdf2.sha512.10000.xxxxxxxx 复制该密钥
- vim /etc/grub.d/00_header 文件末尾添加如下内容
- cat <<EOF
- set superusers='rs'
- password_pbkdf2 rs
- grub.pbkdf2.sha512.10000粘贴该密钥
- EOF
- :wq
- grub2-mkconfig -o /boot/grub2/grub.cfg #更新grub信息 重启验证
- 开机按e ,进入输入用户名密码,进入grub菜单,按ctrl+x启动
- 实战通过liveCD进入救援模式,重装grub修复损坏的系统
- BIOS设置光盘启动
- Troubleshooting
- Rescue a CentOS Linux system #救援模式
- chroot /mnt/sysimage/
- ls
- grub2-install /dev/sd*
- ls /boot/grub2/
- grub2-mkconfig -o /boot/grub2/grub.cfg
- exit
- reboot
详细解决方案
第17章 Linux系统启动原理及故障排除
热度:45 发布时间:2024-02-05 00:30:59.0
相关解决方案
- linux+tomcat部署JSP项目有关问题,找不到jar依赖包
- linux 上log4j使用,日志输出的配置
- linux 上Tomcat不解析.war包
- 使用moto sdk 6.2 for linux 模拟器调试 蓝牙程序时的有关问题
- 文件下传到系统中后,没有执行权限(linux)
- linux 命令 求解解决方法
- Linux 和windows中文乱码解决办法
- linux 上安装oracle10g
- linux 下安装oracle10g,该如何解决
- linux g_serial 的模块装配!
- 求真相,linux &arm 和c\c++有关的开发真的如何悲剧吗
- linux 如何运行c程序
- arm-linux-gcc下的字节对齐有关问题
- 好久没来CSDN了,散分,顺便说一句如何没有嵌入式开发(linux)
- linux下怎么使用arm-linux-gcc编译器
- 怪事【AT91RM9200+LINUX+PC6脚】
- linux+wifi+ap的一些有关问题
- linux 装置模型
- linux 有关问题
- linux 下汇编有关问题3,高人指教!
- linux 下汇编有关问题2,高人指教!
- linux 下汇编有关问题,高人指教!
- linux 下汇编有关问题,高人指教,初学,
- linux 下汇编有关问题4,高人指教!
- redhat5 linux 下汇编有关问题
- linux 上 WebSphere日志中文乱码
- suse linux 11上安装wepsphere6.1 报错?
- linux ubuntu 安装webspher,该如何解决
- suse linux 11下安装wepsphere6.1 报错?该怎么解决
- linux 下 WebSphere日志中文乱码,该如何处理