Linux开机启动流程有一这篇就够啦!!!

您所在的位置:网站首页 Linux操作系统的安装与启动 Linux开机启动流程有一这篇就够啦!!!

Linux开机启动流程有一这篇就够啦!!!

2024-07-09 14:30| 来源: 网络整理| 查看: 265

Linux开机启动流程详解 一.开机启动流程二.开机启动流程的意义:了解开机启动流程就是为了解决这些问题 三.Linux开机完整流程图一.开机自检(POST)二.BIOS程序(完成开机自检的程序)三.按boot第一顺序启动四.MBR五./boot里文件的驱动六.内核文件七.systemd进程八.运行级别九.输入用户名与密码十.补充1.查看当前的默认启动模式2.修改为图形界面启动模式/设置默认的运行级别为GUI3.设置开机自启:4.其他 十一.思考题1.如何查看一个服务是否开机启动?2.设置yum install安装的nginx服务开机启动3.破坏MBR文件能不能运行?4.假如你是一个黑客,如何让你的木马程序开机启动?(当然,我开玩笑的)5.如何设置默认的运行级别为3?6.编译安装的软件如何设置开机启动?7.编写的脚本如何设置开机启动?8.删除/boot分区里的内容,是否可以开机?9.把内存条拔出来,是否可以开机? 关于Linux的开机启动流程一定要认真了解、牢记。

一.开机启动流程

按一下开机按钮到你输入用户名和密码,进入系统的整个过程,都叫开机启动流程–》我们这篇文章主要是关注这个过程计算机背后发生的事情

二.开机启动流程的意义:

大家可以思考一下:

1掌握让某个软件开机自动运行 2.开机不能正常启动,是什么原因…那个环节出现了问题 3.防止黑客植入木马,去查询黑客会把木马放到哪些地方?

了解开机启动流程就是为了解决这些问题 三.Linux开机完整流程图

开机流程

一.开机自检(POST)

开机自检:上电自检(POST, Power on Self Test) 指计算机系统,接通电源, (BIOS程序)的行为,包括对CPU、系统主板、基本内存、扩展内存,系统ROMBIOS等器件的测试。如发现错误,给操作者提示或警告。简化或加快该过程,可使系统能够快速启动。 检查:主板(motherboard),CPU,内存,磁盘,网卡,显卡,声卡,电源,鼠标,键盘,显示器等

二.BIOS程序(完成开机自检的程序)

BIOS程序 BIOS是英文"Basic Input output system"的缩略词,直译过来后中文名称就是"基本输入输出系统"。 BIOS是个人电脑后动时加载的第一个软件。 它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,BIOS还向作业系统提供一些系统参数。系统硬件的变化是由BIOS隐藏,程序使用BIOS功能而不是直接控制硬件。现代作业系统会忽略BIOS提供的抽象层并直接控制硬件组件。 (1)BIOS是一个程序会读取CMOS芯片里的参数,了解cpu的配置,时间的配置,启动顺序的配置等 (2)CMOS :是一个存储参数配置的芯片

三.按boot第一顺序启动

boot :引导、启动 启动顺序: BIOS–boot 第1引|导顺序: hard drive硬盘(台式机一般就是硬盘启动) 第2引导顺序: cd rom光驱 —》安装系统 第3引导顺序: removable device可移动设备–》u盘,移动硬盘–》安装系统 第4引导顺序: Network–从网络启动–》网络中安装服务器启动–》安装

四.MBR

MBR–》在硬盘的第1个扇区–》主引导记录–》用来启动linux系统的程序 BIOS–》主板里的程序(有一个指针,固定到磁盘的第1个扇区)–》disk–》MBR–》grub2 MBR: master boot record 主引导记录:有启动程序 grub2 MBR只占512个字节

五./boot里文件的驱动 [root@localhost boot]# ls config-4.18.0-240.el8.x86_64 initramfs-4.18.0-240.el8.x86_64kdump.img efi loader grub2 System.map-4.18.0-240.el8.x86_64 initramfs-0-rescue-c60d2d9754344502ada018e9d5f81a56.img vmlinuz-0-rescue-c60d2d9754344502ada018e9d5f81a56 initramfs-4.18.0-240.el8.x86_64.img vmlinuz-4.18.0-240.el8.x86_64 六.内核文件

initramfs-4.18.0-147.e18.x86-64.img )给内核程序提供一个初始化的内存文件系统的镜像文件–》临时的根文件系统的镜像文件 宫殿、大臣、军队、妃子等 init 初始化 initial ram:随机存取存储器(random access memory的缩写) fs:file system - -》 vmlinuz-4.18.0-147.e18.x8664 --》内核程序文件–》皇上 initramfs-4.18.0-147.e18.x8664kdump.img 解压initramfs:

[root@localhost 530]# cp /boot/initramfs-4.18.0-240.el8.x86_64.img . [root@localhost 530]# ls initramfs-4.18.0-240.el8.x86_64.img [root@localhost 530]# cpio -idmv < initramfs-4.18.0-240.el8.x86_64.img . early_cpio kernel kernel/x86 kernel/x86/microcode kernel/x86/microcode/GenuineIntel.bin 202 块 [root@localhost 530]# ls early_cpio initramfs-4.18.0-240.el8.x86_64.img kernel 七.systemd进程

pstree命令是用于查看进程树之间的关系,即哪个进程是父进程,哪个是子进程,可以清楚的看出来是谁创建了谁。 安装pstree程序:

[root@localhost 530]# yum provides pstree #查找是谁提供的pstree这个命令 上次元数据过期检查:1:29:20 前,执行于 2021年05月30日 星期日 10时10分10秒。 psmisc-23.1-5.el8.x86_64 : Utilities for managing processes on your system 仓库 :baseos 匹配来源: 文件名 :/usr/bin/pstree [root@localhost 530]# yum install psmisc -y #安装pstree 查看boot运行的进程 [root@localhost boot]# pstree -p systemd(1)─┬─NetworkManager(888)─┬─{NetworkManager}(923) │ └─{NetworkManager}(924) ├─VGAuthService(879) ├─auditd(802)───{auditd}(803) ├─bash(19419)───sleep(51883) ├─crond(1523) ├─dbus-daemon(886) ├─irqbalance(883)───{irqbalance}(891) ├─login(992)───bash(1438) ├─nginx(23007)─┬─nginx(23338) │ ├─nginx(23339) │ ├─nginx(23340) │ └─nginx(23341) ├─polkitd(884)─┬─{polkitd}(969) │ ├─{polkitd}(970) │ ├─{polkitd}(971) │ ├─{polkitd}(972) │ └─{polkitd}(999) ├─rngd(911)───{rngd}(919) ├─rsyslogd(1013)─┬─{rsyslogd}(1042) │ └─{rsyslogd}(1044) ├─sshd(938)───sshd(43448)───sshd(43451)───bash(43452)───pstree(51884) ├─sssd(878)─┬─sssd_be(916) │ └─sssd_nss(954) ├─systemd(1428)───(sd-pam)(1430) ├─systemd-journal(720) ├─systemd-logind(977) ├─systemd-udevd(760) ├─tuned(939)─┬─{tuned}(1419) │ ├─{tuned}(1421) │ └─{tuned}(1422) ├─vim(9461) └─vmtoolsd(880)─┬─{vmtoolsd}(904) └─{vmtoolsd}(908)

由于Centos版本的不同第一个进程也不同 例如: Centos 6 第一个进程为: init Centos 7 第一个进程为:systemd

八.运行级别

在centos6里有哪些运行级别?(RunLevel) 0 --》关机 1 --》单用户模式–》破密码 2–》多用户模式,不能使用NFS功能 3–》完全多用户模式 multi-user–> CLI 字符界面 4–》没有用 5–》图形界面 graphical --》GUI界面 6–》重启 例如: init 0 = 关机 init 6 = 重启

补充: init 3进入运行级别3 --》字符界面 runlevel centos7里只有3和5 多用户和图形化界面 5 3 --》开机的时候是图形界面后面进入了字符界面 不同的级别启动的服务是不一样的 3 字符界面–》会定义哪些程序在字符界面下开机启动–>开启的程序少–》消耗的资源少–》最小化安装–》3 5 图形界面–》会定义哪些程序在图形界面下开机启动–》开启的程序多–》消耗资源多–》带GUI服务器–》5

九.输入用户名与密码

用户输入用户名与密码后 Linux系统自动进入/etc/passwd 查找用户名 再根据用户名进入/etc/shadow 查找用户密码 此处的用户密码是通过哈希加密算法保存的,Linux是不能通过破解哈希算法来得到原密码,而是通过用户输入的密码,再次进行一次哈希计算,再将运行完的结果与存储的密码进行比较。

十.补充 1.查看当前的默认启动模式 [root@localhost lianxi]# systemctl get-default multi-user.target 2.修改为图形界面启动模式/设置默认的运行级别为GUI [root@localhost boot]# systemctl set-default graphical Removed /etc/systemd/system/default.target. Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/graphical.target. 没有安装相关程序所以会按照字符页面正常启动 [root@localhost boot]# systemctl get-default graphical.target centos6里使用的chkconfig systemctl 取代了chkconfig的方式 3.设置开机自启: yum install mariadb mariadb-server -y 安装mariadb的数据库软件 [root@localhost system]# pwd /usr/lib/systemd/system --》集中存放所有需要启动的服务的目录 [root@localhost system]# cd /etc/systemd/system/multi-user.target.wants/ [root@localhost multi-user.target.wants]# pwd /etc/systemd/system/multi-user.target.wants --》多用户模式开机启动的服务存放的目录 [root@localhost multi-user.target.wants]# systemctl disable mariadb.service 禁用服务开机启动 Removed /etc/systemd/system/multi-user.target.wants/mariadb.service. Removed /etc/systemd/system/mysql.service. Removed /etc/systemd/system/mysqld.service. [root@localhost multi-user.target.wants]# systemctl enable mariadb 设置服务开机启动 Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service. Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service. Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service. 4.其他

/etc/rc.local 启动的过程中,最后会运行这个脚本里的命令(这个文件必须要有可执行权限) /etc/fstab 启动的过程中,会加载这个文件里知道的磁盘分区

十一.思考题 1.如何查看一个服务是否开机启动? 2.设置yum install安装的nginx服务开机启动 3.破坏MBR文件能不能运行? 4.假如你是一个黑客,如何让你的木马程序开机启动?(当然,我开玩笑的) 5.如何设置默认的运行级别为3? 6.编译安装的软件如何设置开机启动? 7.编写的脚本如何设置开机启动? 8.删除/boot分区里的内容,是否可以开机? 9.把内存条拔出来,是否可以开机?


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3