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菜单,开机页面选择用户进入系统
    • 记录在分区表里面,64字节,4个分区,一个分区16个字节
    • 是一个16进制的字段,2字节;55AA或者AA55

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管理系统的主要内容,如果未能解决你的问题,请参考以下文章

linux系统引导过程及引导修复

Linux系统引导过程及引导修复

Linux系统引导过程及修复引导

Linux操作系统的引导过程及初始化的必要操作详解

linux(十六) 系统引导过程及服务控制详解

Linux引导过程及服务控制