linux rhel 7系统启动过程
rhel 7的系统启动过程有别与之前的版本,不仅体现在systemd取代了upstart,而且linux一切皆文件也可以说转变成了一切皆单元,怪不得李那斯如此暴怒,那究竟systemd和upstart有何不同呢
一 ,systemd
1.systemd将运行级别分成了不同的启动单元组 systemctl list-units -t target
查看所有的启动单元
2.ls -l /usr/lib/sysytemd/system/runlevel?.target
可以看到rulevel已经被连接至相应的启动单元组,二每个启动单元组又各自有什么意义呢?
systemctl list-dependencies graphical.target
可以看到在graphical.target所会启动的单元组
3.systemctl get-default
然后ll /etc/systemd/system/default.target
有一个连接指向了multi-user.target
4.systemctl enable postfix.service 将postfix设为开机启动disable关闭开机启动,然后我们去看看/etc/systemd/system/multi-user.target.wants/因为目前我们所处的运行单元组是multi-user.target
会有一个文件postfix.service有个连接指向了usr目录下的postfix.service单元,当disable之后可以看看此文件还在不在,如果手动删除这个文件呢,会不会也不能自动启动呢,当然也是能达到目的的,不过不推荐这样做,如果手动将default.target文件连接到一个启动单元组上也是可以更改默认启动单元组的
像这样就可以 ln -s default.target /usr/lib/systemd/system/graphical.target
5.systemctl mask postfix.service 这样postfix服务将无论如何也将启动不了因为
postfix.service文件被指向了/dev/null
现在是不是对systemd管理服务的方式又那么点清楚了,而且systemd可以根据需要启动服务,比如只有当文档压到打印队列时,systemd才会去启动打印的服务,所以systemd的启动速度是很快的.
6.以上是systemd启动服务,systemd在管理服务时比如结束掉一个进程时为了能结束掉此服务启动的其他进程,使用cgroup来划分组将服务和服务会启动的其他进程加到同一个cgroup中一起管理:systemd-cgls 命令查看所有cgroups
加上-k选项还可以显示内核相关的内容
二,在了解了sytemd之后,可以开始系统启动的过程了
1.加电自检,首先运行ROM中的BIOS/UEFI,(UEFI是新的自检程序在各方面都可以做的比BIOS好),接着BIOS做一些列检查,如果听到嘀嘀嘀的声音可能是有问题了,当BIOS探测到显卡设别后将会在屏幕上打印这些问题
2.BIOS根据设置去相应的硬盘MBR分区寻找bootloader程序,这里rhel 7用的是grub2,grub2分为两部分第一部分在MBR上,作用是找到并运行第二部分
3.grub2运行后根据设置加载内核文件和initramfs文件(一个辅助内核去进一步操作的虚拟文件系统)
4.grub2将控制权交给内核,内核启动第一个程序,那就是systemd,接下来就是我们在上面叙述的过程了
三,grub2
1.grub2的功能先当强悍,他的配置文件是/boot/grub2/grub.cgf,很复杂不推荐去修改,我们可以通过grub2-mkconfig -o /boot/grub2/grub.cfg来生成,命令会根据/etc/default/grub和/etc/grub.d/下的脚本来生成配置
cat /etc/default/grub
(1)GRUB_DEFAULT=saved 设置默认启动的内核,saved的值从0开始,0指第一个,1指第二个内核,依此类推:grub2-set-default命令可设置该参数
(2)然后是倒数第二行rd,lvm.lv=rhel/root ;rd.lvm.lv=rhel/swap 分别指明根和交换分区;rhel quiet 指默认启动graphical.target且静默模式不输出任何内容,可以改写成system.unit=multi-user.target或其他;在启动界面按e进入编辑界面在linux 16的末尾段可以看到这些内容,也可以在那里改动,按CTRL + x 启动
其他参数保持默认即可
4.grub2的命令行参数,在此界面按C进入
手动启动系统的代码,有兴趣的可以试试
1.insmod lvm 加载lvm卷
2.search.file /grub2/grub.cfg 找到/boot所在分区,给第5步用
3.search.file /etc/fstab 找到根给第4步用
4.set root=(lvm/rhel-root) 设置grub2的根路径
5.linux (hd0,msdos1)/vmlinuz-********.x86_64 root=/dev/mapper/rhel-root
指明内核文件TAB可补全,root系统的根设置,注意和第4步不同,rhel-root是lvm卷名,同意在/dev/mapper/下放
6.initrd (hd0,msods1)/initramfs-*********.img 指明initramfs文件,可TAB补全
7.boot 启动系统
linux rhel 7系统启动过程相关推荐
- Linux入门之系统启动过程及初始化----“翻滚吧,牛宝宝”
每当你按下开机电源键的时候,总是怀着一颗虔诚的心,抱着求神拜佛的念头,祈求机器顺利开机,不要出幺蛾子:每当你看到屏幕上输出的一行又一行的信息,绿的OK,红的failed,迷茫的眼神穿透了显示器:这一切 ...
- 嵌入式linux的u-boot系统启动过程,嵌入式linux操作系统u-boot启动顺序以及代码解析...
嵌入式linux操作系统u-boot启动顺序以及代码解析 (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 Bootloader/u-bo ...
- 嵌入式linux的u-boot系统启动过程,【站友投递】U-boot启动过程详解
[站友投递]U-boot启动过程详解 来源:互联网 作者:denny 时间:2009-03-18 Tag:点击: 一.U-BOOT的目录结构 u-boot目录下有18个子目录,分别存放管理不通的源程序 ...
- linux版本及系统启动过程
目录 一 版本查询命令 1 查看当前使用Linux内核版本 2 搜索目前存在的内核版本 3 查看Linux系统版本 4 glibc版本 二 UNIX标准 1 ANSI C 2.POSIX 3 SVID ...
- rhel系统启动过程_技术|Linux 开机引导和启动过程详解
你是否曾经对操作系统为何能够执行应用程序而感到疑惑?那么本文将为你揭开操作系统引导与启动的面纱. 理解操作系统开机引导和启动过程对于配置操作系统和解决相关启动问题是至关重要的.该文章陈述了 GRUB2 ...
- rhel系统启动过程_详解linux系统的启动过程及系统初始化
一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取i ...
- 系统启动过程Linux
操作系统的启动分为两个阶段:引导boot和启动startup.引导阶段开始于打开电源开关,结束于内核初始化完成和 systemd 进程成功运行.启动阶段接管了剩余工作,直到操作系统进入可操作状态. 总 ...
- linux系统启动过程(三)
Linux 系统启动过程 linux启动时我们会看到许多启动信息. Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导. 运行 init. 系统初始化. 建立终端 ...
- 【Notes9】Linux系统启动过程,数据库,驱动,i2c-tools,shell
文章目录 1.Linux系统启动过程:ukr,ubuntu开机引导文件/etc/default/grub 2.数据库:存储过程(PL/SQL代码集,像没有返回值的自定义函数)和函数需要用户显示调用才执 ...
- 剖析Linux系统启动过程
http://www.5dmail.net/html/2004-11-29/20041129102711.htm 内容提要 本文以RedHat9.0和i386平台为例,剖析了从用户打开电源直到屏幕出现 ...
最新文章
- 几行代码搞定ML模型,低代码机器学习Python库正式开源
- Mac zsh not found jupyter notebook
- 【题型探究】公约数之和
- MongoDB 基础用法及学习笔记
- Python老男孩 day16 函数(六) 匿名函数
- 零基础入门人工智能有门槛吗?学会这些就够了
- 第二次冲刺 站立会议5
- OSPF协议及链路状态算法(详解)
- 2021年中国手机游戏行业研究报告
- 食品工程计算机辅助设计,食品工程CAD技术应用及实例
- 十分钟快速了解《你不知道的 JavaScript》(上卷)
- BZOJ2160 拉拉队排练【Manacher】
- VS报错——无法打开文件XXX.lib
- 物料编码的制定(资料收集)
- 深度学习双显卡配置_gpu – 我可以在笔记本电脑上使用intel高清显卡实现深度学习模型...
- 简易交通灯设计——数电课设
- 发现一个大牛Scott Lowe博客
- Java打造RPC框架(四):支持zookeeper与负载均衡
- 华大单片机移植TencentOS
- 帆软单元格格式属性设置
热门文章
- java 开源发布系统_18个Java开源CMS系统一览
- 【Spark重点难点08】Spark3.0中的AQE和DPP小总结
- Qt 之 QQ系统表情(一)
- 计算机毕业设计ssm基于HTML5的环保公益网站d4sf1系统+程序+源码+lw+远程部署
- 2021版Java同步器教程03:如何使用同步器 CyclicBarrier?
- HikariCP连接池
- python拼音名_python生成随机中文姓名和拼音
- Linux学习笔记——SecureCRT 8版本中文破解版
- O'Stolz定理的应用
- compileflow 淘宝工作流引擎