1. BIOS详解 BIOS(Basic Input/Output System),基本输入输出系统,该系统存储于主板的ROM芯片上,计算机在开机时,会最先读取该系统,然后会有一个加电自检过程,这个过程其实就是检查CPU和内存,计算机最基本的组成单元(控制器、运算器和存储器),还会检查其他硬件,若没有异常就开始加载BIOS程序到内存当中。详细的BIOS功能,这边就不说了,BIOS主要的一个功能就是存储了磁盘的启动顺序,BIOS会按照启动顺序去查找第一个磁盘头的MBR信息,并加载和执行MBR中的Bootloader程序,若第一个磁盘不存在MBR,则会继续查找第二个磁盘(PS:启动顺序可以在BIOS的界面中进行设置),一旦BootLoader程序被检测并加载内存中,BIOS就将控制权交接给了BootLoader程序。

1.系统启动流程

第一步: 电脑通电

第二步: BIOS(主板上的只读存储ROM中,basic input or output system) ** 作用,硬件检测,激活硬件**

第三步: grub系统引导(grub引导分为两个阶段) 1)阶段1 grub磁盘引导阶段 mbr(主引导记录)主引导记录在硬盘上的0磁道,一扇区,446个字节 (MBR(Master Boot Record),主引导记录,MBR存储于磁盘的头部,大小为512bytes,其中,446bytes用于存储BootLoader程序,64bytes用于存储分区表信息,最后2bytes用于MBR的有效性检查。 ) 1./dev/zero of=/dev/vda bs=446 count=1 可以清空mbr 1)chroot /mnt/sysimage切换到真实/环境, 并执行grub2-install /dev/vda 2)阶段2 grub文件引导阶段 找到/boot分区 读取/boot/grub2/grub.cfg /etc/grub.cfg 文件丢失,grub2-mkconfig >/boot/grub2/grub.cfg grub2-mkconfig > /etc/grub.cfg

第四步: 内核引导阶段: 1. 启动内核,只读挂载/设备 2.检测硬件设备 3.对设备驱动进行初始化 4.进入系统初始化阶段, 挂载 内核丢失,从新安装内核安装包就可以解决 方法一: rpm -ivh kernel-xxxxx.rpm --force 方法二: 1.在virt-manager里面,将光驱 IDE CDROM1 放在开机启动项第一位,启动主机进入挽救模式 2.chroot /mnt/sysiamge 将系统挂载更改到根目录下 3.mount /dev/sr0 /westos 将光盘文件挂载 4.cd /westos/ 切换到光盘挂载点 5.ls 查看光盘中的文件 6.cd Packages/ 切换到安装包目录中(记住,不要ls,有4000多个包) 7.cp kernel-3.10.-123.e17.x86_64.rpm /mnt/
将这个文件包拷贝到/mnt/下,因为在光盘目录中不能进行拆包 8.cd /mnt/ 切换到/mnt/ 9.ls 查看/mnt/下拷贝过来的文件包 10.rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id 拆包
11.ls 查看包中的文件 12.pwd 查看当前路径 13.cd boot/ 切换到包中的boot/目录下 14.ls -l 包中存在内核文件 15.cp vmlinuz-3.10.0-123.e17.x86_64 /boot/
将内核文件拷贝到系统的/boot/目录下

16.exit 退出chroot更改的根目录 exit shell窗口

第五步: 系统初始化阶段 1.系统初始化阶段加载initrd镜像 initrd镜像丢失如何解决? initramfs-uname -r.img丢失用: mkinitrd initramfs-uname -r.img uname -r

**方法一:**
1.当系统没有重新启动时
uname -r ##系统当前版本
1)mkinitrd /boot/initramfs-`uname −r`.img `uname -r`                            生成系统初始化镜像
initramfs是/boot/grub2/grub.cfg  文件已经写好的,不能更改
2)mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)  ##生成系  统初始化镜像

**方法二:**

1)进入到挽救模式 1..chroot /mnt/sysiamge 使用超级用户 2.mkinitrd /boot/initramfs-uname −r.img uname -r 生成系统初始化镜像 重启速度会慢一点
原因:重新扫描selinux 解决:将/etc/sysconfig/selinux中enforcing改成disabled 第六步: 开启初始化进程systemd 1.开始selinux 2.加载内核参数 3.初始化系统时钟,键盘,主机名称 4.重新读写挂载/设备 5.激活raid,lvm 6.激活配额 启动multi-user.target.wants中的所有服务(具体开启的服务取决于系统启动的级别) 7.开启虚拟控制台 8.启动图形 ** 如何修改系统启动级别?** 系统启动级别 (init 0)runlever0.target -> poweroff.target runlever1.target -> rescue.target runlever2.target -> multi-user.target (init 3)runlever3.target -> multi-user.target runlever4.target -> multi-user.target (init 5)runlever5.target -> graphical.target (init 6)runlever6.target -> reboot.target 方法一: systemctl set-default + 启动级别 方法二: /etc/systemd/system/default.target 第七步: 用户名密码登录 忘记密码如何解决? 1.开机按上下健停止读秒 2.按E进入编辑模式 3.选择内核启动行 Linux16 /vmlinuz-xxxxx ro xxxx 改为: Linux16 /vmlinuz-xxxxx rw rd.break ##在内核启动完成后终止系统初始化程序的执行 4.启动系统 ctrl+x Chroot /sysroot Echo westos |passwd --stdin root
Touch /.autorelabel ##重新初始化selinux,当selinux未开启时不需要操作