Linux、引导过程与服务控制

一、linux 系统引导过程

1.1 开机自检

服务器主机开机以后,将根据主板 BIOS 中的设置对 CPU(Central Processing Unit,

中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移

交系统控制权,大多时候会移交给本机硬盘。

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

1.2 MBR引导

当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中 MBR(Master Boot Record,

主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据

MBR 记录中的引导信息调用启动菜单(如 GRUB)。 总结:运行放在MBR扇区里的启动GRUB引导程序

1.3 GRUB菜单

对于 Linux 操作系统来说,GRUB(GRand Unified Bootloader,统一启动加载器)是 使用最为广泛的多系统引导器程序。系统控制权传递给 GRUB 以后,将会显示启动菜单给 用户选择,并根据所选项(或采用默认值)加载 Linux 内核文件,然后将系统控制权转交给 内核。需要注意的是,CentOS 7 采用的是 GRUB2 启动引导器。 总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置

1.4 加载 Linux 内核

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

1.5 init进程初始化

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

二、系统初始化进程 (centos 6和7 的区别)

2.1 centos 6 的引导过程 init 进程

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控制主机

2.2 centos 7(systemd进程)

CentOS7 引导顺序

  1. UEFi 或 BIOS 初始化,运行 POST 开机自检

  2. 选择启动设备

  3. 引导装载程序, centos7 是 grub2

  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

init进程

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

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

2.3 systemd单元类型

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

各个级别的作用:

0 (poweroff.target):关机

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

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

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

6 (reboot.target):重启

centos6 和 7 运行级别的变化:

在 centOS6 上,我们切换级别使用 init,在 centOS7 上虽然也能使用,但是调用的不再是原来的程序了。 centos7 使用 systemctl isolate name.target 来切换 target

修复MBR扇区故障

1.备份MBR扇区数据到其它磁盘( /dev/sdb1)

2.模拟破坏MBR引导扇区

3.引导界面进入急救模式,从备份文件中恢复MBR扇区数据
先加载好光盘镜像,重启操作系统,
当出现安装向导界面时,选择"Troubleshooting"选项,
再选择"Rescue a CentOS Linux system"选项,进入急救模式
选择“1"选择Continue并按Enter 键继续
再次按Enter 键后将进入带“sh-4.2#"提示符的Bash Shell环境


exit 退出后自动重启

修复GRUB 引导故障

进入急救模式,恢复GRUB引导程序
MBR位于第一 块硬盘( /dev/sda) 的第一个物理扇区处,总共512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447 -510字节中

模拟对MRB中的GRUB引导程序的破坏,但并不破坏分区表

引导界面进入急救模式,从备份文件中恢复GRUB引导程序

 

CentOS7遗忘root用户的密码或是重置

1.重启开机按esc,第一行按e在启动GRUB菜单中选择编辑选项,按键 "e" 进入编辑;
2.编辑修改:大约在第16行找到 "ro" 将 "ro" 修改为 " rw init=/sysroot/bin/bash ";
3.按Ctrl+X重启,输入命令进入系统

三、管理服务程序

3.1 systemctl 控制类型

start:启动

stop:停止

restart:重新启动

reload:重新加载

status:查看服务状态

3.2 优化启动过程 

systemctl 控制选项 服务名称 常用的选项有三种:

enable:开机自动启动。

disable:开机自动关闭。

is-enabled:查看开机启动状态。

查看 http.service 处于停止状态;设置开机自启动

重启设备后显示 httpd.service 在运行

使用 systemctl is-enabled 程序 可以查看到开机启动状态

  • 26
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值