开机自检

自检过程

1:bios开机自检
2:MBR引导
3:grub文件
4:加载内核
5:开启进程

过程解释

第一步:bios开机时自检,检测硬件是否正常
第二部:硬件正常后,将系统控制权交由MBR来继续引导,调用启动菜单
第三步: 引导找到gurb文件,读取里面的配置文件gurb.cfg,来获取内核和镜像文件系统的设置和路径位置
第四步:开始加载系统内核
第五步:加载完内核后开启第一个进程,centos6里的第一个进程是init,centos7里的第一个进程是systemd

怎样取消开机自检

开机按delete键进入BIOS,进入高级配置页面(Advanced Setup Page),找到Quick Boot(快速启动)项,设置为 Enabled.就会跳过自检2.2000/xp的是用chkntfs /x后面加盘符,比如禁用d盘 chkntfs /x d: 如果是windows98: 98的可以用系统自带的msconfig工具 在“运行”的输入框中,键入“msconfig”,按“确定”按钮。这时会启动系统配置实用程序,在常规选项卡里点击“ 高级”按钮,然后选中“如果关机失败,请禁用磁盘扫描程序”前面的选择框,就可以了。

服务

systemd服务

什么是systemd服务

systemd即为system daemon,是linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替常用的System V与BSD风格init程序。
###systemd的起源
systemd这一名字源于Unix中的一个惯例:在Unix中常以“d”作为系统守护进程(英语:daemon,亦称后台进程)的后缀标识。除此以外,systemd亦是借代英文术语D体系,而这一术语即是用于描述一个人具有快速地适应环境并解决困难的能力。

systemd的功能

1:对比centos6(串行启动),可以解决依赖关系并行启动
2:按照需求启动系统
3:可以自动解决依赖关系
负责在系统启动或运行时,激活系统资源,服务器进程和其它进程

systemd的特性

systemd的新特性:
系统引导时实现服务并行启动;
按需激活进程;
系统状态快照;
基于依赖关系定义服务控制逻辑
systemd的关键特性:
基于socket的激活机制:socket与程序分离;
基于bus的激活机制;
基于device的激活机制;
基于Path的激活机制;
系统快照:保存各unit的当前状态信息于持久存储设备中;
向后兼容sysv init脚本,放在/etc/init.d/
注意:systemctl的命令是固定不变的;非由systemd启动的服务,systemctl无法与之通信

systemd的核心概念

unit:

unit由其相关配置文件进行标识、识别和配置;文件中主要包含了系统服务、监听的socket、保存的快照以及其它与init相关的信息; 这些配置文件主要保存在:
/usr/lib/systemd/system
/run/systemd/system
/etc/systemd/system
unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket(上层接口)、保存的系统快照以及其它与init相关的信息

unit的常见类型

Service unit:文件扩展名为.service,用于定义系统服务
Target unit:文件扩展名为.target,用于模拟实现“运行级别”
Device unit:文件扩展名为.device,用于定义内核识别的设备
Mount unit:文件扩展名为.mount,定义文件系统挂载点
Socket unit:文件扩展名为.socket,用于标识进程间通信用到的socket文件
Snapshot unit:文件扩展名为.snapshot, 管理系统快照
Swap unit:文件扩展名为.swap, 用于标识swap设备
Automount unit:文件扩展名为.automount,文件系统自动点设备
Path unit:文件扩展名为.path, 用于定义文件系统中的一文件或目录

systemd的service unit file详解

1:service unit file 通常由三部分组成:
   [Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等;
   [Service]:与特定类型相关的专用选项;此处为Service类型;
   [Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项
2:各部分释义:
[Unit] 段的常用选项:
   Description:描述信息; 意义性描述
   After:定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反;
   Requies:依赖到的其它units;强依赖,被依赖的units无法激活时,当前unit即无法激活
   Wants:依赖到的其它units;弱依赖
   Conflicts:定义units间的冲突关系
[Service] 段的常用选项:
   Type:用于定义影响ExecStart及相关参数的功能的unit进程启动类型,其类型有:
   simple:默认值,执行ExecStart指定的命令,启动主进程
   forking:以 fork 方式从父进程创建子进程,创建后父进程会立即退出
   oneshot:一次性进程,Systemd 会等当前服务退出,再继续往下执行
   dbus:当前服务通过D-Bus启动
   notify:当前服务启动完毕,会通知systemd再继续往下执行
   idle:若有其他任务执行完毕,当前服务才会运行
   EnvironmentFile:环境配置文件;
   ExecStart:指明启动unit要运行命令或脚本;
   ExecStartPre:在ExecStart之前运行;
ExecStartPost:在ExecStart之后运行;
   ExecStop:指明停止unit要运行的命令或脚本;
   Restart:当设定Restart=1时,则当次daemon服务意外终止后,会再次自动启动。
[Install] 段的常用选项:
   Alias:别名,可使用systemctl command Alias.service;
   RequiredBy:被哪些units所依赖;
   WantedBy:被哪些units所依赖
注意:对于新创建的unit文件或修改了的unit文件,要通知systemd重载此配置文件,通过命令 systemctl daemon-reload.

systemd的默认运行级别

开机自检过程和systemd服务-编程知识网

如何进入急救模式

1:开机启动之前快速的按F1,centos6版本的是按a建
2:将虚拟机关闭,右击虚拟机,在电源选项选择“打开电源时进入固件”
开机自检过程和systemd服务-编程知识网
之后便会出现这样的界面,上下移动选择CD-ROM Dr-ive进入急救模式
开机自检过程和systemd服务-编程知识网

修复MBR扇区

产生MBR扇区故障主要有以下两点原因:
1、 病毒、木马的入侵
2、 不正确的分区操作和磁盘读写操作
MBR分区故障主要有以下两点现象:
1、 找不到引导程序,启动中断
2、 无法加载操作系统,开机后黑屏
解决方法:
1:提前备份MBR扇区
2:从安装光盘引导开始进入急救模式
3:从备份文件中修复

例:模拟破坏MBR扇区并修复
第一步:需建立两个磁盘,sda是原有磁盘,添加sdb磁盘,并分区sdb1然后
格式化sdb1
第二步:将sdb1挂载到mnt下 mount /dev/sdb1 /mnt
开机自检过程和systemd服务-编程知识网
第三步:将sda的前512字节 复制到mnt下并取名
[root@localhost ~]#dd if=/dev/sda of=/mnt/mak.bak count=1 bs=512
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
第四步:破坏sda的前512字节
[root@localhost ~]# dd if=/dev/zero of=/dev/sda count=1 bs=512
开机自检过程和systemd服务-编程知识网
查看sda的前512字节
开机自检过程和systemd服务-编程知识网
第五步:reboot 重启,此时虚拟机会直接进入到这个画面,选第三个急救,接着选第二个选项
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
第六步:等待一会,输入1
开机自检过程和systemd服务-编程知识网
然后在箭头所指的地方直接按回车就会出现sh-4.2#:
此时我们就可以输入命令了
开机自检过程和systemd服务-编程知识网
第七步:新建一个文件夹,并将其挂载到mnt下,此时我们查看就会看到破坏之前我们备份的sda的内容
开机自检过程和systemd服务-编程知识网
第八步:将mnk.bak复制到sda的前512字节中,并查看sda
dd if=/bak/mak.bak of=/dev/sda count=1 bs=512
hexdump -C -n 512 /dev/sda
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
此时我们看到之前的sda的前512字节又回来了
第九步:reboot 重启
到此,所有过程结束

修复GURB引导故障

GRUB 是大多数Linux系统默认的使用的引导过程,可以通过启动菜单的方式选择进入不同的操作系统(如果有的话)。当配置文件 /boot/grub/grub.conf 丢失,或者关键配置出错,或者遭遇破坏,都无法完成进一步的系统启动过程。
故障现象:
系统引导停滞,显示“grub>” 提示符
故障模拟:
第一步:我们先到/boot 目录下,找到grub2 这个文件
第二步:到grub2 这个文件中,把grub.cfg (启动配置文件)删掉,这样系统就无法正常启动了。
第三步:重启系统,出现故障界面。
故障原因:
1、MBR 中的GRUB 引导程序遭到破坏
2、grub.conf 文件丢失、引导配置有误
解决步骤:
第一步:引导急救模式,加载系统镜像:
重新启动系统,一出现开机的画面时,快速按esc 键,引导出急救模式,选择CD- ROM Drive选项 ,选第二个选项,进入急救系统命令模式
第二步:重新建立加载sda 分区(命令:grub2-install /dev/sda)
重建构建grub 菜单配置文件
(命令:grub2-mkconfig -o /boot/grub2/grub.cfg)
第三步:退出bash 环境
命令:exit
第四步:重启
命令:reboot
例:模拟删除grub.cfg文件,并修复
第一步:添加sdb1磁盘,格式化,挂载
mount /dev/sdb1 /mnt
开机自检过程和systemd服务-编程知识网
第二步:将grub.cfg 拷贝到mnt里
[root@localhost ~]# cp -a grub.cfg /mnt
开机自检过程和systemd服务-编程知识网
第三步:删除grub.cfg
[root@localhost grub2]# rm -rf grub.cfg
开机自检过程和systemd服务-编程知识网
第四步:重启 reboot,会进入到以下界面
开机自检过程和systemd服务-编程知识网
第五步:点击虚拟机右建,再次重启,迅速按esc建,进入手动操作模式,必须要在下方的读条前按,只能按一次,非常考验手速
开机自检过程和systemd服务-编程知识网
第六步:选择CD-ROM Dr ive,然后选择第三个选项,再选择第二选项,等待一会,出现选项时,输入1,然后回车,进入输入模式
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
此时我们是正在通过光驱进入的系统,并不是通过硬盘进入的
开机自检过程和systemd服务-编程知识网
这是我们系统根的存放位置,输入此命令,我们就会进入到硬盘的系统根环境
chroot /mnt/sysimage
开机自检过程和systemd服务-编程知识网
切换过来后,我们需要grub引导程序重新安装到dev下第一块硬盘上(sda)的扇区上
grub2-install /dev/sda
开机自检过程和systemd服务-编程知识网
然后重新构建grub的菜单配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
开机自检过程和systemd服务-编程知识网
到此我们可以查看以下grub2下面有没有生产grub.cfg
开机自检过程和systemd服务-编程知识网
生成后exit 退出 再重启
开机自检过程和systemd服务-编程知识网
###修改root密码
第一步:进入急救模式,选3,
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
开机自检过程和systemd服务-编程知识网
以上的操作跟之前修复扇区和grub的操作一样之后直接输入passwd
开机自检过程和systemd服务-编程知识网
注意这里输入的密码是看不见的,所有输入的时候步显示很正常,输入两遍,直接回车就好
改好之后,退出重启