Linux操作系统引导过程和服务控制及启动故障类排查
一、引导过程
Linux操作系统的引导过程一般包括以下几个阶段:开机自检、MBR引导、GRUB菜单、加载Linux内核、init进程初始化。
1.开机自检
服务器开机后,对CPU、内存、显卡等设备进行检测,检测成功后移交系统控制权,大多数时候移交给硬盘。
2.MBR引导
当从本机硬盘中启动系统时,根据硬盘第一个扇区的中的MBR引导记录,将系统控制权交给含有操作系统的引导文件的分区或调用引导信息调用启动菜单GRUB菜单。
3.GRUB菜单
GRUB是系统引导程序,根据菜单所选项,加载Linux系统内核,将控制权交给Linux系统内核。
4.加载Linux内核
Linux内核是一个预先编译好的特殊的二进制文件,介于各种硬件资源和系统程序之间,负责资源的分配和调度。
5.init进程初始化
Linux内核将系统中的/sbin/init程序加载到内存中去运行,完成一系列系统初始化。
二、排除启动类故障
详细实验见下文的实验部分
1.MBR扇区故障
2.GRUB引导故障
3.遗忘root用户密码
三、服务控制
1.使用systemd管理系统
systemd是一个命令的集合体,包括:systemctl、hostnamectl等
systemctl是管理系统的主要命令
启动、停止服务和查看服务状态
设置开机自动启动
systemctl enable 服务
systemctl enable httpd
设置服务开机不启动
systemctl disable 服务
systemctl disable httpd
2.hostnamectl用来查看和修改当前主机信息的命令
永久修改主机名
hostnamectl set-hostname 主机名
查看主机名状态
hostnamectl status
3.journal日志系统
输出本次启动后的所有日志信息
journalctl -b
输出固定时间段的日志信息
journalctl --since=”2020-6-18 12:00:00”
4.localectl语言设置
列出当前系统支持的语言
localectl list-locales
localectl set-locale LANG=zh_CN.UTF8设置语言为中文
5.timedatectl时间相关设置
6.loginctl登录系统的用户信息
四、排除启动类故障实验
实验环境
centos 7.6
实验内容及步骤
MBR扇区故障
修复思路:加硬盘做备份;BIOS启动开启光盘引导进入急救模式;从备份数据中恢复。
1.在虚拟机加一块物理硬盘做备份
2.格式化硬盘,挂载到/opt下
mkfs.ext4 /dev/sdb
mount /dev/sdb /opt
df -Th
3.备份MBR扇区数据和模拟扇区故障
dd if=/dev/sda of=/opt/sda.mbr.bak bs=512 count=1 //将sda扇区数据备份到新加硬盘的挂载目录下
dd if=/dev/zero of=/dev/sda bs=512 count=1 //覆盖sda扇区记录
先把虚拟机设备状态的两个√去掉,重启虚拟机
出现如下界面“Operating System not find”表示MBR引导故障
4.修复MBR扇区
将刚刚在虚拟机里的去掉的√补上,重启虚拟机,按F2进入BIOS系统,可能不太好进,要试很多次,将CD-ROM Drive移到最上面(选择后用+可以移动),进入光盘引导来修复。
选择Troubleshooting
选择Rescue a CentOS system
等待一会儿,敲1,敲回车
再敲回车,进入到sh-4.2#界面
mount /dev/sdb /mnt //将备份的数据挂到/mnt目录下
dd if=/mnt/sda.mbr.bak of=/dev/sda count=1 bs=512 //将备份数据导入sda
reroot 重启,恢复正常
修复GRUB引导故障
1.破坏文件,模拟故障
cd /boot/grub2
mv grub.cfg grub.cfg.bak //破坏文件
init 6 重启,出现故障界面“grub>”如下
2.光盘引导,进入急救模式进行故障修复
再次重启,按F2进入BIOS系统,可能不太好进,要试很多次,将CD-ROM Drive移到最上面(选择后用+可以移动),进入光盘引导。
保存退出
选择Troubleshooting
选择Rescure a CentOS system
等待一会,输入1,回车
再次回车,进到sh-4.2#界面
输入
chroot /mnt/sysimage
grub2-install /dev/sda
cd /boot/grub2
ls //查看是否有grub2.cfg文件,没有
继续输入
grub2-mkconfig -o /boot/grub2/grub.cfg
cd /boot/grub2/
ls //查看grub.cfg文件以存在
重启系统,F2进入BIOS系统,将Hard Drive移到第一,否则还是进入Install centos 7的光盘引导界面
重启,完成故障排除
忘记root密码
1.光盘引导进入急救模式
重启,F2进入BIOS系统,将CD-ROM Driver调到最上面,这样就可以调出光盘引导的界面
保存退出
Toubleshooting
Rescure a CentOS system
等待一会,输入1,回车
再回车,进入sh-4.2
2.修改密码
输入
chroot /mnt/sysimage
passwd root
输入密码即可
重新在BIOS系统里把Hard Drive,调到最上面保存退出,即可登录
五、总结
大家在进入BIOS系统时,使用重启虚拟机,点击F2之前把鼠标点进虚拟机,手速要快,这样容易进BIOS系统;在虚拟机和其他快捷键操作时要注意,要把鼠标切出虚拟机,再进行一些如截图之类的快捷键,不然在虚拟机里容易误操作,如果出现失误就得重来。