linux-引导过程及system管理系统
Posted 可乐卷儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux-引导过程及system管理系统相关的知识,希望对你有一定的参考价值。
文章目录
一、linux操作系统引导过程
1、上电自检(Bios)
当你按下电源按键后计算机硬件会读取BIOS或UEFI BIOS来加载硬件信息及进行硬件系统的自我测试,根据BIOS设置来取得第一个可启动的设备;台式机嘟的长鸣声表示自检失败。
BIOS:全称应该是ROM-BIOS,基本的输入输出系统,在主板上的rom芯片内,很小的一个程序;记录在CMDS芯片上,RAM随机存储器
2、MBR引导
- 读取并执行第一个扇区MBR的启动引导程序(可以是grub2,也可以是spfdisk);系统会主动去读第一个可启动的设备(BIOS设定),此时就可以读入启动引导程序了,启动引导程序可以指定使用哪个内核;这时控制权给MBR,即boot loader主导权寻找内核。
- 第一个扇区有512字节的MBR;以下三个一共512字节
- 存放boot loader(系统启动引导程序),446字节;
- boot loader主要作用:
- 寻找内核和加载内核:一个硬盘第一个扇区是MBR,MBR内有boot loader,想要访问windows,这时是需要boot loader去访问window自己的loader,由window自己的loader寻找和加载内核
- 可以提供用户的选项,即GRUB菜单,开机页面选择用户进入系统
- boot loader主要作用:
- 记录在分区表里面,64字节,4个分区,一个分区16个字节
- 是一个16进制的字段,2字节;55AA或者AA55
- 存放boot loader(系统启动引导程序),446字节;
3、GRUB菜单
寻找内核,系统控制权递给grup以后,将会显示提供用于选择,并根据选项加载linux内核文件;MBR找到程序之后,BIOS就结束了,开始grub2;Centos 7 是GRUB 2
主要使用的是grup2,配置文件是grup.cfg,在操作系统中最好先备份
4、加载内核(kernel)
- 从本地硬盘加载内核,此时控制权在内核;
- 检测内核(动态加载内核模块:modules:存放加载硬件驱动程序)并找到内核
- 找到内核之后boot loader加载内核时的同时产生initramfs:虚拟文件系统,需要通过initramfs挂载伪根并加载驱动程序;
- 驱动程序存在之后initramfs消失,此时系统挂载真正的根和文件系统安装驱动程序
modules:在/lib内核下
5、system进程
init进程初始化:是Centos6系统的,是一个个运行服务,且个别服务有依赖性;
目前使用的是Centos 7 :systemd:systemd是LINUX操作系统的一种init软件,优势是可以并行运行服务
systemd进程:启动了第一个程序,systemd,进程号PID=1;路径:/lib/systemd/systemd
- 硬件是内核管,systemd启动之后为用户启用一个可以软件环境
- 后面的服务由systemd负责(三个单元sysint、multi user、getty):
- 对系统进行初始化sysint:用户名,网络基本设置,网络格式
- 进入命令行模式:multi-user,开始执行系统自启动的服务
- 用getty单元给用户提供登录环境,进入系统登录页面
- 最后通过graphical启动图形界面
至此整个系统引导过程结束
二、systemd 单元类型
三、运行级别对应的systemd目标
- init0:target,代表关机状态;//关机命令:init0//shutdown
- init1:rescue.target:单用户模式,主要用于修复系统功能
- init2:multi-user.target:多用户模式,无网络,无NFS共享存储
- init3:multi-user.target:命令模式,多用户模式,没有图形界面,安装最小化系统默认的就是init3
- init4:multi-user.target:保留,未使用
- init5:graphical.targrt:多用户模式,提供图形桌面操作环境
- init6:reboot.target:重启 //重启命令shutdown -r
四、配置命令
systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器;它融合之前service和chkconfig的功能于一体,可以使用它永久性或只在当前绘画中启用/禁用服务
- runlevel:查看当前系统运行级别,之前是init3 现在是init5
若系统init6 重启
查询runlevel:N 5 N:代表重启的状态,新环境
- 配置文件
- /etc/systemd/system/
- /run/systemd/system/
- /usr/lib/systemd/system
- vim sshd.service
优点:
并行处理所有服务,加速开机流程:对于不依赖的服务不需要按次序启动可以同时启动
立即响应:因为systemd常驻于内存当做
服务依赖性的自我检查:systemd会自动帮你启动需要依赖的服务
功能分类:定义所有的服务为一个服务单元unit,加入到不同的服务类型种,如service、target等
向下兼容init服务脚本
五、管理命令
在使用systemctl命令时,可以省略服务单元名称的表示.service,也就是如果输入的是无后缀标识的,它会默认把后缀标识当做.service 来处理
- systemctl --version:查看system的版本
- systemctl status name.service: 查看服务的状态 //systemctl status firwalld service
- systemctl start name.service:开启服务 //systemctl start firewalld.service:开启防火墙
- systemctl stop name.service:关闭服务 //systemctl stop firewalld.service:关闭防火墙
- systemctl restart name.service:重启服务(相当于先停止再启动,服务的PID(进程ID号)会改变)
- systemctl reload name.service:重新加载服务的配置文件(服务不会中断,PID不会改变)//更改过配置之后,在不停止服务的情况下,重新加载服务的配置文件
- systemctl enable name.service:设置服务开机自启//systemctl enable firewalld.service:设置防火墙开机自启
- systemctl disable name.service:设置服务开机不自启 //systemctl disable firewalld.service:设置防火墙开机不自启
- systemctl is-enabled name.service:查看服务是否开机自启//systemctl is-enabled firewalld.service:查看防火墙是否开机自启
- systemctl list-unit-files|grep enable:查看已启动服务列表
- systemctl is-active name.service:查看服务是否在启动成功状态 //systemctl is-active firewalld:查看防火墙是否在启动成功状态
- systemctl is-failed name.service:查看服务是否在启动失败状态 //systemctl is-failed firewalld.service:查看防火墙是否在启动失败状态
- systemctl mask name.service:屏蔽服务
- systemctl unmask name.service:取消屏蔽服务
- systenctl cat kube-apiserver.service:查看服务的system服务配置
- systemctl get-default:查看当前系统默认启动的target
- systemctl set-default multi-user.target :设置默认启动的target为multi-user.target
- systemd-analyze:查看系统启动耗时,等同于 systemd-analyze time
- systemctl cat sshd:查看sshd服务的配置文件
六、引导过程错误处理
1、遗忘root用户密码
解决方法分两种
1.1、有光盘的情况下解决思路:
虚拟机关机–电源–打开电源进入固件
进入BOIS 小键盘+把CD-ROM移动到第一个–F10–yes
Troubleshooting:进入救援模式
Rescue a Centos system:进入安装模式
选择1、Continue
编辑命令:chroot /mnt/sysimage
编辑新密码:passwd root
然后exit退出—关闭电源
虚拟机关机–电源–打开电源进入固件-需要把硬盘设置为第一位,再进入系统,密码生效
1.2、没有光盘的急救模式
虚拟机关机–电源–打开电源进入固件,进入到BIOS界面时
迅速摁e键进入编辑模式
在linux16行 末尾添加:init=/bin/sh
ctrl+x:启用shell
挂载文件系统为可写模式:此密码需要8位,且需要输入2遍
进入 /etc/selinux;rm -rf config
输入命令:exec /sbin/init:启用系统,密码生效
2、修复MBR扇区故障
添加一块硬盘,重启
格式化
挂载
拿的空的文件进去
进入光盘 F10
选择1
挂载
mkdir mbr
mount /dev/sdb/bak
dd if=/mbr/mbr.bak of=/dev/sda
重启reboot
3、修复GRUB引导故障
模拟grub故障
修复:
从光盘启动,进入救援模式,进入修复shell
进入光盘:
关机–从光盘进入系统就可以进入了
以上是关于linux-引导过程及system管理系统的主要内容,如果未能解决你的问题,请参考以下文章