linux系统引导过程和服务管理



引导过程与服务管理

1. 引导过程

BIOS:开机自检硬件,

MBR:协助硬件找到操作系统

GRUB:统计启动加载器,根据策划给你续的配置文件找到内核文件的位置

加载内核:运行内核(操作系统),将内核加载到内存中

在操作系统上启动祖宗进程:centos 7

​ centos 6


内核

内核的功能

进程管理


服务:特定的应用程序


编译安装

systemd 默认给rpm、yum提供服务

编译安装想要能用systemd,


init进程

centos 6,程序串行启动,慢


systemd

centos 7,程序并行启动,快


1.2 单元类型

Service 描述一个系统服务软件

Target 描述一组单元


1.3 运行级别

init 0 关机

init 1 单用户模式,维护系统,系统急救

init 3 多用户模式,最完整的字符界面

init 5 多用户模式,图形化界面

init 6 重启


1.4 故障修复

1.4.1 修复MBR分区

利用硬盘进行备份,并修复

备份,一定要放到不同硬盘上

dd if=/dev/sda  of=/dev/sdb/mbr.bak  count=1 bs=512B
if  从哪里复制
of  复制到哪里
count  复制几次
bs  复制一次多大


破坏sda的mbr

dd if=/dev/zero  of=/dev/sda  count=1  bs=10M


修复目的
修复sda里面的MBR分区


修复步骤
1. 先在另外一块格式化过的硬盘中备份MBR

2.进入急救界面
选择“Troubleshooting”(3),
选择“Rescue a CentOS system”(2),
按“1回车”,再按“回车”继续,进入急救模式界面

3. 将另外一块硬盘中的MBR备份数据恢复到sda中,重启即可

利用scp远程拷贝到另一台服务器中,并修复

# scp 要拷贝的文件路径  拷贝到哪里
scp ./mbr.sda 192.168.32.12:/opt/test 
# 将本机上的复制出来的mbr文件拷贝到另一台服务器的文件夹中


dd if=/dev/zero of=/dev/sda count=1 bs=10M

进入到急救模式界面,按“3回车”,再按“回车”

由于此时无法进入网卡配置IP地址,只能配置临时IP地址,临时修改ip地址
ifconfig ens33 192.168.32.15/24
ifconfig  ens33  192.168.32.14  255.255.255.0
ifconfig   # 查看ens33是否配置了IP地址
ping 192.168.32.12   # ping一下另外一台服务器看看是否ping的通

scp 192.168.32.12:/opt/test/mbr.sda ./
# 将另一台服务器上备份的mbr数据拷贝到本机上来

1.4.2 修复grub.conf文件

rm -rf /boot/grub2/grub.conf
# 模拟删除grub.conf文件

重启,在读进去条时,快速按“Esc”进入BIOS,
选择“CD-ROM Drive”,选择“Troubleshooting”(3),
选择“Rescue a CentOS system”(2),
按“1回车”,再按“回车”继续,进入急救模式界面

chroot /mnt/sysimage
# 切换到真机环境

grub2-install /dev/sda
# 重新加载sda分区

grub2-mkconfig -o /boot/grub2/grub.cfg
# 重新构建grub菜单


1.4.3 遗忘root用户名密码

进入急救模式界面

chroot /mnt/sysimage
# 切换到真机环境


passwd
# 修改密码

exit
# 退出真机环境

reboot
#重启



2. 服务控制

2.1 systemctl 命令

systemctl start httpd 开启服务

systemctl stop httpd 关闭服务

systemtcl status httpd 查看服务当前状态

systemctl restart httpd 重启服务

systemctl reload httpd (不重启,不影响服务运行)重新加载服务的配置文件

systemctl enable httpd 开机自启服务

systemctl disable httpd 开机不自启服务

systemctl enable --now httpd 开机启动并且立即开启服务

systemctl disable --now httpd 开机不自启,并且关闭服务


2.2 service unit file文件由三部分组成

[Unit]

[Service]

[Install]


2.2.1Unit段的常用选项

Description

After

Requires

Wants

Conflicts


2.2.2 Service的常用选项 (怎么启动)

Type

ExecStart

ExecStop

ExecReload


2.3 编译安装,systemd管理

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 /apps/nginx -p    
./configure   --prefix=/apps/nginx
make
make  install

ln -s /apps/nginx/sbin/nginx   /usr/sbin/nginx 
#做软链接   可以补全  
 

# 写service配置文件
vim  /usr/lib/systemd/system/nginx.service


[Unit]
Description=The nginx HTTP and reverse proxy server
#描述软件的功能

[Service]
PIDFile=/apps/nginx/logs/nginx.pid
# 方便使用  pid  号 进行操作  ,  指明进程的 pid 号
ExecStart=/apps/nginx/sbin/nginx
#使用绝对路径启动
ExecStop=/usr/bin/kill -s TERM $MAINPID
#杀死进程
# ExecStop=/apps/nginx/sbin/nginx -s stop
ExecReload=/apps/nginx/sbin/nginx -s reload
#重新加载

[Install]
WantedBy=multi-user.target
安装子字符界面


#nginx 要 告诉  systemd  我加入你了
systemctl  daemon-reload

systemctl  start  nginx  


反撇号(tab键上面):kill cat /nginx/nginx.pid 执行反撇号里面的内容

$:执行后面的命令 $PIDF



3. 总结

软件raid

启动过程

init

systemd

单元类型

运行级别

故障修复

服务 后台运行;一直运行

systemd 具有叫醒服务 rpcbind

编译安装手动写service配置文件,systemctl管理


优化启动过程

管理自启动程序


systemctl restart network nginx (并行,多个)

service nginx restart (串行,单个)

默认

系统启动过程

dd if=/dev/sda of=/dev/sdb/mbr.bak count=1 bs=512B

posted @   一个低调的wy  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示