Linux启动流程CentOS6和7的区别
目
录
CentOS6启动流程

https://linux.cn/article-8807-1.html
BIOS
开机自检,硬件自检
MBR
MBR磁盘分区是一种使用最为广泛的分区结构,它也被称为DOS分区结构,但它并不仅仅应用于 Windows系统平台,也应用于Linux,基于X86的UNIX等系统平台。它位于磁盘的0号扇区(一扇 区等于512字节),是一个重要的扇区(简称MBR扇区)。
1、MBR只支持2TB的硬盘
1、只支持4个主分区
MBR:(master boot loade)主引导记录 446B
DPT:(disk partition table)磁盘分区表 64B
Magic:魔术字55AA 2B
磁盘扇区:0-0-1扇区 引导扇区
磁盘有三个逻辑概念:磁道,柱面,扇区,512B
GRUB
1、grub第1.5和2阶段,信息默认存放在扇区中,如果使用grub-install生成的2阶段的文件是存放在/boot分区中的。
2、为了加载内核系统,不得不加载/boot分区,而加载/boot分区,需要有/boot分区的驱动,/boot分区驱动是放在/boot分区中 的,啊,我们好像进入了死循环了,Linux是怎么解决的呢?就是靠放在1.5阶段中的数据,是放在第一个扇区后的后续扇 区 中,具体占用多少字节,不太清楚,只知道1.5阶段和2阶段总共27个扇区。
3、stage1.5:
mbr之后的扇区,识别stage2所在的分区上的文件系统
4、stage2:
开机启动的时候看到的Grub选项、信息,还有修改GRUB背景等功能都是stage2提供的,stage2会去读入 /boot/grub/grub.conf 或者menu.lst等配置文件
操作系统引导菜单
windows:msconfig
linux:GRUB
注意:windows和linux双系统的时候,默认GRUB来引导
kernel(加载内核)
读取grub.conf文件以确定内核的参数,准备启动内核
init进程
1、读取/etc/inittab文件
inittab文件里面定义了系统默认运行级别,这一步做了一些工作如下:
a)初始运行级别(RUN LEVEL)
b)系统初始化脚本
c)对应运行级别的脚本目录
d)定义UPS电源终端/恢复脚本
e)在虚拟控制台生成getty,以生成终端
f)在运行级别5初始化X
2、执行/etc/rc.d/rc.sysinit程序
系统初始化一些脚本,主要完成以下工作
a)设置主机名
b)设置欢迎信息
c)激活udev和selinux可以在grub.conf中,kernel行添加selinux=0以关闭selinux
d)挂载/etc/fstab文件中定义的文件系统
e)检测根文件系统,并以读写方式重新挂载根文件系统
f)设置系统时钟
g)激活swap设备
h)根据/etc/sysctl.conf文件设置内核参数
i)激活lvm及software raid设备
j)加载额外设备的驱动程序
k)清理操作
3、/etc/rc#.d/文件(各种服务)
里面定义的是各种服务的启动脚本,可以ls查看,S开头代表开机启动的服务,K开头的是关机要执行的任务。#代表数字, 一个数字代表一个运行级别,共7个运行级别,这里就不多说了
4、/etc/rc.d/rc.local文件
这里面可以自定义开机启动的命令。
CentOS7启动流程Systemd概述
centos7
- 首先BIOS开机自检
- 然后进入启动菜单
- 然后内核进行初始化
- 最后启动初始化进程
systemd
初始化进程作为Linux系统的第一个进程,它需要完成Linux系统中相关的初始化工作,为用户提供合适的工作环境。RHEL/CentOS 7系统已经替换掉了熟悉的初始化进程服务System V init正式采用全新的systemd初始化进程服务。如果您之前学习的是RHEL/CentOS 6系统,可能会不习惯。systemd初始化进程服务采用了并发启动机制,开机速度得到了不小的提升。
CentOS6系统, 管理员可以使用如下指令来管理服务器的启动与停止
//关机相关命令
shutdown -h now //立即关机,常用
init 0 //切换系统关机级别,容易理解
//重启相关命令
reboot //重启命令,常用
init 6 //切换系统重启级别,容易理解
CentOS7系统, 管理员可以使用systemctl命令来管理服务器启动与停止
//关机相关命令
systemctl poweroff //立即关机,常用
//重启相关命令
systemctl reboot //重启命令,常用
Systemd目标名称
无论如何, RHEL/CentOS 7已经没有了"运行级别"这个概念,Linux系统在启动时要进行大量的初始化工作,比如挂载文件系统和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元Unit, systemd用目标target代替了System V init中运行级别的概念,这两者的区别如下所示
|
System V init运行级别 |
systemd目标名称 |
作用 |
|
0 |
runlevel0.target, poweroff.target |
关机 |
|
1 |
runlevel1.target, rescue.target |
单用户模式 |
|
2 |
runlevel2.target, multi-user.target |
|
|
3 |
runlevel3.target, multi-user.target |
多用户的文本界面 |
|
4 |
runlevel4.target, multi-user.target |
|
|
5 |
runlevel5.target, graphical.target |
多用户的图形界面 |
|
6 |
runlevel6.target, reboot.target |
重启 |
|
emergency |
emergency.target |
救援(急救)模式 |
RHEL/CentOS6系统运行级别管理
//查看运行级别
[root@student ~]# runlevel
N 3 //如果N是其他数字,代表上一次运行级别
//切换运行级别
[root@student ~]# init 3
//永久修改配置文件
[root@student ~]# /etc/inittab
RHEL/CentOS7系统目标管理
//查看系统默认启动运行级别
[root@student ~]# systemctl get-default
//查看系统有哪些target
[root@oldboy ~]# ls /lib/systemd/system/*.target
/lib/systemd/system/basic.target /lib/systemd/system/poweroff.target
……
//修改默认启动运行级别(永久生效)
[root@student ~]# systemctl set-default TARGET.target
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
systemd服务管理
由于之前长期使用RHEL/CentOS 6系统, 已经习惯使用service chkconfig等命令来管理系统服务,但在RHEL/CentOS 7系统中是使用systemctl命令来管理服务的。
如下是RHEL/CentOS 6系统中System V init命令与RHEL/CentOS 7系统中systemctl命令的对比,后续课程中会经常用到它们。
systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令
|
System V init(6系统) |
systemctl命令(7系统) |
作用 |
|
service NAME start |
systemctl start NAME.service |
启动服务 |
|
service NAME stop |
systemctl stop NAME.service |
停止服务 |
|
service NAME restart |
systemctl restart NAME.service |
重启服务 |
|
service NAME reload |
systemctl reload NAME.service |
重新加载配置(不终止服务) |
|
service NAME status |
systemctl status NAME.servre 查 |
看服务运行状态 |
|
systemctl is-active sshd.service |
查看服务是否在运行中 |
|
|
systemctl mask NAME.servre |
禁止服务运行 |
|
|
systemctl unmask NAME.servre |
取消禁止服务运行 |
systemctl设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令
|
System V init(6系统) |
systemctl命令(7系统) |
作用 |
|
chkconfig NAME on |
systemctl enable NAME.service |
开机自动启动 |
|
chkconfig NAME off |
systemctl disable NAME.service |
开机不自动启动 |
|
chkconfig –list |
systemctl list-unit-files |
查看各个级别下服务的启动与禁用 |
|
chkconfig –list NAME |
systemctl is-enabled NAME.service |
查看特定服务是否为开机自启动 |
|
chkconfig–add NAME |
systemctl daemon-reload |
创建新服务文件或者变更设置 |
systemctl服务状态说明
|
服务状态 |
状态说明 |
|
loaded |
服务单元的配置文件已经被处理 |
|
active(running) |
服务的一个或多个进程在运行中 |
|
active(exited) |
一次性运行的服务成功被执行并退出(服务运行后完成任务,相关进程会自动退出) |
|
active(waiting) |
服务已经运行但在等待某个事件 |
|
inactive |
服务没有在运行 |
|
enabled |
服务设定为开机运行 |
|
disabled |
服务设定为开机不运行 |
|
static |
服务不能被设定开机启动,但可以由其他服务启动该服务 |
Linux启动流程CentOS6和7的区别的更多相关文章
- Linux启动流程CentOS6
1.运行级别 0 关机 1 单用户模式,可以想象为Windows的安全模式,主要用与系统修复 2 不完全的命令行模式,不含NFS服务 3 完全的命令行模式,就是标准字符界面 4 系统保留 5 图像模式 ...
- Linux启动流程(CentOS6)
内核级别: (POST)BIOS加电自检-->(Boot Sequence)从BIOS中读取启动顺序-->读取MBR中的bootloader-->加载内核-->读取伪根--&g ...
- Linux启动流程和服务管理(init和systemd)
目录 一:Linux启动流程 init和Systemd的区别 二:Linux服务管理(service,systemctl) 一:Linux启动流程 Rhel6启动过程: Rhel7启动过程: GRUB ...
- 20、linux启动流程和救援模式
1.Linux启动流程 2.Linux运行级别 1.什么是运行级别,运行级别就是操作系统当前正在运行的功能级别 System V init运行级别 systemd目标名称 作用 0 runlevel0 ...
- linux启动流程及自定义gurb
linux 启动流程 POST BIOS(boot sequence) 所选择的启动设备次序的MBR中是否有引导程序, ----> MBR(bootloader) 提供内核列表 -------& ...
- linux启动流程
看了深入理解linux内核一书的最后对linux启动流程的介绍,下面就把我能理解的写一下吧: bios(硬件加电自检POST,寻找第一个启动设备) the boot loader(可以从硬盘启动也可以 ...
- Linux启动流程详解
在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多:一般就是通电.BIOS.主引导记录.操作系统这四步.所以我们一般认为加载内核是linux启动流程的第一步. 第一步.加载内核 操作系统接 ...
- Linux启动流程详解【转载】
在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多:一般就是通电.BIOS.主引导记录.操作系统这四步.所以我们一般认为加载内核是linux启动流程的第一步. 第一步.加载内核 操作系统接 ...
- 记录Linux启动流程的工具bootchart
/********************************************************************* * Author : Samson * Date ...
随机推荐
- 第二类Stirling数初探 By cellur925
上午noi.ac崩崩崩了,栽在组合数学上,虽说最后在辰哥&Chemist的指导下A掉了此题,也发现自己组合数学太弱了qwq. 在luogu上找题,结果找到了一个第二类斯特林数的题(还是双倍经验 ...
- scrapy将爬取到的数据存入elasticsearch
pip安装 elasticsearch-dsl的包, 是elasticsearch提供给python 的接口 if __name__ == "__main__": 这个用来调试,还 ...
- SQL - 单引号和双引号的区别
原文转载至:SQL中的单引号和双引号有区别吗? 在标准 SQL 中,字符串使用的是单引号. 如果字符串本身也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义). 但在其它 ...
- Centos6.8 搭建Lvs+Keepalived
Keepalived keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层.第4层和第7层交换.Keepalived是自动完成,不需人工干涉. 简 ...
- Linux源码编译处理
1. 解决依赖问题 查询需要的依赖软件,提前安装好若使用命令行安装,一般使用默认路径:使用源码安装,则自定义安装路径,后续可能需要进行路径配置PS:可能需要在Makefile等配置文件中添加相关库文件 ...
- centOS 部署服务器(一)
接下来我所写的博客仅仅是为了记录我的学习过程,与其他无关. 由于公司换用了亚马逊服务器,用的是它的RDS数据库,所以就没有像以前的项目部署的时候使用mysql,不过要下载安装mysql-proxy,字 ...
- 题解报告:NYOJ #78 圈水池(打印凸包顶点)
描述: 有一个牧场,牧场上有很多个供水装置,现在牧场的主人想要用篱笆把这些供水装置圈起来,以防止不是自己的牲畜来喝水,各个水池都标有各自的坐标,现在要你写一个程序利用最短的篱笆将这些供水装置圈起来!( ...
- ubuntu中mysql安装失败
在ubuntu中mysql安装失败后,卸载重新安装还是安装失败,之后找了资料说是卸载的不干净,然后进行下面操作,重新安装成功. 解决办法如下: sudo rm /var/lib/mysql/ -Rsu ...
- AJPFX关于学习java遇到的问题:对算法和数据结构不熟悉
为什么我先拿“数据结构和算法”说事捏?这玩意是写程序最最基本的东东.不管你使用 Java 还是其它的什么语言,都离不开它.而且这玩意是跨语言的,学好之后不管在哪门语言中都能用得上. 既然“数据结构和算 ...
- JVM(HotSpot)7种垃圾收集器
JVM(HotSpot)7种垃圾收集器 7种垃圾收集器作用于不同的分代,如果两个收集器之间存在连续,就说明他们可以搭配使用. 从JDK1.3到现在,从Serial收集器->Parallel收集器 ...