引导过程与服务控制

目录

一、Linux系统引导过程

1.1 引导过程总览

1.2 引导过程简述

1.3 centos 6系统启动过程

1.4 CentOS7 引导顺序

补充:GRUB2与grub的区别

1.5 总结centos 5/6/7 三个系统版本启动过程

二、排除启动类故障

2.1 修复MBR扇区故障

故障原因

故障现象

解决思路

操作演示

2.2 修复GRUB引导故障

故障原因

故障现象

解决思路

操作演示

2.3 遗忘root用户密码

故障原因

故障现象

解决思路

操作演示

三、服务控制及切换运行级别

3.1 运行级别所对应的Systemd目标

3.1.1 各个级别的作用

3.1.2 centos 6

总结:centos6 和7 运行级别的区别

3.2 服务控制相关命令

3.2.1 systemctl  控制类型 服务名称 

3.2.2 Linux系统的运行级别

四、优化启动过程

4.1 ntsysv工具

4.2 systemctl


一、Linux系统引导过程

1.1 引导过程总览

1.2 引导过程简述

  • 开机自检:检测出第一个能够引导系统的设备
  • MBR 引导:运行放在MBR扇区里的启动GRUB引导程序
  • GRUB 菜单:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置
  • 加载 Linux 内核:把内核和镜像文件系统加载到内存中
  • init 进程初始化:加载硬件驱动程序,内核把init进程加载到内存中运行

1.3 centos 6系统启动过程

  1. 加载BIOS的硬件信息,获取第一个启动设备
  2. 读取第一个启动设备MBR的引导加载程序(grub)的启动信息
  3. 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
  4. 核心执行init程序,并获取默认的运行信息
  5. init程序执行/etc/rc.d/rc.sysinit文件,重新挂载根文件系统
  6. 启动核心的外挂模块
  7. init执行运行的各个批处理文件(scripts)
  8. init执行/etc/rc.d/rc.local
  9. 执行/bin/login程序,等待用户登录
  10. 登录之后开始以Shell控制主机

1.4 CentOS7 引导顺序

1. UEFi 或 BIOS 初始化,运行 POST 开机自检
2. 选择启动设备
3. 引导装载程序, centos7 是 grub2(centos 6 是grub)
4. 加载装载程序的配置文件:/etc/grub.d/(根据此目录下文件设置 grub.cfg)
                                               /etc/default/grub(根据此文件设置 grub.cfg) /boot/grub2/grub.cfg
5. 加载内核选项
6. 加载 initramfs 初始化伪文件系统
(虚拟文件系统,/boot/initramfs 能通过 boot loader 加载到内存中。用于提供启动过程中的重要内核模块)
7. 内核初始化,centos7 使用 systemd 代替 init
8. 执行 initrd.target 所有单元,包括挂载/etc/fstab
9. 从 initramfs 根文件系统切换到磁盘根目录
10. systemd 执行默认 target 配置,配置文件/etc/systemd/system/default.target
11. systemd 执行 sysinit.target 初始化系统及 basic.target 准备操作系统
12. systemd 启动 multi-user.target 下的本机与服务器服务  inti 3
13. systemd 执行 multi-user.target 下的/etc/rc.d/rc.local
14. Systemd 执行 multi-user.target 下的 getty.target 及登录服务
15. systemd 执行 graphical 需要的服务   init 5

补充:GRUB2与grub的区别

  • 支持多种文件系统格式
  • 在grub中stage1  stage1-5 stage2已经被取消
  • grub2使用模块机制,通过动态加载需要的模块来扩展功能,这样做的好处允许core镜像更小
  • 支持自动解压
  • 配置文件的不同最明显的:

       /boot/grub/grub.conf已经被/boot/grub2/grub.cfg

       /boot/grub2/grub.cfg(即使你用ROOT用户也不要编辑,该文件会在每次执行grub2-mkconfig后自动执行)

       /etc/default/grub  是改变引导菜单外观的主要配置文件

       /etc/grub.d/*  各种用于生成grub.cfg的脚本文件,每次执行grub2-mkconfig时会执行里面的文件

1.5 总结centos 5/6/7 三个系统版本启动过程

init进程介绍

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

Systemd介绍

  • Systemd是Linux操作系统的一种init软件
  • CentoS7中采用全新的Systemd启动方式,取代传统的SysVinit
  • CentOS7中运行的第一个init进程是/ib/systemd/systemd

init:①启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。

         ②是启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长

systemd:首先它并不是一个命令,而是一组命令,它涉及到系统方方面面的并行

二、排除启动类故障

2.1 修复MBR扇区故障

故障原因

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

故障现象

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

解决思路

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

操作演示

 1、添加一块新硬盘

2、用fdisk工具

3、进行格式化

4、建立目录。并挂载

5、先写入备份文件,再对磁盘进行误写,重启

6、

2.2 修复GRUB引导故障

故障原因

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

故障现象

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

解决思路

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

操作演示

第一种方法:

手动输入引导命令(笨拙繁琐,不建议使用)

grub> insmod xfs                                                        #加载指定的模块到内核

grub> linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=8fd74986-ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quiet

LANG=zh_CN.UTF-8                                                  #内核的名字及位置等信息

grub> initrd16 /initramfs-3.10.0-693.e17.x86_64.img #镜像系统文件

grub> boot                                                                   #引导boot

第二种方法

与问题一中前面步骤一样一样

问题2

2.3 遗忘root用户密码

故障原因

遗忘root用户的密码

故障现象

无法进行需要root权限的管理操作
若没有其他可用帐号,将无法登录系统

解决思路

进入急救模式,重设密码

操作演示

方法一:

第一行按e在启动GRUB菜单中选择编辑选项,按键 "e" 进入编辑;

CTRL+x退出重启,输入命令进入系统

sh-4.2#chroot /sysroot

字符集修改 : sh-4.2#LANG=en_US.UFT-8

重置root密码 :sh-4.2# passwd root 

退出chroot环境,并重启 bash-4.2# exit

                                            sh-4.2# init 6

结束

方法二:

进入急救模式,加载系统镜像,c切换到系统根环境

sh-4.2# chroot /mnt/sysimage

#重设root用户密码 bash-4.2# passwd root

三、服务控制及切换运行级别

3.1 运行级别所对应的Systemd目标

3.1.1 各个级别的作用

0(poweroff.target):关机

1(rescue.target):单用户模式

2、3、4(mulit-user.target):多用的文本界面

5(graphical.target):多用的图形界面

6(reboot.target):重启

3.1.2 centos 6

  • 0:系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的
  • 1:单用户模式,root权限,用于系统维护,禁止远程登录(只能通过实机进去),该模式的进入方式百度操作即可;就像windows下的安全模式登录;(进入单用户模式的时候root不需要密码就可以登录,所以在此模式下可以修改root密码)
  • 2:多用户模式,没有NFS和网络支持; 无网络
  • 3:完整的多用户文本模式,有NFS和网络,登录后进入控制台命令行模式
  • 4:系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电池用尽时,可以切换到这个模式来做一些设置
  • 5:图形化模式,登录后进入图形GUI模式,X windows系
  • 6:重启模式,默认运行级别不能设为6,否则不能正常启动。运行init6机器就会重启

总结:centos6 和7 运行级别的区别

3.2 服务控制相关命令

3.2.1 systemctl  控制类型 服务名称 

控制类型
start:启动
stop:停止
restart:重新启动
reload:重新加载
status:查看服务状态

3.2.2 Linux系统的运行级别

runlevel:显示结果中的两个字符分别表示切换前的目标、当前的目标。若之前尚未切换过运行级                   别,则第 1 列将显示“N”
:[root@localhost ~]# runlevel 
       3 5

systemctl get-default:查看系统默认的运行级别

systemctl set-default init 3:设置永久运行级别

init 3:设置临时运行级别

chkconfig工具::编译安装之后的服务不能使用系统工具进行对服务的控制

格式: chkconfig --list [服务名称]

chkconfig --add 服务名称

chkconfig --level 级别列表服务名on/off

chkconfig --add httpd chkconfig --level 35 httpd on

四、优化启动过程

4.1 ntsysv工具

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

操作:

方向键:移动

空格:    对服务是否表示自启动的确认

tab:      切换

4.2 systemctl

作用:         不提供交互式、可视化窗口
                    管理单个服务效率更高
操作命令: 

systemctl is-enabled 服务:                     查看服务的启动状态

systemctl enable/disable 服务:              设置服务的启动状态

systemctl list-units --type=service:         查看当前系统中所有已 激活的系统服务

systemctl list-unit-files |grep enabled:    查看所有开机自启动的服务器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值