• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

第八章.引导和服务

武飞扬头像
一只余
帮助1

本章结构

Linux操作系统引导过程

排除启动类故障

服务控制及切换运行级别

优化启动过程

一.Linux组成

1.kernel 内核 操作系统

  • 实现进程管理,内存管理,网络管理,驱动程序运行,文件系统,安全功能等

2.root包括程序和glibc

二.操作系统存储在

  • 1.硬盘
  • 2.光盘驱动器
  • 3.网络的远端机器

三.引导过程

学新通

1.加电 检测硬件是否有故障,如果无故障,就去bios中设置的第一启动项找操作系统

2.MBR引导 第一个扇区的前446 字节 有一个 grub 程序第一阶段,引导硬件找到操作系统gub 完整的程序

3.grub 会根据grub.cfg 配置文件找到 操作系统,找到根

4加载内核(操作系统)

5.启动程序 祖宗进程centos7 systemd centos6 init

四.修复MBR扇区故障

- 故障原因

  • 病毒、木马等造成的破坏。
  • 不正确的分区操作、磁盘读写错误操作

故障现象

  • 找不到引导程序,启动中断。
  • 无法加载操作系统,开机后黑屏

解决思路

  • 应提前作好备份文件
  • 以安装光盘引导进入急救模式
  • 从备份文件中恢复

实验操作内容

  • -把MBR前512字节文件修复完成,需要光盘引导进入急救模式

具体操作内容

学新通

操作实验过程

1. sda 磁盘 新sdb磁盘

学新通

2.要想将新磁盘sdb在系统中用起来必须分区、挂载

分区:

学新通

挂载:

学新通

3.把sda磁盘的MBR引导扇区里的字节复制到新的磁盘sdb中去

3.1先在mnt下建立空文件

学新通

3.1将文件备份到别的硬盘中,这样我们破坏环境后可以直接从比别的盘中恢复
将sda扇区复制到sdb挂载点文件下/mnt/bak

学新通

4.模拟破坏MBR引导扇区,把0复制到磁盘中

学新通

5.进入引导界面进入急救模式,从备份文件中恢复MBR 扇区数据 先加载好光盘镜像,重启操作系统

学新通

6.进入急救模式

学新通

输入1回车

学新通

进入成功

学新通

7.在这个操作系统下建立文件夹,并将备份盘sdb1盘挂载到建立的文件夹下。

学新通

 ls /backup   查看backup下/mnt/bak是否成挂载进去

学新通

8.将备份好的的文件拷入坏磁盘的

学新通

9.输入exit退出急救模式并重新启动

mbr扇区坏掉实验结束

五.修复GRUB故障

故障原因

  • MBR中的GRUB引导程序遭到破坏
  • grub.cfg 文件丢失、引导配置有误

实验内容

如果grub文件损坏导致启动不了,使用MRB扇区重建grub程序

操作方法

/boot/grub/目录下的包是用于启动菜单的背景图片及样式

/boot/grub2/grub.cfg #GRUB配置文件

学新通

学新通

学新通

模拟修复grub配置文件

注:先用新磁盘将grub.cfg配置文件备份起来

学新通

分区

学新通

查看分区

学新通

格式化

学新通

挂载

学新通

去mnt建立文件

学新通

学新通

删除grub配置文件,重启观察故障情况
cd /boot/grub2         //切换到grub配置文件所在目录

rm -rf grub.cfg       //删除配置文件 grub.cfg
1. 因gurp配置文件被删除,机器无法启动

学新通

2.在读条页面点击读条并快速按esc,进入boot menu模式选择第3

学新通

3.在centos 7页面选择3 troubleshooting

学新通

4.在troubleshooting页面选择急救模式 2.``rescue a centos system

学新通

5.在rescue选择 1 )continue

学新通

6.进入急救模式,加载光盘镜像,切换到硬盘的系统根环境

学新通

7.重新将GRUB引导程序安装到第一块硬盘 (/dev/sda)的MRB扇区,如果有多个分区可省略

学新通

8.重新构建GRUB菜单的配置文件

学新通

9.exit 退出临根目录 ,reboot重启

学新通

10.重启后观察选择第一个

学新通

  1.  

学新通

六.遗忘root用户密码

故障原因

  • 遗忘root用户的密码

故障现象

  • 无法进行需要root权限的管理操作
  • 若没有其他可用帐号,将无法登录系统

解决思路

  • 进入急救模式,重设密码

有光驱改密码

 chroot /mnt/sysimage
 进入急救模式后更改环境
 passwd 修改密码

无光驱改密码

学新通

具体操作如下

1.重启

学新通

2.启动时任意键暂停启动,按e键进入编辑模式

学新通

3.将光标移动linux 开始的行,添加内核参数 rd.break, 按ctrl-x启动

学新通

4.编写命令修改密码

学新通

5.

学新通

6.更改密码 xshall收到身份验证

学新通

六.linux 运行级别

  • 运行级别(runlevel)指的是系统的工作状态,定义了系统启动时运行的服务和进程.
  • init 0-6 可以切换到 对应的运行级别

systemctl get-default //获得当前的运行级别

systemctl isolate xxx.target //不重启切换运行级别

运行级别 含义
0 系统关机状态,所有服务已停止,可以安全地关闭电源
1 单用户模式只有root用户可以登录,用于系统修复和维护
2 文本模式多用户模式,功能不全字符界面
3 文本模式多用户模式,完整的字符界面
4 文本模式多用户模式,未被使用
5 图形多用户模式,登录后进入 图形界面。
6 重启

七. Systemd服务管理–systemctl

.init进程

  • 由 Linux内核加载运行/sbin/init 程序
  • init进程是系统中第一个进程
  • init进程的PID(进程标记)号永远为1

Systemd

  • Systemd是Linux操作系统的一种init软件
  • CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
  • CentOS7中运行的第一个init进程是/lib/systemd/systemd

1. 什么是服务程序

  • 为其他机器提供服务的程序,服务程序启动后,会持续监听端口。
运行级别所对应的systemd目标
系统服务和控制

systemd:是保姆级的进,代为管理所有进程

systemctl start 程序名开启程序

systemctl stop程序名 关闭程序

systemctl status 程序名查看程序状态

systemctl restart 程序名重启程序

systemctl reload 程序名重新加载配置文件不会影响业

systemctl enable 程序名开机自启

systemctl disable 程序名 开机不自启

systemct!disable --now http 开机不自启并且立马关闭

systemctlenable --now 开机自启并且立马启动

启动程序

标题 含义
systemctl start nginx 启动nginx
systemctl status nginx 查看运行状态
标题  
systemctl stop firewalld 关闭防火墙
setenforce 0 永久关闭

八.systemctl服务的建立

实验内容

  • 使用编译安装nginx 之后创建systemctl的service快捷服务,可以查看进程并正常使用

具体操作流程

安装 依赖环境

1.yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel

学新通

- 2.cd /opt
- 然后再拖 安装包
- wget nginx.org/download/ng…
- 下载安装包
- tar xf nginx-1.18.0.tar.gz
- 切换加 解压

学新通

- 3.cd /opt/nginx-1.18.0
- ./configure --prefix=/apps/nginx
- 编译安装第一步

学新通

- 4.make -j2
- 两核编译
- make install
- 安装进 系统

学新通

5.cd /apps/nginx/sbin/nginx

学新通

- ln -s /apps/nginx/sbin/nginx /usr/sbin/nginx
制作软连接

学新通

6.vim /usr/lib/systemd/system/nginx.service
建立 service 文件

学新通

编写界面按照此格式编写

`[Unit]

Description=nginx - high performance web server

Documentation=nginx.org/en/docs/

After=network-online.target remote-fs.target nss-lookup.target

Wants=network-online.target

[Service]

Type=forking

PIDFile=/apps/nginx/logs/nginx.pid

ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s TERM $MAINPID

[Install]

WantedBy=multi-user.target`

- systemctl daemon-reload
- #重新加载 systemctl 程序
- systemctl start nginx
- #启动 nginx 服务
- systemctl status nginx
- #查看nginx 状态

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhbgia
系列文章
更多 icon
同类精品
更多 icon
继续加载