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 ...
随机推荐
- NOIp2017真题模拟赛 By cellur925
果然我还是最菜的==不接受反驳 (先考了day2喵喵喵) Day2 T1:奶酪 期望得分:100分 实际得分:100分 考察:并查集 思路:这题其实之前做过了==.思路还是比较清晰的,读入时预处理出可 ...
- Ubuntu还是windows呢
本来想把才换不久的电脑也换成Ubuntu,犹豫再三,还是把这个老电脑作为Ubuntu的主力机把,毕竟大屏幕看着也得劲 新电脑还是win10吧,毕竟现在速度还是刷刷的,等过几年速度降下来了,就换成Ubu ...
- .Net开发人员必备工具下载
.Net开发人员必备工具下载 本人亲测下载地址: Win8.1破解工具下载: http://pan.baidu.com/s/1eQf2UiQ 可激活版本 Windows Vista Busines ...
- 跟我一起玩Win32开发(4):创建菜单
也不知道发生什么事情,CSDN把我的文章弄到首页,结果有不少说我在误人子弟,是啊,我去年就说过了,如果你要成为砖家级人物,请远离我的博客,我这个人没什么特长,唯一厉害的一点就是不相信权威,鄙视砖家,所 ...
- Voting CodeForces - 749C
有点意思的题 Voting CodeForces - 749C 题意:有n个人投票,每次按照第1个人~第n个人的顺序发言,如果到某个人发言时他已经被禁止发言就跳过,每个人发言时可以禁止另一个人发言或什 ...
- CodeForces - 816C Karen and Game(简单模拟)
Problem Description On the way to school, Karen became fixated on the puzzle game on her phone! The ...
- ios微信浏览器click事件不起作用的解决方法
$(document).on( "click", ".weui_cell", function (event) {alert(); }); JS代码是这样的,h ...
- 修改他人电脑的Windows登录密码
在别人电脑已登录Windows的情况下: 打开控制面板 -> 管理工具 -> 计算机管理 或者 对Win图标单击右键 -> 计算机管理 -> 本地用户和组 -> 用 ...
- joomla多语言建站之默认前台语言设置
joomla多语言建站后,如果想设置其中一种语言为默认前台语言,即: 从后台点击“Site Name”跳转时: 访问域名时: 页面自动切换至某一种语言,可以在后台通过“语言管理”模块来实现,将“网站前 ...
- 【数据分析 R语言实战】学习笔记 第五章 数据的描述性分析(下)
5.6 多组数据分析及R实现 5.6.1 多组数据的统计分析 > group=read.csv("C:/Program Files/RStudio/002582.csv") ...