程序 | 含义 |
---|---|
自检及初始化程序 | 比较容易理解,就是电脑通电后BIOS对硬件部分的检测,是否有异常或故障,还有就是启动前一些硬件参数的比对是否符合,之后就是引导硬盘的操作系统 |
硬件中断处理 | 计算机开机的时候,BIOS会告诉CPU硬件设备的中断号,当你操作时输入了使用某个硬件的命令后,它就会根据中断号使用相应的硬件来完成命令的工作,最后根据其中断号跳回原来的状态 |
程序服务请求 | 从BIOS的定义可以知道它总是和计算机的输入输出设备打交道,它通过最特定的数据端口发出指令,发送或接收各类外部设备的数据,从而实现软件应用程序对硬件的操作 |
模拟问题: dd if= /dev/zero of=/dev/vda bs=446 count=1
重启开机后,会卡在这里。
解决
(1)让虚拟机开机时以光驱开启。
(2)开机进入挽救模式
(3)df 查看一下 boot分区所在硬盘为/dev/vda
(4)grub2-install 启动分区所在硬盘
(5)两次exit 就好了
(6)更改开机启动方式,重启问题就解决了
模拟问题: rm -fr /boot/grub2/grub.cfg
解决
未重启时,
重启 时:
(1)以磁盘方式开启虚拟机,此时,系统会停在这里,因为丢失了引导文件,说以我们可以手动引导
(2)grub > set root=‘hd0,msdos1’ 此位置是不固定的,位置指定/boot所在分区
(3)grub > linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1 #跟分区的设备名称
(4)grub > initrd16 /initramfs-3.10.0-123.el7.x86_64.img
(5)boot
(6)以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行: grub2-mkconfig > /boot/grub2/grub.cfg
模拟问题: rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64
解决:
(1)以光驱启动,进入rescus挽救模式
(2)chroot /mnt/sysimage 进入/dev/vda1挂载点
(3)mkdir /rhel7 (建立光盘挂载点)
(4)mount /dev/sr0 /rhel7 将光盘挂载在此目录
(5)cd /rhel7/Packages 到达镜像的包下
(6)cp kernel-3.10.0-123.el7.x86_64.rmp /mnt 我们将安装包复制在/mnt下
(7)cd /mnt 在mnt目录 rpm2cpio kernel-3.10.0-123.el7.x86_64.rmp|cpio -id 然后将包安装解压,我们解压出boot etc lib 与内核安装包
(9)cd /mnt/boot 在 /mnt/boot 下 cp vmlinuz-3.10.0-123.el7.x86_64 /boot 将/mnt/boot中的内核复制到/boot中
(11)exit最后退出挂载点,exit最后退出
模拟问题:rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
当系统没有重启 时
==mkinitrd /boot/initramfs-$(uname).img (uname).img ==
当系统** 重启**
(1)进入挽救模式
(2)chroot /mnt/sysimage
(3)mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
(1)以光驱启动虚拟机,进入到挽救模式
(2)chroot /mnt/sysimage
(3)mkdir /boot
(4)grub2-install /dev/vda 安装主引导记录mbr
(5)mount /dev/sr0 /mnt
(6)rpm -ivh /mnt/Packages/kernel-3.10.0-123.el7.x86_64.rpm --force 安装内核文件
(7)grub2-mkconifg > /boot/grub2/grub.cfg
**模拟问题:systemctl set-default reboot.target**开机后会不停重启
解决:
(1)开机按上下键停止读秒
(2)按“e”进入编辑模式
(3)选择内核启动行
linux16 /vmlinuz-xxxx ro xxxx 改为 linux16 /vmlinuz-xxxx 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
(8)exit*2
(1)开机按上下键停止读秒
(2)按“e”进入编辑模式
(3)选择内核启动行
linux16 /vmlinuz-xxxx ro xxxx 改为 linux16 /vmlinuz-xxxx rw rd.break
(4)ctrl+x
(5)chroot /sysroot
(6)passwd 来修改用户密码,设置密码为redhat,再次输入密码redhat,即可更改root用户密码
(7)touch /.autorelabel 让selinux生效,即可重新开启虚拟机。