引导过程与服务控制

发布时间:2024年01月02日

一、开机启动的完整过程

bios加电自检测-------mbr------grub----------加载内核文件------------启动第一个进程

简述:加电后bios程序会自检硬件,硬件无故障,会根据第一启动项去找内核,一般来说,第一启动项是硬盘,找到硬盘后,会根据mbr的指引找到完整的grub程序,再根据grub的配置文件找到内核文件的具体位置,然后将内核文件加载到内存中运行,内存加载好后,会启动第一个程序。

bios作用:检测硬件是否正常,然后根据biso中的启动项设置,去找内核文件

boot:开机启动顺序(你可以把内核文件放在何处?)

1.硬盘

2.移动设备(u盘移动硬盘,光驱)

3.网络启动

mbr(二进制):因为grub程序太大,第一个扇区存不下所有的grub程序,所以分为两部分,指引硬件找到内核文件

grub:根据grub配置文件(grub.cfg)中记录的位置,去找到内核文件(高级语言)

加载内核:把内核运行在内存中

启动进程:启动第一个祖宗进程

centos6:init

centos7:启动systemd

1.1区别

init:串行启动后续的程序,一个一个按顺序启动

systemd:并行启动程序,全部一起启动

1.2systemd

systemd:是系统级的程序,代为管理系统上的程序

systemd:保姆级

yum以及rpm安装的软件可以直接使用systemctl去启动关闭,重启,开机自启等功能; ? 编译安装,不可以直接使用systemctl命令去管理程序,需要手写一个配置文件

systemd ? **unit(单元)--------描述一个软件的作用和基本信息**,systemd方便管理程序,将程序按照特定的功能分成了很多单元; ? ?

服务单元---写配置

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

systemctl ? ? ? set-default------设置默认的级别


rpcbind:启动后,会监听111端口

1.3linux操作系统的运行级别

0:关机

1:单用户,类似于windows的急救模式

2:字符界面,少些功能 (nfs)

3:字符界面

4:字符界面,从来没用过

5:图形界面

6:重启

runlevel:查看当前运行级别

实验1:模拟破坏mbr和分区表,然后修复

1:新建一块硬盘

fdisk分区一下

格式化一下:

mkfs.xfs ?/dev/sdb1

挂载到mnt下:

mount /dev/sdb1 ?/mnt/

2:将备份文件备份到新盘

dd? ?if=/dev/sda? ? ? ? ?of=/mnt/mbr? ? ? ?count=1? ? ?bs=512

进入mnt下:cd? /mnt

3.模拟破坏:

dd ?if=/dev/zero ? ? ? ?of=/dev/sda ? count=1 ?bs=512

4.reboot-----重启一下

?

5.然后进入急救模式修复:3? 2? 1

6.mkdir? bak

7.mount ?/dev/sdb1 ? bak

8.dd ?if=bak/mbr.bak ? of=/dev/sda ? count=1 ?bs=512

9.reboot---重启服务


实验2:修复grub文件及程序

1.cd? ?/boot/? ? ?cd? ?grub2/

2.模拟破坏 grub.cfg 配置文件

mv? ?grub.cfg? ?/opt

3.重启一下---reboot

4.

5.

6

7

8.

9.先切换根,从光盘的根切换到 自己系统的根

chroot ? ?/mnt/sysimage

10.重新安装grub2程序,在sda磁盘

grub2-install ? ?/dev/sda

11.重新生成配置文件

grub2-mkconfig ? ?-o ? ? /boot/grub2/grub.cfg

12.退到光驱的根下----exit

13.重启----reboot

实验3:破解密码

第一种:有光驱

1.

2.

3.

4.

5.

6.切换根目录

chroot ? ?/mnt/sysimage

7.修改密码

passwd

8.最后,exit退出,reboot--重启一下


2.无光驱情况

1.重启

2.

3.进入了grup程序里,输入命令

rd.break

4.挂载

mount ?-o ? remount,rw ? ? ? ? ? /sysroot

5.切根,修改密码

chroot ? ? ? /sysroot

passwd

6.刷新一下,打个标记

touch? ? ? /.autorelabel

7.exit退出去;reboot重启

实验4:编译安装nginx-systemctl

1.cd ?/data/-----切换到data下

2.编辑文件

vim ?test.sh

cd ?/opt
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar xf ? nginx-1.18.0.tar.gz
cd ?nginx-1.18.0
yum -y install gcc pcre-devel openssl-devel zlib-devel openssl ?openssl-devel?
#请使用网络源
mkdir /ky35/nginx -p ? ?
./configure ? --prefix=/ky35/nginx
make

make ?install

ln -s /ky35/nginx/sbin ?
#做软链接 ? 可以补全 ?

3.

bash ?test.sh

4.

vim ?/usr/lib/systemd/system/nginx.service

[Unit]
Description=The nginx HTTP and reverse proxy server

[Service]
PIDFile=/ky35/nginx/logs/nginx.pid
ExecStart=/ky35/nginx/sbin/nginx
ExecStop=/usr/bin/kill -s TERM $MAINPID
ExecReload=/ky35/nginx/sbin/nginx -s reload


[Install]
WantedBy=multi-user.target
?

5. 要 告诉 ?systemd ?我加入你了

systemctl ?daemon-reload-----nginx

6.开启nginx

systemctl ?start ?nginx

二、服务程序管理

1.介绍

什么是服务程序?

1.一旦运行一直运行,不会退出

2.一般是后台运行,不会影响前台的操作


管理服务程序

开启

关闭

重启

重新加载配置文件

开机自启

开机不自启

2.chkconfig? ? centos6

service ? 服务程序 ? ? start

service ? 服务程序 ? ? stop

service ? 服务程序 ? ? restart

service ? 服务程序 ? ? reload

service ? 服务程序 ? ? status

在 /etc/init.d/ ?写一个同名文件的脚本 (必须要有 执行权限)

chkconfig ?--level ?35 ?服务程序 ? ?on/off ? ? 开机自启和关闭

3.chkconfig? ? ? centos7

systemctl ? ? start ? ? 服务名

systemctl ? ? stop ? ? 服务名

systemctl ? ? status ? ? 服务名

systemctl ? ? reload ? ? 服务名

systemctl ? ? restart ? ? 服务名

开机自启

systemctl ? ? ? enable ? ? 服务名

开机自启,并立即启动

systemctl ? ? ?enable ? --now ? ? ?服务名

开机不自启

systemctl ? ? ? disable ? ? ? 服务名

开机自启,并立即关闭

systemctl ? ? ?disable ? --now ? ? ?服务名


如果用yum 安装 以及 rpm 安装,会自动生成一个配置文件,不需要手动加入

systemd会自动加入


文章来源:https://blog.csdn.net/YUEAwb/article/details/135338416
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。