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 ...
随机推荐
- bzoj 4530: [Bjoi2014]大融合【LCT】
新姿势,一般来讲LCT只能维护splay重边里的数据,而这里要求维护整颗子树的size 多维护一个sq表示当前点轻儿子的size和,si表示包括轻重边的整颗子树的大小 然后需要改sq的地方是link和 ...
- bzoj 3998: [TJOI2015]弦论【SA+二分||SAM】
SA的话t==0直接预处理出每个后缀的不同串贡献二分即可,然后t==1就按字典序枚举后缀,然后跳右端点计算和当前后缀的前缀相同的子串个数,直到第k个 不过bzoj上会T #include<ios ...
- bzoj 1076: [SCOI2008]奖励关【状压dp+概率dp】
设f[i][s]为前i步,选的礼物集合为s的方案数,然而并不会转移-- 看了hzwer的blog,发现要倒着转移,然后答案就是f[1][0] 妙啊 #include<iostream> # ...
- loj#2541. 「PKUWC2018」猎人杀
传送门 思路太清奇了-- 考虑容斥,即枚举至少有哪几个是在\(1\)号之后被杀的.设\(A=\sum_{i=1}^nw_i\),\(S\)为那几个在\(1\)号之后被杀的人的\(w\)之和.关于杀了人 ...
- Web站点抓取工具webhttrack
近来发现Ubuntu下一个很好用的web站点抓取工具webhttrack,能够将给定网址的站点抓取到本地的目录中,并实现离线浏览,很实用. 1.安装webhttrack ubuntu 16.04的官方 ...
- 阿里云服务器及部署mysql
可通过百度获取内容不再赘述. 远程连接: 远程连接阿里云服务器需在服务器上开放443端口,方法自行百度 win10通过系统自带远程连接服务连接时需安装凭据: http://blog.csdn.ne ...
- Calculation 2 HDU - 3501
https://vjudge.net/problem/HDU-3501 不会做啊...记一下做法 做法是计算小于n且与n互质的数的和:根据如果gcd(i,n)==1,那么gcd(n-i,n)==1,对 ...
- 人品问题 树形dp
题目 网上出现了一种高科技产品——人品测试器.只要你把你的真实姓名输入进去,系统将自动输出你的人品指数.把儿不相信自己的人品为0.经过了许多研究后,把儿得出了一个更为科学的人品计算方法.这种方法的理论 ...
- jQuery attr() 源码解读
我们知道,$().attr()实质上是内部调用了jQuery.access方法,在调用时jQuery.attr作为回调传入.在通过种种判断(参看jQuery.access()方法)之后,取值和赋值最后 ...
- Python打开目录下所有文件
用Python打开指定目录下所有文件,统计文件里特定的字段信息. 这里是先进入2017-02-25到2017-03-03目录,然后进入特定IP段目录下,最后打开文件进行统计 import os, gl ...