linux启动引导分区设置,Linux系统启动引导过程和服务控制-程序员宅基地

技术标签: linux启动引导分区设置  

Linux系统刚入门的小伙伴们是不是还在迷惑到底系统从我们按下电源键的那一刻,是如何进行一步一步运行的,知道我们输入用户名和密码进入系统,来操作电脑,今天我们就来写一下开机的启动过程以及相关服务的控制。

一. 系统引导流程:

5897f194d1689a1299fad803e89b8a69.png

1 . 开机加电,BIOS对硬件加电自检

加电自检,检测硬件设备,这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等

2 . 检查启动顺序,从硬盘引导,读取MBR(446字节)

硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,主引导程序的任务就是查找并且加载处在硬盘分区上的次引导程序。通过分区表查找活动分区,并将处在活动分区的次引导加载程序读取到内存里面运行。

3 . 读取GRUB的引导

次引导加载程序得主要的功能就是加载linux内核,次引导程序(boot loader)会引导操作系统。当机器引导它的操作系统时,BIOS会读取引导介质上最前面的512字节(主引导记录,即master boot record,MBR)。在单一的MBR中只能存储一个操作系统的引导记录,所以当需要多个操作系统时就会出现问题,因此需要更灵活的引导加载程序

次引导加载程序就会在内存运行起来。系统读取内存中的grub配置信息(一般为menu.lst或grub.lst)就会出现GRUB图形界面,让用户选择加载什么样的内核并依照此配置信息来启动不同的操作系统。

如何查看你MBR的内容,那么你可以使用以下命令来查看:

[root@localhost ~]# dd if=/dev/sda of=mbr.bin bs=512 count=1 #此处的/dev/sda为你的硬盘的类型,本次我们使用的为scsi,表示为/dev/sda

1+0 records in

1+0 records out

512 bytes (512 B) copied, 0.000280189 s, 1.8 MB/s

[root@localhost ~]# od -xa mbr.bin #此处必须root身份运行的dd命令,读取你的第一个集成电子驱动器或者IDE驱动器的前512字节,并将他们写入

mbr.bim文件.od命令则是以十六进制和ASCII码形式打印出这个二进制文件

4 . 加载内核文件 (/boot目录下)

用户选择要加载的内核之后,次引导加载程序(GRUB)就会根据/boot/grub.conf配置文件中所设置的信息,从/boot/所在的分区上读取Linux内核映像,然后把内核映像加载到内存中并把控制权交给Linux内核。

5 . 运行init进程,永远是第一个进程

A.读取/etc/inittab配置文件

内核被加载后,第一个运行的程序便是/sbin/init(变成一个用户进程),该程序会读取/etc/inittab配置文件,init根据/etc/inittab配置文件来执行相应的脚本进行系统初始化,如设置键盘、字体,装载模块,设置网络等.其实/etc/inittab文件最主要的作用就是设定Linux的运行等级。

【Linux下运行级别设定:】

0 - halt (Do NOT set initdefault to this) #关机

1 - Single user mode #单用户模式

2 - Multiuser, without NFS (The same as 3, if you do not have networking) #字符界面,多用户,无网络模式

3 - Full multiuser mode #字符界面,多用户模式

4 - unused #保留,暂时没有被使用

5 - X11 #图形界面,多用户模式

6 - reboot (Do NOT set initdefault to this) #重新启动

设定形式是“:id:3:initdefault:”,表明Linux运行在等级3上

13bed8e5d787ae7ec8b3f45bdc47834b.png

B.做系统初始化/etc/rc.d/rc.sysinit

在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。

C.控制启动哪些程序和服务/etc/rc.d/rc,依据运行级别决定,按照当前的运行级别,执行相应的运行脚本。

根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务

D. 最后运行一个脚本/etc/rc.d/rc.local(让管理员自定义启动命令)

rc.local配置文件就是在一切初始化工作后,Linux留给用户进行个性化的地方,你可以进行一些开机加载的自定义设置,只限制于当前登录的用的个人设置。

E.执行/bin/login程序,进入登录状态

到了加载此步骤的时候,那么系统已经运行到提醒用户进行用户名和密码输入登陆系统的过程了,到此为止,那么一系列的从你把主机的电源打开一直到你输入用户名和密码登陆系统之间全部启动过程。

二. 服务的控制和优化:

服务的分类:

类别

特点

独立运行的服务

响应快,但是占系统资源多

依赖xinetd服务运行的服务

响应慢些,但是占资源少

系统服务控制

1 . 常用方式:

- service 服务名称 控制类型

- /etc/rc.d/init.d服务名称 控制类型

[root@localhost ~]# /etc/init.d/vsftpd status

vsftpd is stopped

[root@localhost ~]# service vsftpd start

Starting vsftpd for vsftpd: [ OK ]

2 . 控制类型

-start:启动 -stop:停止 -restart:重新启动 -reload:重新加载 -status:查看服务状态

Linux系统的运行级别

1 . 查看运行级别

[root@localhost ~]# runlevel

5 3

使用runlevel命令,分别显示:

5:切换前的运行级别、3:当前运行级别

2 . 临时切换运行级别

[root@localhost ~]# init 5

[root@localhost ~]# runlevel

3 5

使用init命令结合0-6运行级别参数

优化启动过程

1 . 系统服务管理工具

a) ntsysv工具

特点:

提供一个交互式、可视化窗口

可以在字符终端运行

便于集中管理多个服务

用法:

ntsysv --level 级别列表

[root@localhost ~]# ntsysv --level 3 #此处表示以级别3设置所有服务

b) chkconfig工具

特点:

不提供交互式、可视化窗口

管理��个服务效率更高

用法:

查看系统服务的启动状态

格式:chkconfig --list 服务名称

[root@localhost ~]# chkconfig --list vsftpd #查看vsftpd服务开机是否启动

vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off #此处的6个状态就是linux的运行状态 【off表示不启动 on表示启动】

----------

设置系统服务的启动状态

格式:chkconfig --level 级别列表 服务名 on|off

[root@localhost ~]# chkconfig --level 3 vsftpd on

[root@localhost ~]# chkconfig --list vsftpd

vsftpd 0:off 1:off 2:off 3:on 4:off 5:off 6:off

----------

服务脚本位置:/etc/init.d ----》/etc/rc.d/init.d

到此为止,小伙伴是否了解了系统是如何进行启动的以及启动时加载所需的配置文件的顺序,对于系统的启动过程来说是我们入IT这一行的所要必须掌握的。掌握了此启动过程,当系统出毛病的时候,我们才能根据启动顺序来进行分析并解决问题。

0b1331709591d260c1c78e86d0c51c18.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36272649/article/details/116686402

智能推荐

[渝粤教育] 中国地质大学 互换性与测量技术 复习题 (2)_要求两孔同轴度φ0.3mm最大偏差是多少-程序员宅基地

文章浏览阅读941次。《互换性与测量技术》模拟题一.单选题1.优先选用基孔制的原因是().A.孔比轴难加工B.减少定尺寸孔用刀具量具的规格和数量C.减少孔和轴的公差带数量D.从工艺上讲应先加工孔后加工轴2.评定齿轮传递运动准确性的指标是().A.齿距累积总偏差B.单个齿距偏差C.齿廓总偏差D.螺旋线总偏差3.当几何公差框格的指引线箭头与尺寸线对齐时所表示的被测要素是().A.轮廓要素B.单一要素C.中心要素D.基准要素4.螺纹代号M20×2-7g6g表示的螺纹是().A.粗牙普通外螺纹B.粗_要求两孔同轴度φ0.3mm最大偏差是多少

Simulink模型转为TwinCAT3可以运行的ST程序_simulink导入到twincat-程序员宅基地

文章浏览阅读1k次。@Simulink PLC Coder :将Simulink模型转为TwunCAT程序1 先把simulink程序封装为一个子系统subsystem,标注好输入输出端口参考链接:https://ww2.mathworks.cn/help/plccoder/ug/plc-coder-general.html#bsemuq2-12 程序内不能包含任何连续状态的模块(比如微分,积分模块),而且有不支持的等simulink模块(比如Clock模块),因此需要用离散状态的功能块替代,或者编写MATLAB _simulink导入到twincat

程序员35岁真的是分水岭吗?复习指南_程序员35岁为什么会是一个分水岭-程序员宅基地

文章浏览阅读100次。缘起随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,还有应用之间的互相调用等等问题,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。阿里P8大佬每天熬夜到凌晨一两点,花了将近半个月时间将Android热修复框架、插件化框架、组件化框架、图片加载框架、网络访问框架、RxJava响应式编程框架、_程序员35岁为什么会是一个分水岭

echarts全国地图点击弹窗(Vue)_echarts地图点击弹出窗体明细-程序员宅基地

文章浏览阅读5k次,点赞2次,收藏18次。实现echart 全国地图点击标记有弹窗_echarts地图点击弹出窗体明细

408计组大题-----I/O大题(二)_异步串行通信方式408-程序员宅基地

文章浏览阅读309次。本题第(1)题所考的I/O模式为程序中断方式,我们做如下对知识点的回顾:1.I/O接口的数据缓冲区满,I/O接口给CPU发送I/O中断信号,CPU检测到I/O中断后进行中断处理①中断响应(中断隐指令)②中断服务程序程序中断方式的CPU取数据时间 = ① + ②本题第(2)题所考的I/O模式为DMA方式,我们做如下对知识点的回顾:1.I/O接口与主机之间交换数据方式为以块为单位,I/O设备与I/O接口交换数据方式为以字为单位,传输过程为。_异步串行通信方式408

香蕉派BPI-M2 Berry 全志V40 Mali400 MP2 GPU使用_bpi iot ros ai 密码-程序员宅基地

文章浏览阅读4.2k次。香蕉派Wiki Main Page开发板资料下载快速上手 香蕉派 BPI-M2 Ultra / BPI-M2 Berry从主页找到R40对应开发板,Banana Pi BPI-M2 Berry [Allwinner R40/V40/A40i]Banana Pi BPI-M2U [Allwinner R40/V40/A40i]其中Banana Pi BPI-M2U的Wiki介绍了如何编译BSP,其中使用内核也是Tina Linux,BPI-SINOVOIP/BPI-M2U-bsp_bpi iot ros ai 密码

随便推点

数据链路层循环冗余(CRC)检验_链路层循环冗余校验码是检验哪一部分-程序员宅基地

文章浏览阅读5.5k次。数据链路层有许多协议,但有三个基本问题是相同的:封装成帧、透明传输和差错检验。为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检验措施,目前广泛使用的是循环冗余(CRC)检验的检错技术。 CRC检验原理: 在发送端,先把数据划分为组,假定每个组k个比特。现假定待传送的数据M=101001(k=6)。CRC运算就是在数据M后面添加供差错检验用的n位冗余码,然后构成一个帧发送出去,_链路层循环冗余校验码是检验哪一部分

Spring Security(08)——intercept-url配置_intercept-url j_spring_security_logout-程序员宅基地

文章浏览阅读1w次。Spring Security介绍系列文章。本文主要介绍如何通过intercept-url配置来实现对特定的URL进行拦截,包括指定访问权限、指定访问协议、指定请求方法_intercept-url j_spring_security_logout

iserdese2接口详解_Xilinx 7系列FPGA之SelectIO(3)——高级IO逻辑资源简介-程序员宅基地

文章浏览阅读1.7k次。上一篇咱们介绍了IO逻辑资源,本篇咱们来聊一聊高级的IO逻辑资源,即ISERDESE2模块和OSERDESE2模块。所谓ISERDESE2模块,即Input serial-to-parallel converters。该模块的作用就是实现高速源同步输入数据的串并转换。所谓OSERDESE2模块,即output parallel-to-serial converters。该模块的作用就是实现高速源同..._iserdese2用法

服务没有注册到nacos的原因分析_服务注册不到nacos-程序员宅基地

文章浏览阅读6.9k次,点赞9次,收藏4次。服务没有注册到nacos的原因分析因为没有加上版本号,导致不能注册。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>0.2.1.RELEASE<_服务注册不到nacos

Android应用去掉标题栏状态栏(Android Studio)_android studio 应用禁用状态栏-程序员宅基地

文章浏览阅读442次。**网上关于Android Studio的教程比较少,去掉标题栏的方法大多不能直接使用。 在Android Studio中其实更简单一些,在app/res/values/styles.xml文件中加个标签就可以了**true 完整代码如下,可以看到这段代码放在什么位置。

使用Lua脚本进行游戏开发(基础篇)_lua写游戏脚本-程序员宅基地

文章浏览阅读5.1w次,点赞11次,收藏38次。对于游戏公司而言,采用游戏脚本lua、python等进行开发也很常见,但是很多童鞋对脚本并没有很熟悉的概念,本篇则向大家简单介绍脚本的用途以及在Cocos2dx基础用法;Lua和python这些详细介绍的话,请不太熟悉的童鞋自行百度百科哈,那么对于lua和python则是两个常用的脚本语言,lua相对于python而言,lua比较轻量级罢了,而其他区别就不多说了,但是为什么本章要讲解lua_lua写游戏脚本

推荐文章

热门文章

相关标签