引导过程与服务控制

Linux引导过程与服务控制

一、Linux操作系统引导过程

在这里插入图片描述

1、开机自检

​ 服务器主机开机后,将根据主板bios中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。

总结:检测出第一个能够引导系统的设备,比如硬盘或者光驱。

2、MRB引导

​ 当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR 记录中的引导信息调用启动菜单。

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

3、GRUB菜单

​ 对于 Linux 操作系统来说,GRUB(GRand Unified Bootloader,统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给 GRUB 以后,将会显示启动菜单给 用户选择,并根据所选项(或采用默认值)准备加载 Linux 内核文件,然后将系统控制权转交给内核。

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

4、加载Linux内核

​ Linux 内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间, 负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个 Linux 操作系统的运行过 程。在 CentOS 系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.el7.x86_64”。

总结:把内核和镜像文件系统加载到内存中

5、init进程初始化

为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init 进程负责完成整个系统的初始化,最后等待用户进行登录。
总结:加载硬件驱动程序,内核把init进程加载到内存中运行

二、系统初始化进程

1、init进程(串行启动)

  • 由Linux内核加载运行/sbin/init程序
  • init进程是系统中第一个进程
  • init进程的PID(进程标号)号永远为1

2、Systemd(并行启动)

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

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

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

3、Centos6与Centos7的区别

CentOS 6并行运行,但有依赖关系还是一步一步执行 ;CentOS 7所有程序并行运行。
**启动方式不同:**CentOS6 是upstart,CentOS 7是systemd。
**引导程序不同:**CentOS6 是grub,CentOS 7是grub2。
**文件类型不同:**CentOS6 是ext4,CentOS 7是xfs。

4、Systemd单元类型

在这里插入图片描述

5、运行级别所对Systemd的目标

在这里插入图片描述

6、systemctl命令

  • systemctl status httpd #查看服务的运行状态

  • systemctl start httpd #启动

  • systemctl restart httpd #重启

  • systemctl reload httpd #重新加载

三、修复MBR扇区故障

1、故障原因

  • 故障、木马等造成的破坏
  • 不正确的分区操作、磁盘读写误操作

2、故障现象

  • 找不到引导程序,启动中断
  • 无法加载操作系统,开机后黑屏

3、解决思路

  • 应提前做好备份文件
  • 以安装光盘引导进入急救模式
  • 从备份文件中恢复

4、操作步骤如下

修复MBR扇区故障
第一步  先加一块硬盘     刷新
第二步  分区 
第三步  mkfs.xfs  /dev/sdb1      格式化  
第四步  mount  /dev/sdb1  /mnt   挂载 
第五步  df -h  查看
第六步  dd if=/dev/sda  of=/mnt/zzt  count=1  bs=512   复制备份zzt是备份的文件名
## if 复制的文件是哪个   of 复制到那个文件里   count=1  复制1次   bs=512  1次512字节 
第七步  ls  /mnt/  查看
第八步  hexdump -C -n 512 /dev/sda   查看512字节
第九步  dd if=/dev/zero  of=/dev/sda  bs=512 count=1     复制0到硬盘的512字节
第十步  重启 之后在光驱进行操作
引导界面进入急救模式,从备份文件中恢复MBR扇区数据,先加载好光盘镜像,重启操作系统,
当出现安装向导界面时,选择  Troubleshooting  选项

再选择  Rescue a CentOS Linux system  选项,进入急救模式选择  1  选择  Continue 并按Enter键继续

再次按Enter键后将进入带"sh-4.2#"提示符的Bash Shell环境
mkdir bak   #创建文件夹
mount  /dev/sdb1  bak/     #挂载  
ls /bak/                   #查看 
dd if=/bak/zzt  of=/dev/sda  count=1 bs=512    #导给  
hexdump -C -n 512 /dev/sda              #查看 

5、实战,修复MBR扇区故障

(1)先添加一块硬盘并且刷新一下
在这里插入图片描述
(2)创建分区、备份MBR扇区数据到/dev/sdb1——>模拟破坏MBR引导扇区——>重启
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)引导界面进入急救模式,从备份文件中恢复MBR扇区数据,先加载好光盘镜像,重启操作系统,
当出现安装向导界面时,选择 Troubleshooting 选项
再选择 Rescue a CentOS Linux system 选项,进入急救模式选择 1 选择 Continue 并按Enter键继续
再次按Enter键后将进入带 sh-4.2# 提示符的Bash Shell环境
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)在sh-4.2#后输入reboot回车即可。
在这里插入图片描述

四、修复GRUB扇区故障

1、故障原因

  • MBR中的GRUB引导程序遭到破坏
  • grub.conf文件丢失、引导配置有误

2、故障现象

  • 系统引导停滞,显示“grub”提示符

3、解决思路

  • 尝试手动输入引导命令
  • 进入急救模式,重写或者从备份中恢复grub.conf
  • 向MBR扇区中重建grub程序

4、操作步骤如下

方法一:

以防万一,要是这个文件grub.conf丢了就完了,所以先备份
mv  grub.cfg  /opt  移走
reboot 重启
进入急救模式,选 CD-ROM Drive  回车、进去选择  Troubleshooting  选项
再选择  Rescue a CentOS Linux system  选项
#进入急救模式选择  1   选择  Continue  并  按Enter键继续
#进入急救模式,加载光盘镜像,切换到系统根环境
sh-4.2# chroot /mnt/sysimage     进入光驱系统里的根     当前系统的根
#重新将GRUB引导程序安装到第一块硬盘(/dev/sda)的MRB扇区,如果有多个分区可省略
bash-4.2# grub2-install /dev/sda
#重新构建GRUB菜单的配置文件
bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg
#退出chroot环境,并重启
bash-4.2# exit
sh-4.2# reboot

方法二:

进入急救模式,恢复GRUB引导程序

MBR位于第一块硬盘(/dev/sda)的第一个物理扇区处,总共512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447-510字节中。

mkdir /bak
mkfs.xfs /dev/sdb1
mount /dev/sdb1 /bak
dd if=/dev/sda of=/bak/grub.bak bs=446 count=1
#模拟对MRB中的GRUB引导程序的破坏,但并不破坏分区表
dd if=/dev/zero of=/dev/sda bs=446 count=1
#引导界面进入急救模式,从备份文件中恢复GRUB引导程序
sh-4.2# mkdir /backupdir
sh-4.2# mount /dev/sdb1 /backupdir
sh-4.2# dd if=/backupdir/grub.bak of=/dev/sda
sh-4.2# exit

实战,修复GRUB扇区故障

(1)以防万一,要是这个文件grub.conf丢了就完了,所以先备份

mv  grub.cfg  /opt    # 移走

(2)添加一块硬盘——>重启或扫描——>分区——>格式化并挂载——>移走grub.cfg,制造故障——>reboot重启
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、修改密码

先要关闭一下核心防护  setenforce 0
进入急救模式,选  CD-ROM Drive 回车、进去选择  Troubleshooting 选项
再选择  Rescue a CentOS Linux system   选项
进入急救模式选择 1  选择  Continue  并按Enter键继续
在输入  chroot /mnt/sysimage
       passwd  root  #回车
显示passwd: 输入密码

五、优化启动过程

1、ntsysv工具

  • 提供一个交互式、可视化窗口
  • 可以在字符终端运行
  • 便于集成管理多个服务

2、systemctl工具

  • 不提供交互式、可视化窗口
  • 管理单个服务效率更高

六、系统服务控制与运行级别设置

1、Linux系统运行级别

(1)查看当前级别
runlevel命令:runlevel只能查看切换运行级别与当前运行级别systemctl能查看默认的运行级别。

systemctl工具
(2)临时切换运行级别
init命令

systemctl 工具

2、chkconfig命令

chkconfig命令用于检查,设置系统的各种服务

chkconfig --list #列出所有的系统服务

chkconfig --add httpd #增加httpd服务

chkconfig --del httpd #删除httpd服务

chkconfig --level httpd 2345 on #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态

chkconfig --list #列出系统所有的服务启动情况

chkconfig --list mysqld #列出mysqld服务设置情况

chkconfig --level 35 mysqld on #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭

总结

Linux操作系统和引导过程、系统初始化进程、优化启动过程、系统服务控制与运行级别设置。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值