引导过程和服务控制
Posted 还行少年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了引导过程和服务控制相关的知识,希望对你有一定的参考价值。
linux操作系统引导过程
1)开机自检(BIOS)
当我们打开计算机电源的时候,随后会听到滴的一声,自检开始,这个过程中主要是检测我们的计算机硬件设备比如:CPU,内存,主板,显卡,CMOS等设备是否有故障存在
2)MBR引导
Bios自检,首先会在一个Boot Sequence程序中搜索可以让系统启动的引导设备(比如我们有时在BIOS中设置为从硬盘启动,或者从CD-ROM启动等等)
这时如果BIOS找不到可以引导的设备及相关程序后,便会启动失败,如果顺序的找到了相关设备硬盘,那么BIOS将把控制权交给启动设备中的MBR(Master Boot Record)主引导记录
MBR在大小为512字节,存放预启动信息、分区表等信息
3)grub菜单
系统控制权传递给GRUB 以后,读取grub.conf信息,里面包含内核信息、等待时间等
4)加载内核
系统引导器程序会从本地硬盘中加载内核以及内存文件系统(centos7 中使用的是 initramfs),内存文件系统 initramfs 是经过gzip 的 cpio 归档,其中包含启动时所有必要的硬件内核模块、初始化脚本等
5)初始化进程
内核初始化在 initramfs 中找到驱动程序的所有硬件,然后作为PID 1 从initramfs 执行 /sbin/init,CtnOS7 中将其复制为 systemd,systemd启动 initrd.target 中所有单元,并挂载根文件系统 /sysroot,内核与文件由内存文件系统切换至系统根文件系统,并重新运行 /sysroot.systemd。systemd启动默认target (图形或者字符终端),最后等待用户登录
Systemd 单元类型
单元类型 | 扩展名 | 说明 |
---|---|---|
Service | .service | 描述一个系统服务 |
Socket | .socket | 描述一个进程间通信的套接字 |
Device | .device | 描述一个内核识别的设备文件 |
Mount | .mount | 描述一个文件系统的挂载点 |
Automount | .automount | 描述一个文件系统的自动挂载点 |
Swap | .swap | 描述一个内存交换设备或交换文件 |
Path | .path | 描述一个文件系统中文件或目录 |
Timer | .timer | 描述一个定时器(用于实现类似cron的调度任务) |
Snapshot | .snapshot | 用于保存一个systemd的状态 |
Scope | .scope | 使用systemd的总线接口以编程的方式创建外部进程 |
Slice | .slice | 描述居于Cgroup的一组通过层次组织的管理系统进程 |
Target | .tar.get | 描述一组systemd的单元 |
linux系统的运级别
查看运行级别
runlevel命令
[root@localhost ~]# runlevel //runlevel只能查看切换运行级别与当前运行级别
N 5
systemctl工具
[root@localhost ~]# systemctl get-default //systemctl只能查看默认的运行级别
graphical.target
临时切换运行级别
init命令
[root@localhost ~]# init 3 //init的命令参数时运行级别所对应的数字
[root@localhost ~]# runlevel
5 3
[root@localhost ~]#
systemctl工具
[root@localhost ~]# systemctl isolate graphical.target //systemctl的命令参数是具体的target
设置永久运行级别
[root@localhost ~]# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
[root@localhost ~]#
运行级别所对应的Systemd目标
运行级别 | Systemd的target | 说明 |
---|---|---|
0 | target | 关机状态,使用该级别时将会关闭主机 |
1 | rescue.target | 单用户模式,不需要密码验证即可登录系统,多用于系统维护 |
2 | multi-user.target | 用户定义/域特定运行级别,不能使用net file system,默认等同于3 |
3 | multi-user.target | 字符界面的完整多用户模式,大多数服务器主机运行在此级别 |
4 | multi-user.target | 保留,未使用 |
5 | graphical.target | 图形界面的多用户模式,提供了图形桌面操作环境 |
6 | reboot.target | 重新启动,使用该级别时将会重启主机 |
排除启动类故障
1)修复MBR扇区故障
故障原因
病毒、木马等造成的破坏
不正确的分区操作、磁盘读写误操作
故障现象
找不到引导程序,启动中端
无法加载操作系统,开机后黑屏
解决思路
应提前作好备份文件
以安装光盘引导进入急救模式
从备份文件中恢复
具体过程
1、首先模拟故障,备份并破坏mbr扇区
dd if=/dev/sda of=/mk1/mbr.bak bs=512 count=1
dd if=/dev/zero of=/dev/sda bs=512 count=1
2、重启电脑,无法正常进入系统
3、选择修复模式进入
4、重新挂载,并将备份的数据恢复
5、reboot重启,顺利进入系统
2)修复GRUB引导故障
故障原因
MBR中的GRUB引导程序遭到破坏
grub.cfg文件丢失、引导配置有误
故障现象
系统引导停滞,显示“grub>”提示符
解决思路
尝试手动输入引导命令
进入急救模式,重写或者从备份中恢复grub.cfg
向MBR扇区中重建grub程序
具体过程
1、从光盘启动,进入救援模式,进入修复shell
2、执行chroot /mnt/sysimage #初始系统已经挂载到了/mnt/sysimage下面,想要进入初始系统下面,需要执行chroot /mnt/sysimage命令
3、执行grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
4、执行exit
reboot
5、成功进入系统
3)遗忘root用户密码
故障原因
遗忘root用户密码
故障现象
无法进行需要root权限的管理操作
无法以root用户登录系统
解决思路
进入修复模式,重设密码
进入单用户模式,重设密码
具体过程
1、启动系统,并在GRUB2启动屏显时,按下e键进入编辑模式
2、在linux16/linux/linuxefi所在参数行尾添加以下内容:init=/bin/sh
3、按Ctrl+x启动到shell
4、挂载文件系统为可写模式:mount –o remount,rw /
5、运行passwd,并按提示修改root密码(密码要八位数以上,否则会报密码错误)
6、运行命令exec /sbin/init来正常启动,或者用命令exec /sbin/reboot重启
7、开机,输入修改后的密码,成功进入系统
8、如果卡在开机界面或者开机界面只显示一个 — ,可删除/etc/selinux/config文件
以上是关于引导过程和服务控制的主要内容,如果未能解决你的问题,请参考以下文章