1.系统引导过程概述(图形比文字描述更直观)
2.什么是bios?
BIOS是电脑的基本输入输出系统,在计算机系统中起着重要作用
BIOS是连接电脑硬件和软件的枢纽,也可以说它是一款转换器
从功能上看,BIOS分为三个部分: 自检及初始化程序;硬件中断处理;程序服务请求
自检及初始化程序 : 比较容易理解,就是电脑通电后BIOS对硬件部分的检测,是否有异常或故障,还有就是启动前一些硬件参数的比对是否符合,之后就是引导硬盘的操作系统
硬件中断处理 :计算机开机的时候,BIOS会告诉CPU硬件设备的中断号,当你操作时输入了使用某个硬件的命令后,它就会根据中断号使用相应的硬件来完成命令的工作,最后根据其中断号跳回原来的状态
程序服务请求: 从BIOS的定义可以知道它总是和计算机的输入输出设备打交道,它通过最特定的数据端口发出指令,发送或接收各类外部设备的数据,从而实现软件应用程序对硬件的操作
3.当grub磁盘引导阶段出现问题应该怎样解决?
(1)fdisk -l 查看磁盘的目录(看*号在哪里)我的启动分区所在硬盘是 /dev/vda
(2)模拟问题:dd if=/dev/zero of=/dev/vda bs=446 count=1 破坏磁盘引导
(3)将selinux改为disable并且 reboot
(4)此时采用磁盘方式打开虚拟机打不开,正在找硬件
(5)此时关闭虚拟机,采用光驱方式启动,进入虚拟控制台
(6)分别选Troubleshooting第三个和第二个
(7)输入1,回车得到一个shell
chroot /mnt/sysimage/
df 查看boot启动向在那个磁盘
grub2-install /dev/vda
(8)输入两次exit,关机
(9)更改从硬盘启动
(10)重启就好了
4.系统引导文件丢失的解决方案
(1)模拟问题: rm -fr /boot/grub2/grub.cfg,并且reboot
发现虚拟机出现如下错误
解决方法:
在此界面输入:set root="hd0,msdos1"
linux16 /vmlinuz-3.10.0-123.el17.x86_64 ro root=/dev/vda1 #根分区的设备名称
initrd16 /initramfs-3.10.0-123.el.x86_64.img
boot
若没有/boot分区,需输入以下命令
在此界面输入:set root="hd0,msdos1"
linux16 /boot/vmlinuz-3.10.0-123.el17.x86_64 ro root=/dev/vda1 #根分区的设备名称
initrd16 /boot/initramfs-3.10.0-123.el.x86_64.img
boot
#以上操作可以使系统正常启动,但是临时的,所以进入系统后还需执行:
grub2-mkconfig > /boot/grub2/grub.cfg
5. 内核丢失的解决方案
(1)模拟问题:rm -rf /boot/vmlinuz-3.10.0-123.el7.x86_64
会出现如下问题:
(2)解决方法
进入到挽救模式
(3)输入1,按enter可以的得到一个shell
输入如下命令
chroot /mnt/sysimage
mount /dev/cdrom/ /media #挂载镜像
cd /media/Packages
cp kernel-3.10.0-123.el.x86_64.rpm /mnt #版本不同,内核不同,可用tab补全
cd /mnt
rpm2cpio kernel-3.10.-123.el7.x86_64.rpm |cpio -id #将rpm包拆开
cd boot
cp vmlinuz-3.10.0-123.el7.x86_64 /boot #将丢失的内核文件复制到/boot目录
exit
exit
(4)关机修改为从硬盘启动,重就好了
6.系统初始化镜像丢失的修复方案
步骤一:模拟问题 rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
cd /boot/
ls 查看初始化程序镜像文件
rm -rf /boot/initramfs-3.10.0-123.el7.x86_64.img 删除它
uname -r 查看内核版本号
当系统没有重启时:
输入如下命令
mkinitrd /boot/initramfs-$(uname -r ).img $(uname -r)
重启后会出现如下问题
解决方法:
(1)关机,选择从光驱启动
(2)进入救援模式
(3)按1继续,按enter得到一个shell
输入如下命令:
chroot /mnt/sysimage
mkinitrd /boot/initramfs-$(uname -r ).img $(uname -r)
(4)关机,选择从硬盘启动,开机就好了
7.系统启动级别的修复
模拟这个错误
systemctl set-default reboot.target
此时输入reboot重启虚拟机,发现虚拟机永远处于重启模式
开机按上下键停止读秒
按“E”进入编辑模式
选择内核启动行(hang)
linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxxxx
手动输入级别5,ctrl+x退出,启动系统
然后回到图形界面将启动级别改回来
systemctl set-default graphical.target
恢复成功
8.root密码忘了咋办?
步骤一:重启主机的时候按下e进入编辑模式
步骤二:删除到ro,改为rw rd.break,ctrl+x退出
步骤三:输入
chroot /sysroot/
echo westos | passwd --stdin root #修改密码为westos
touch /.autorelabel #重新初始化selinux,当selinux未开启时不需要操作
exit
exit
修改成功!!!