系统引导和服务

本文详细介绍了CentOS的启动过程,包括开机自检、MBR引导、GRUB菜单的功能与组成,以及如何加载Linux内核和使用init进程初始化。还重点讲解了CentOS7中的systemd服务管理和修复MBR分区、GRUB分区及修改root密码的方法。
摘要由CSDN通过智能技术生成

目录

一.引导过程(centos启动过程)

1.1.开机自检(bios)

1.2.MBR引导

1.3.GRUB菜单及功能和组成

1.4.加载Linux内核(操作系统)

1.5.init进程初始化

二.服务

2.1.systemd服务(centos7)

2.2.systemctl系统服务类型

2.3.系统服务控制

三.修复MBR分区

四.gurb分区修复

五.修改密码

1.借助光驱

2.不借助光驱(两种做法)

1.第一种方法:

 2.第二种做法:


一.引导过程(centos启动过程)

操作系统存储在:

1.硬盘

2.光驱 udisk

3.网络的远端机器(通过网线下载到内存点)

1.1.开机自检(bios)

加电检测硬件是否有故障,如果无故障,就去bios中设置的第一启动项找操作系统

1.2.MBR引导

本机在硬盘中启动时,会在硬盘的第一个扇区中的MBR的设置(第一个扇区的前446字节,有一个grub程序第一阶段),根据 MBR 记录中的引导信息调用grub菜单,引导硬件找到操作系统。

总结:运行放在MBR扇区里的启动 GRUB引导程序

1.3.GRUB菜单及功能和组成

GRUB引导程序会根据grub.cfg配置文件找到操作系统

总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置

grub功能和组成:

新建一块硬盘 将mbr 前512字节 备份 sdv1(分区 也安装了文件系统)

1.4.加载Linux内核(操作系统)

加载内核:找到操作系统后,激活操作系统

把内核和镜像文件系统加载到内存中,可以使用

1.5.init进程初始化

init进程:由Linux内核加载运行/sbin/init程序,init进程是系统中第一个进程,init进程的PID(进程标记)号永远为1,init进程初始化:启动程序

总结:加载硬件驱动程序,内核把init进程加载到内存中运行

祖宗进程:centos7:systemd;centos6:init

systemd可以将许多服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度许多进程一起上

init依赖于串行执行Shell 脚本启动服务,导致效率低下,系统启动速度较慢,要一个一个排队

二.服务

2.1.systemd服务(centos7)

Systemd是Linux操作系统的一种init软件

CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit

CentOS7中运行的第一个init进程是/lib/systemd/systemd

对比5 6 可以解决依赖关系并行启动

按需启动

自动解决依赖关系,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程

systemd特点:

  • 系统引导时实现服务并行启动

  • 按需启动守护进程

  • 自动化的服务依赖关系管理

  • 同时采用socket式与D-Bus总线式激活服务

  • socket与服务程序分离

  • 向后兼容sysv init脚本

  • 使用systemctl 命令管理,systemctl命令固定不变,不可扩展,非由systemd启动的服务

  • systemctl无法与之通信和控制

  • 系统状态快照

linux运行级别:

systemctl        get-default

# 获得当前的运行级别


systemctl        set-defaul        multi-user.target

ln   -sf   /lib/systemd/system/multi-user.target    /etc/systemd/system/default.target

# 设置默认的运行级别为multi-user


systemctl        islate        multi-user.target

#在不重启的情况下,切换到运行级别multi-user下

systemctl         isolate        graphical.target

# 在不重启的情况下,切换到图形界面下

2.2.systemctl系统服务类型

systemctl管理命令:

systemctl是用于管理systemd系统和服务管理器的命令行工具。

systemd是保姆级的进,代为管理所有进程
systemctl   start     程序名   开启程序
systemctl   stop     程序名   关闭程序
systemctl   status  程序名   查看程序状态
systemctl   restart  程序名   重启程序
systemctl   reload  程序名   重新加载配置文件不会影响业务
systemctl   enable  程序名  开机自启
systemctl   disable 程序名   开机不自启
systemctl   disable  --now httpd  开机不自启并目立马关闭
systemctl   enable  --now httpd   开机自启并且立马启动


有 .service文件 并且在固定目录下  /usr/lib/systemd/system

2.3.系统服务控制

    systemctl        控制类型        服务名称

        控制类型:

        start:启动

        stop:停止

        restart:重新启动

        reload:重新加载

        status:查看服务状态

三.修复MBR分区

修复mbr分区的方法有两种

1、将mbr分区内容第一个分区备份到另一块硬盘上,然后在mbr分区损坏之后,进入单用户模式,在单用户模式中,将备份拷贝到原mbr文件中,最后重启即可。

2、将mbr分区内容备份到其他主机中,通过网络进行恢复。

步骤:

本实验是人为损坏mbr分区后在恢复的所有步骤

(1)首先加一块硬盘,格式化并挂载在某个文件中

 

 

(2)备份mbr分区内容到新硬盘上

dd     if=/dev/sda       of=/mnt/mbr.bak        count=1                bs=512

         从哪复制          复制到哪去                复制几次              复制多少内容,不写单位默认是字节

dd if=/dev/sda of=/dev/sdb1 count=1 bs=512

  • # dd 相当于复制

  • # if 是源文件

  • # of 是目的文件

  • # count 指定读取数据块的数量

  • # bs 读取数据块的大小,不写单位默认为字节,加单位要写大小如M、G


(3)损坏mbr分区的内容

  dd   if=/dev/zero   of=/dev/sda   count=1    bs=512

(4)重启,进入单用户面模式

 

 

(5)创建文件夹,将硬盘挂载到新文件夹上

mkdir        bak

mount        /dev/sdb1        /bak

(6)将硬盘中备份的mbr文件拷贝到/dev/sda中,然后重启即可修复 

dd        if=/bak/mbr.bak        of=/dev/sda        count=1        bs=512

 

四.gurb分区修复

(1)模拟grub分区损坏,删除grub.cfg文件

rm   -rf     /boot/grub2/grub.cfg cfg(模拟删除grub.cf 文件)

(2)重启进入急救模式,输入1

在下面这个界面按“esc”键进入,否则进入不了急救模式,且模拟器上这个界面只有0.5秒 

 

 

 

 3)进入急救模式后,更改环境

chroot    /mnt/sysimage

(4)重新建立和加载sda分区

grub2-install         /dev/sda

 (5)重新构建grub菜单配置文件

 (6)重启

五.修改密码

修改密码的方式有两种:

1.借助光驱

2.不借助光驱。

1.借助光驱

chroot /mnt/sysimage
#进入急救模式后,更改环境
passwd
#修改密码

2.不借助光驱(两种做法)

扩展:

用setenforce 0命令临时关闭SElinux

  1. [root@sulibao ~]# setenforce 0

  2. setenforce: SELinux is disabled

查看状态是否关闭

  1. [root@sulibao ~]# getenforce

  2. Disabled

1.第一种方法:

①先打开终端,输入vi /etc/selinux/config,修改配置文件/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出,永久关闭setenforce 0 关掉

 ②重启重启系统,进入选择系统界面,任意键取消自动选择,按e进入单用户模式

③找到在linux16这一段末尾,添加rd.break,输入完成后按住Ctrl+x。

④输入命令修改密码

a.输入命令 mount -o remount,rw  /sysroot/  回车

b.chroot /sysroot/       passwd   root   回车  

c.输入密码两次,密码不可见   

d.输入命令touch /.autorelabel  回车     再输入  exit   回车   reboot

 

 2.第二种做法:

①和第一种方法一样也是需要永久关闭selinux

vim        /etc/selinux/config 

②启动时任意键暂停启动,按e键进入编辑模式

 

③将光标移动linux 开始的行,将ro 及后面的改为 rw init=/sysroot/bin/sh,然后ctrl+x启动

(5)输入命令,修改密码,重启

chroot    /sysroot
passwd    root(修改密码的过程是不可看的)
如果SELinux是临时关闭或者是启用的,才需要执行下面操作,如查没有启动,不需要执行
touch    /.autorelabel

exit
reboot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值