一、系统引导过程概述
通电----->bios初始化----->grub2磁盘引导阶段----->grub2文件引导阶段----->指定boot所在分区----->启动内核,只读挂载根设备----->启动init程序进入初始化阶段----->启动systemd初始化进程----->取/etc/systemd/中的文件----->启动程序----->启动登陆环境
- rom 只读存储 #主板上,断电不影响
- ram 随机存储 #内存上,断电消失 ctrl+s将内存中东西存到硬盘
什么是bios?
BIOS就是"基本输入输出系统"。
它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。
其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
在企业中更新业务前先备份:
dd if=/dev/vda of=mbr bs=512 count=1
二、常见出错问题解决方法
【1】开机引导阶段mbr主引导分区的丢失
模拟问题:
(1)查看磁盘的目录(看*号在哪里)启动分区所在硬盘是 /dev/vda
fdisk -l
(2)破坏引导磁盘,用0设备覆盖启动分区所在设备
/dev/zero 0设备
dd if=/dev/zero of=/dev/vda bs=446 count=1
(3)重启系统,此时采用磁盘方式打开虚拟机打不开,正在找硬件
reboot
解决:
(1)使用光盘启动,进入rescue模式
主机:
virt-manager
灯泡—>ADD—>Device type—>CDROM device—>加载镜像 —>Boot Options以光盘方式驱动,将IDE CDROM 1调整到第一个—>重启系统—>Troubleshooting—>Rescue
**若加载完镜像后,Boot Options中未出现光盘启动方式选项,则重启虚拟机,再加载一次即可。
选择灯泡:
ADD添加光盘:
修改类型添加光盘启动方式:
采用光驱方式启动:
重启虚拟机:
(2)在rescue模式下:
chroot /mnt/sysimage #切换到根目录
grub2-install # 启动分区所在硬盘
grub2-install /dev/vda
exit
exit #两次退出
(3)灯泡—>将IDE CDROM 1光盘启动调整到第3个,硬盘启动放到第一个—>重启
【2】文件引导阶段
启动找开机引导文件,若无则不能启动
引导文件 /boot/grub2/grub.cfg
模拟问题:
rm -fr /boot/grub2/grub.cfg
解决方式:
1、删除后未重启系统
grub2-mkconfig > /boot/grub2/grub.cfg
2、删除后重启
set root='hd0,msdos1' #启动文件在第一块硬盘
linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1 #根分区类型系统内核类型指定
initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img #指定初始化镜像
boot
开机后输入 grub2-mkconfig > /boot/grub2/grub.cfg
重启后界面:
输入开机引导程序:
开机后输入:
【3】内核文件丢失
模拟问题:
rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64
解决问题:
(1)进入rescue模式·
将IDE CDROM 1调整到第1—>Force off—>开启—>Troubleshooting—>Rescue
(2)在rescue模式下输入
chroot /mnt/sysimage
mkdir /rhel7
mount /dev/sr0 /rhel7
cd /rhel7/Packages
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt #与软件联系
cd /mnt/
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id #写
cd boot
cp vmlinuz-3.10.0-123.el7.x86_64 /boot
exit
exit
(3)修改以硬盘方式启动
灯泡—>将IDE CDROM 1调整到第3个,将原默认硬盘启动放到第一个—>重启
【4】初始化镜像文件丢失
模拟问题:
rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
解决问题:
1、当系统没有重启时
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
2、当系统重启后
(1)进入rescue模式
灯泡—>ADD—>Device type—>CDROM device—>加载镜像 —>Boot Options以光盘方式驱动,将IDE CDROM 1调整到第一个—>重启系统—>Troubleshooting—>Rescue
(2)
chroot /mnt/sysimage
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
exit
exit
(3)修改为以硬盘方式启动
灯泡—>将IDE CDROM 1调整到第3个,将原默认硬盘启动放到第一个—>重启
【5】当/boot分区被删除
==模拟问题: ==
rm -fr /boot
解决问题:
(1)进入rescue模式
将IDE CDROM 1调整到第1—>Force off—>开启—>Troubleshooting—>Rescue
(2)
chroot /mnt/sysimage/ #切换根
mkdir /boot
grub2-install /dev/vda #指定分区所在硬盘
mount /dev/sr0 /rhel7/ #挂载初始化镜像
rpm -ivh /rhel7/Packages/kernel-3.10.0-123.e17.x86_64.rpm --force
grub2-mkconfig > /boot/grub2/grub.cfg #生成引导文件
exit
exit
(3)修改以硬盘方式启动
灯泡—>将IDE CDROM 1调整到第3个,将原默认硬盘启动放到第一个—>重启
开机后查看,文件已存在:
【5】当开机启动级别被篡改
模拟问题:
systemctl set-default reboot.target
解决问题:
1、开机按上下键停止读秒
2、按e编辑
3、选择内核启动行
linux16 /vmlinuz- xxxxx ro xxxxx 改为:
linux16 /vmlinuz- xxxxx rw rd.break
4、ctrl+x
5、chroot /sysroot #切换根
6、rm -fr /etc/systemd/system/default.target 删掉软链接,系统服务存放子目录
7、ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target #重新建
立链接
- /lib/systemd/system/default.target系统自带,官方系统启动服务脚本
- /etc/systemd/system/default.target自己写的服务启动脚本
8、exit
exit
【6】(登陆时忘记超户密码)修改超户密码
1、开机按上下键停止读秒
2、按e编辑
3、选择内核启动行
linux16 /vmlinuz- xxxxx ro xxxxx 改为:
linux16 /vmlinuz- xxxxx rw rd.break
4、ctrl+x
5、chroot /sysroot/ #切换根
6、passwd 或
echo westos | passwd --stdin root(标准输入)
7、touch /.autorelabel
8、exit
exit