赞
踩
引导过程:当你按下开机的电源键直到屏幕显示登录的画面,这中间系统做的一些的开机过程。
服务器开机之后,根据主板的bios设置,对cup 内存,显卡 键盘等等设备进行初步检测。检测成功后根据预设的启动顺序(默认的启动顺序,第二个就是硬盘,要么就是手工设置的U盘启动)系统的控制权转到了硬盘(大多数的时候转移给本机的硬盘)。
总结:初步检测硬件工作是否正常,检测成功后把系统的引导控制器交个硬盘或者光驱,或者u盘。
MBR是硬盘的分区记录表,在这个表里面记录硬盘的分区,以及系统的启动位置在哪。
系统的控制权到了硬盘,根据mbr记录表来找,系统的启动盘,找到后将系统的控制权传递给包含操作系统引导文件的分区以及MBR记录中系统的启动菜单(grub)。
硬盘启动之后,找到系统分区,也找到了操作系统所在的位置,grub就会显示启动菜单,包含所有当前可选的操作系统。
选择其中一个操作系统之后,系统转移控制器,转移到操作系统的内核文件。
注意:centos7之后开开始使用的都是grub2启动引导器。
操作系统的内核文件是一个预先编译好的特殊的二进制文件(可执行的代码)介于硬件资源和系统程序之间。负责分配资源,调度资源。只是分配和调度并没有真正的运行。预加载到内存当中,系统程序等待启动。
/sbin/init进程是系统当中的第一个进程,是所有其他进程的父进程,init进程在系统中的进程号永远是1。
/lib是串行 一个一个启动,速度慢。
lib/systemd/system系统的第一个进程,他的进程号也是1。
systemd是并行,加载在内存当中的程序一起启动,速度快。
systemd是centos7之后用来管理系统服务进程的一个管理器。使用单元模式(unit)来描述和控制系统服务和资源。
特点:
1、支持并行服务,提高系统的启动速度。
2、支持自动重启。
3、可以在进程运行期间动态的控制他的资源和相关的服务参数。
4、可以自动解决服务启动过程中的依赖关系。
5、支持多种管理方式(命令行 图形化工具)主要使用命令行操作。
具体类型
单元类型 | 拓展名 | 描述 |
---|---|---|
service | .service | 描述一个系统进程 |
target | .target | 描述一组systemd的单元。进程在不同运行级别下的状态 |
socket | .socket | 进程启动时根据其配置,分配系统端口,监听端口状态。如果有请求,可以维护端口通信(提供网络服务) |
device | .device | 管理硬件设备,驱动程序,设备文件,设备属性 |
mount | .mount | 管理文件系统的挂载,以及挂载的选项,以及挂载之后的数据管理 |
Automount | .automount | 根据配置,自动的实现设备或者文件系统的挂载 |
nginx.service编译文件解析
[Unit] ##服务的说明 Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ ##Description描述信息 After=network-online.target remote-fs.target nss-lookup.target #表示支持dns解析以及该软件依赖于网络。 ##After依赖 启动的这个进程systemd会根据after的条件把相关的进程一并启动 Wants=network-online.target #先启动网络服务,才能启动nginx ##Wants也是一个依赖,systemd也会把这个网络功能一并启动 [Service] ##服务运行的参数设置 Type=forking ##后台运行 PIDFile=/usr/local/nginx/run/nginx.pid #注意文件位置,如果不对 启动不了 ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ## 服务启动时具体运行的命令 #注意启动文件位置 ExecReload=/bin/kill -s HUP $MAINPID ##重启的命令 ExecStop=/bin/kill -s TERM $MAINPID ##停止进程的命令 [Install] ##服务安装的相关设置,以及运行的模式 WantedBy=multi-user.target #支持多用户模
运行级别 | systemd对应target | 说明 |
---|---|---|
0 | target | 关机 |
1 | rescue.target | 单用户模式,系统维护时使用 |
2 | multi-user.target | 字符模式和3一样 |
3 | multi-user.target | 字符模式完整的字符模式 ,可以支持多用户,在工作中我们遇到的linux系统均为3 |
4 | multi-user.target | 字符模式和3一样 |
5 | graphical.target | 图形化用户面模式(工作中没有) |
6 | reboot.target | 重启 |
查看系统的运行级别: runlevel。
切换系统的运行级别:init +数字。
如何对服务进程进行控制:重点!!!
格式:systemctl 控制类型 服务名称(进程)。
status 查看服务的状态有以下几种情况:
mbr分区表被删了,如何恢复
第一步点击虚拟机右击进入设置,按以下操作将本地光盘挂上具体操作看上一章博客
添加一个硬盘点击添加,点击硬盘,点击下一步,其他操作默认,完成
重置虚拟机,并连接xshell
输入lsblk查看硬盘是否添加成功
输入
[root@localhost ~]# fdisk /dev/sdb
操作如下图所示对sdb进行分区
输入lsblk查看硬盘,分区成功
创建文件系统
[root@localhost ~]# mkfs.xfs /dev/sdb1
在根目录下创建一个目录,并挂载
[root@localhost ~]# mkdir /backup
[root@localhost ~]# mount /dev/sdb1 /backup/
[root@localhost ~]# cd /backup/
[root@localhost backup]#dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1 #mbr分区表在第一块硬盘当中的第一个分区,大小512字节,把这个分区表从第一个硬盘当中提前出来,保存在sdb的硬盘中。实际上把mbr分区表做一个备份
[root@localhost backup]# dd if=/dev/zero of=/dev/sda bs=512 count=1
重启虚拟化在虚拟机初始化时鼠标点进虚拟机界面并按esc进入Boot Menu界面,选择3回车。
选择Troubleshooting 回车
选择第二个Rescue a Cetntos system 回车
进入急救模式
输入1 回车
继续回车
在根目录下创建一个目录
mkdir /backupdir
将备份的文件进行挂载
mount /dev/sdb1 /backupdir/
还原mbr分区表
cd /backupdir
ls 查询 目录下有mbr.bak文件
还原mbr分区表
dd if=/backupdir/mbr.bak of=/dev/sda
exit退出,重启,成功恢复
接着场景一的环境继续做场景二
centos7之后开开始使用的都是grub2启动引导器
grub2root@localhost opt]# cd /boot/grub2 #进入grub2目录
[root@localhost grub2]# rm -rf grub.cfg #删除grub.cfg模拟grub菜单被删掉
[root@localhost grub2]# init 6
重启
以上操作模拟grub菜单被删除
重启虚拟化在虚拟机初始化时鼠标点进虚拟机界面并按esc进入Boot Menu界面,选择3回车。
选择Troubleshooting 回车
选择第二个Rescue a Cetntos system 回车
进入急救模式
输入1 回车
继续回车
输入
chroot/mnt/sysimage/ #进入系统的根环境
回车
grub2-insll /dev/sda #将grub2下载到第一块硬盘
回车
grub2-mkconfig -o /boot/grub2/grub.cfg #将最开始删除的文件进行恢复
回车,退出,重启。
具体命令如下:
3、重启后进入虚拟机,成功恢复
进入root关闭selinux机制
[root@localhost ~]# setenforce 0 #关闭安全机制
重启虚拟化在虚拟机初始化时鼠标点进虚拟机界面并按esc进入Boot Menu界面,选择3回车。
选择Troubleshooting 回车
选择第二个Rescue a Cetntos system 回车
进入急救模式
输入1 回车
继续回车
输入
chroot/mnt/sysimage/ #进入系统的根环境
输入
passwd root
回车输入新密码,重启
具体详情如下
密码重置成功,输入新密码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。