Linux--开机启动流程

开机启动流程

在这里插入图片描述

centos6里的哪些运行级别:(runlevel=》查看当前运行级别)

0 == 关机 *

1 == 单用户模式 --》 破密码

2 == 多用户模式,不能使用NFS功能

3 == 完全多用户模式 *

4 == 没有用

5 == GUI界面,图形界面 *

6 == 重启 *

查看默认的运行级别:systemctl get-default

如何查看一个服务是否开机启动?

systemctl list-unit-files

开机启动NGINX

systemctl enable nginx

编写的脚本如何设置开机启动?

改写/etc/rc.local

如何排查不明的程序是否设置开机启动?

查看/etc/rc.local

你是一个黑客,如何让你的木马程序开机启动?

修改/etc/rc.local

修改用户家目录下的四个配置文件

如何让别人的机器开机就重启或者关机?

修改/etc/rc.local —》init 6

开机启动流程

BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统"。

BIOS是个人电脑启动时加载的第一个软件。它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。

BIOS这个大程序里面有3个小程序:基本输入输出的程序、开机后自检程序和系统自启动程序

BIOS程序是主板厂商提供安装到主板上的
如何进入BIOS?
笔记本: F2 F2+FN F9 F10 F1 不同的品牌按键不一样
台式机: 按DEL进入
服务器: 按F1 F2等不同

CMOS:是主板上用来存储我们的配置信息的地方–》相当于BIOS的存储信息得地方

CMOS是Complementary Metal Oxide Semiconductor(互补金属氧化物半导体)的缩写。它是指制造大规模集成电路芯片用的一种技术或用这种技术制造出来的芯片,是电脑主板上的一块可读写的RAM芯片。因为可读写的特性,所以在电脑主板上用来保存BIOS设置完电脑硬件参数后的数据,这个芯片仅仅是用来存放数据的。

其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,BIOS还向作业系统提供一些系统参数。系统硬件的变化是由BIOS隐藏,程序使用BIOS功能而不是直接控制硬件。现代作业系统会忽略BIOS提供的抽象层并直接控制硬件组件

ROM:只读存储器 read only memory

UEFI:统一可扩展固件接口(英语:Unified Extensible Firmware Interface,缩写UEFI)是一种个人电脑系统规格,用来定义操作系统与系统固件之间的软件界面,作为BIOS的替代方案。可扩展固件接口负责加电自检(POST)、联系操作系统以及提供连接操作系统与硬件的接口。

记住开机启动流程有什么好处?
1.知道如何去排查故障,当机器启动不了的时候,就可以把所有的启动环节都检查一遍,修复故障

启动顺序:

​ removeable device 可移动设备–》u盘、移动硬盘等
​ cdrom --》光驱
​ hard drive–》硬盘、磁盘
​ network --》从网络里的服务器启动 --》cobbler无人值守安装系统 --》网络批量安装系统

首先是检查排名第1的设备,如果没有再检查第2的设备,以此类推

vmlinuz-4.18.0-147.el8.x86_64 真正的linux内核程序

initramfs-4.18.0-147.el8.x86_64.img --》为内核配套的文件系统,存放了很多的驱动

vmlinuz是皇上
initramfs:给配套的朝廷:将军、大臣、皇宫、嫔妃、公公等 --> 在内存里初始化一个文件系统,是一个临时的根目录–》相当于一个过度政府

init 初始化 initial
ram 随机访问存储器 --》内存中
fs 文件系统

systemd进程 是linux里的第1个进程
[root@sanchuang boot]# yum install psmisc -y

root@sanchuang boot]# pstree 查看linux里的进程树
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{auditd}
├─chronyd
├─crond
├─dbus-daemon───{dbus-daemon}
├─nginx───nginx
├─polkitd───5*[{polkitd}]
├─rngd───{rngd}
├─rsyslogd───2*[{rsyslogd}]
├─sh───mandb
├─sshd───sshd───sshd───bash───pstree
├─sssd─┬─sssd_be
│ └─sssd_nss
├─systemctl
├─systemd───(sd-pam)
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───3*[{tuned}]
└─vmtoolsd───{vmtoolsd}
[root@sanchuang boot]#
[root@sanchuang boot]# pstree -p 查看进程树可以显示pid号
systemd(1)─┬─NetworkManager(921)─┬─{NetworkManager}(940)
│ └─{NetworkManager}(942)
├─VGAuthService(916)
├─agetty(1015)
├─auditd(892)───{auditd}(893)
├─chronyd(928)
├─crond(1013)
├─dbus-daemon(920)───{dbus-daemon}(927)
├─nginx(962)───nginx(964)
├─polkitd(915)─┬─{polkitd}(935)
│ ├─{polkitd}(937)
│ ├─{polkitd}(938)
│ ├─{polkitd}(939)
│ └─{polkitd}(959)
├─rngd(914)───{rngd}(923)
├─rsyslogd(1029)─┬─{rsyslogd}(1037)
│ └─{rsyslogd}(1039)
├─sshd(944)───sshd(10070)───sshd(10074)───bash(10075)───pstree(29151)
├─sssd(918)─┬─sssd_be(953)
│ └─sssd_nss(978)
├─systemd(4410)───(sd-pam)(4414)
├─systemd-journal(692)
├─systemd-logind(1006)
├─systemd-udevd(723)
├─tuned(947)─┬─{tuned}(1276)
│ ├─{tuned}(1278)
│ └─{tuned}(1282)
└─vmtoolsd(917)───{vmtoolsd}(960)
[root@sanchuang boot]#

解压initramfs文件

cpio -idmv < ./initramfs.img

===
centos6的系统里,第1个进程是init
centos7和8里的系统里,第1个进程是systemd

systemctl
和运行级别(centos6里概念)
服务开机启动–》firewalld、sshd、nginx、mysql

家目录的4个配置文件

如何让自己编写的脚本开机启动运行?

你是一个黑客,如何让你的木马程序开机启动?

运行级别(centos6里概念)

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

  0 6 3 5

[root@sanchuang zhuxiaodan]# runlevel 查看我们的linux系统当前的运行级别
N 3 --》开机直接进入的运行级别3

[root@sanchuang zhuxiaodan]#
N 表示null 没有级别 之前是什么级别
3 表示当前是运行级别3

init 3 进入运行级别3 --》字符界面

runlevel
5 3 --》开机的时候是图形界面后面进入了字符界面

不同的级别启动的服务是不一样的
3 字符界面–》会定义哪些程序在字符界面下开机启动 -->开启的程序少–》消耗的资源少 --》最小化安装 --》3

5 图形界面 --》会定义哪些程序在图形界面下开机启动 --》开启的程序多–》消耗资源多 --》带GUI服务器–》5

	linux里启动图形界面是启动GNOME  和KDE

疫情:
湖南省 从1级 --》2级
[root@sanchuang zhuxiaodan]# vim /etc/inittab

[root@sanchuang zhuxiaodan]# systemctl get-default 查看当前的默认运行级别
multi-user.target
[root@sanchuang zhuxiaodan]#
[root@sanchuang zhuxiaodan]# systemctl set-default graphical.target 设置默认的运行级别
[root@sanchuang zhuxiaodan]# systemctl set-default multi-user.target
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.
[root@sanchuang zhuxiaodan]#
[root@sanchuang multi-user.target.wants]# pwd
/etc/systemd/system/multi-user.target.wants
[root@sanchuang multi-user.target.wants]# ls
auditd.service dnf-makecache.timer NetworkManager.service rsyslog.service sysstat.service
chronyd.service irqbalance.service nginx.service sshd.service tuned.service
crond.service kdump.service remote-fs.target sssd.service vmtoolsd.service
[root@sanchuang multi-user.target.wants]#
休息20分钟
15:37 ~ 15:57

===
init 0 关机
init 6 重启

===

[root@sanchuang system]# service sshd restart 立马重新启动sshd服务 --》centos6的用法–》老式
Redirecting to /bin/systemctl restart sshd.service --》新式用法
[root@sanchuang system]#
[root@sanchuang system]# systemctl restart sshd.service --》新式用法
[root@sanchuang system]# systemctl restart sshd --》新式用法

如何查看一个服务是否开机启动?
方法1: 到多用户模式对应的文件夹下查看是否有这个服务的名字

[root@sanchuang system]# cd /etc/systemd/system
[root@sanchuang system]# cd multi-user.target.wants/
[root@sanchuang multi-user.target.wants]# ls
auditd.service dnf-makecache.timer NetworkManager.service rsyslog.service sysstat.service
chronyd.service irqbalance.service nginx.service sshd.service tuned.service
crond.service kdump.service remote-fs.target sssd.service vmtoolsd.service
[root@sanchuang multi-user.target.wants]#
[root@sanchuang multi-user.target.wants]# systemctl disable nginx 禁用nginx开机启动
Removed /etc/systemd/system/multi-user.target.wants/nginx.service.
[root@sanchuang multi-user.target.wants]# ls
auditd.service dnf-makecache.timer NetworkManager.service sshd.service tuned.service
chronyd.service irqbalance.service remote-fs.target sssd.service vmtoolsd.service
crond.service kdump.service rsyslog.service sysstat.service
[root@sanchuang multi-user.target.wants]# systemctl enable nginx 启用nginx开机启动
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@sanchuang multi-user.target.wants]# ll
总用量 0
lrwxrwxrwx. 1 root root 38 2月 19 12:06 auditd.service -> /usr/lib/systemd/system/auditd.service
lrwxrwxrwx. 1 root root 39 2月 19 12:06 chronyd.service -> /usr/lib/systemd/system/chronyd.service
lrwxrwxrwx. 1 root root 37 2月 19 12:04 crond.service -> /usr/lib/systemd/system/crond.service
lrwxrwxrwx. 1 root root 43 2月 19 12:05 dnf-makecache.timer -> /usr/lib/systemd/system/dnf-makecache.timer
lrwxrwxrwx. 1 root root 42 2月 19 12:06 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service
lrwxrwxrwx. 1 root root 37 2月 19 12:06 kdump.service -> /usr/lib/systemd/system/kdump.service
lrwxrwxrwx. 1 root root 46 2月 19 12:04 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
lrwxrwxrwx. 1 root root 37 3月 13 16:09 nginx.service -> /usr/lib/systemd/system/nginx.service
lrwxrwxrwx. 1 root root 40 2月 19 12:04 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target
lrwxrwxrwx. 1 root root 39 2月 19 12:06 rsyslog.service -> /usr/lib/systemd/system/rsyslog.service
lrwxrwxrwx. 1 root root 36 2月 19 12:06 sshd.service -> /usr/lib/systemd/system/sshd.service
lrwxrwxrwx. 1 root root 36 2月 19 12:06 sssd.service -> /usr/lib/systemd/system/sssd.service
lrwxrwxrwx. 1 root root 39 2月 28 11:18 sysstat.service -> /usr/lib/systemd/system/sysstat.service
lrwxrwxrwx. 1 root root 37 2月 19 12:06 tuned.service -> /usr/lib/systemd/system/tuned.service
lrwxrwxrwx. 1 root root 40 2月 19 12:06 vmtoolsd.service -> /usr/lib/systemd/system/vmtoolsd.service
[root@sanchuang multi-user.target.wants]# vim /usr/lib/systemd/system/nginx.service
[root@sanchuang multi-user.target.wants]#

特别文件:
/etc/rc.local --》开机启动的过程中将所有的服务启动后,会执行这个文件里的命令
开机启动的过程会执行这个文件里的命令

'chmod +x /etc/rc.d/rc.local'  这个文件必须要设置可执行权限,里面的命令才会执行
			
/etc/fstab  会自动挂载文件系统
[root@sanchuang multi-user.target.wants]# cat /etc/fstab 

/dev/mapper/cl-root / xfs defaults 0 0
UUID=6e4a352f-0c56-4bf3-bef2-deca4f22d289 /boot ext4 defaults 1 2
/dev/mapper/cl-swap swap swap defaults 0 0
/dev/sdd1 /tanzikun ext4 defaults 0 0
/dev/sdd2 /zhangziqi xfs defaults 0 0
dev/sde1 /movie xfs defaults 0 0
dev/sde2 /photo xfs defaults 0 0
[root@sanchuang multi-user.target.wants]#

初始化用户的环境变量–》别名、函数、变量等

~/.bashrc --》启动bash程序的时候会加载 --》只是影响某个用户的
~/.bash_profile --》用户登录的时候会运行的脚本

/etc/bashrc --》全局,会影响所有的用户的
/etc/profile --》全局,会影响所有的用户的

首先会执行/etc/profile、和/.bash_profile–>/.bashrc -->/etc/bashrc

登录shell和非登录shell

远程登录或者直接登录
会执行下面的4个文件

~/.bashrc  --》启动bash程序的时候会加载
~/.bash_profile  --》用户登录的时候会运行的脚本

/etc/bashrc --》配置函数和变量
/etc/profile  --》配置函数和变量

只是运行bash程序,只会运行
~/.bashrc
/etc/bashrc

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值