Linux教程

13.LINUX——引导过程与服务控制

本文主要是介绍13.LINUX——引导过程与服务控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

      • 1.linux 操作系统引导过程
      • 2.排除启动故障错误
      • 3. 服务控制及切换运行级别
      • 4.优化启动过程
      • 5.相关命令

1.linux 操作系统引导过程


开机的时候,先是硬件自检BIOS 基本的输入输出系统 主板上的ROM芯片
配置BIOS 使用的是汇编语言 可以配置密码,时间等 配置BIOS信息的内容放在 CMOS 上面,是以RAM存储,对硬件加电自检 寻找可以引导系统启动的设备或者程序(光盘,硬盘,U盘,网络)
UEDI 使用的是C语言。比较容易实现,未来可能会接替BIOS

MBR引导 主引导记录,在磁盘的第一扇区,512字节的MBR
启动引导程序 boot loader 456字节
存放MBR分区表 64字节 一个分区16字节,有4个分区
16进制的字段, 2个字节 :根据系统型号决定,例如55AA AA55 ,意思可引导
核心目标: boot loader 寻找内核,加载内核,寻找的是系统里面的操作系统自己本身的 loader ,去进行识别,会有选项 提供用户,这就是GRUB菜单

GRUB菜单 centos 6 grub / centos 7 grub2
将会显示提供用于选择,并根据-选项加载linux内核文件

加载内核 boot loader 移交控制权,进行解压,在系统中运行
本身也会进行自检,检查驱动程序是否安装
加载上module 模块,系统引导器程序会从本地硬盘中加载内核以及内存文件系统 initramfs,其中包含启动时所有必要的硬件内核模块、初始化脚本等
为了挂载,加载驱动,依赖一个虚拟文件系统,帮助识别挂载,
内核无法自己主动识别驱动,boorleader 找到内核,找到initarnfs文件系统(伪根)
之后找到真正的根 文件系统

init进程 初始化
centos 7里面是 init 6
会产生第一个系统的进程 systemd 进程号 PID=1
在initramfs中找到驱动程序的所有硬件,然后作为PID 1
从initramfs执行/lib/systemd/systemd
systemd启动initrd.target中所有单元,包括挂载/etc/fstab
然后从initramfs根文件系统切换到磁盘根目录并且systemd启动默认target(字符界面还是图形化界面)也就是 /etc/systemd/system/default.target
最后等待用户登陆

system 启动之后,有一个支持的软件环境,systemd 服务
systemd 服务:

  1. sysint 对系统进行初始化,准备一些文件系统,用户名,网络的基本设置,文件系统的格式
    2.multiuser 然后进入命令行模式,系统自启动的服务
    3.getty 为用户准备一个登录环境,安装图形化界面的步骤
    4.graphcal 实现图像界面化的登录.

2.排除启动故障错误

centos7忘记密码恢复方法
https://www.cnblogs.com/rzxiaojia/p/8360558.html
启动系统,并在GRUB2启动屏显时,按下e键进入编辑模式
在linux16/linux/linuxefi所在参数行尾添加以下内容:init=/bin/sh
按Ctrl+x启动到shell
挂载文件系统为可写模式:mount –o remount,rw /
运行passwd,并按提示修改root密码
运行命令exec /sbin/init来正常启动,或者用命令exec /sbin/reboot重启

MBR扇区修复
1、首先模拟故障
新加一块硬盘,格式化挂载
dd if=/dev/sda of=/opt/sdb/mbr.bak bs=512 count=1
dd if=/dev/zero of=/dev/sda bs=512 count=1
2、重启电脑,无法进入系统
3、设置boot选项从光盘进入
4、选择修复模式进入
5、mkdir /bak
6、重新挂载sdb,mount /dev/sdb /bak
7、dd if=/bak/mbr.bak of=/dev/sda
8、reboot重启
9、boot修改第一启动项为硬盘,顺利进入系统

grub修复
1、从光盘启动,进入救援模式,进入修复shell

执行chroot /mnt/sysimage #初始系统已经挂载到了/mnt/sysimage下面,想要进入初始系统下面,需要执行chroot /mnt/sysimage命令
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
exit
reboot

3. 服务控制及切换运行级别


init 0 正常关机的状态,其中一个命令 shutdown
init 1 修复系统,root系统,相当于windos的安全模式,单用户模式
init 2 不太常用,没有共享存储,无网络 ,多用户模式
init 3 默认字符界面,多用户模式,不止root 用户可以使用,如果是最小安装,没有图形界面 默认init 3
init 4 保留,不使用
init 5 图形化界面,实现图形界面的多用户模式
init 6 重启 或者reboot 或者 shutdown -r

运行级别:

4.优化启动过程


5.相关命令

命令作用
systemctl --version查看systemd的版本
systemctl start name.service开启服务
systemctl stop name.service停止服务
systemctl restart name.service重启服务,先停止后启动
systemctl reload name.service重新加载服务的配置文件,服务不会中断
systemctl status name.service查看服务状态
systemctl enable name.service设置开机自启
systemctl disable name.service设置服务开机不自启
systemctl is-enable name.service查看服务是否开机启动
systemctl cat kube-apiserver .service查看服务的system服务配置
systemctl unmask name.service取消屏蔽服务
systemctl get-default查看当前系统默认启动的target
systemctl set-default multi-user.target设置启动的target为 multi-user.target
systemd-analyze查看系统启动耗时,等同于systemd-analyze time
这篇关于13.LINUX——引导过程与服务控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!