引导过程与服务控制
一、开机启动的完整过程
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
makemake ?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会自动加入
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!