美文网首页
5个RHCE考试的实验

5个RHCE考试的实验

作者: epiiplus1equal0 | 来源:发表于2019-03-09 01:19 被阅读0次

    [TOC]

    系统启动流程

    • 一. BIOS初始化过程:

      1. 硬件自检 dmesg /var/log/dmesg 性能越好, 启动自检的时间越长
      2. 选择启动设备
    • 二. GRUB(grand unified bootloader)

      1. BIOS读取并执行引导程序(固定的代码)

        MBR # master boot loader
        # 第一扇区 = MBR  +   partition table + end
        #           引导程序  分区表(16*4)       结束位
        # 512bytes = 446  +   64             +  2
        
      2. 引导程序读取配置文件/boot/grub2/grub.cfg

        default = 0   # 第一个菜单进入
        timeout = 5   # 倒计时5s, 0 为直接进入
        title ...
              root    # 指定/boot目录所在分区 (hd0,0)表示第一块硬盘的第一个分区
              kernel  # 加载内核文件, 并以只读的方式挂载
              init    # 加载init ram disk(内存磁盘文件)
                      # 内存磁盘文件内部封装驱动, 在内存中解压, 最终驱动根
        

    1. 删除/boot/grub2/grub.cfg并修复

    rm -rf /boot/grub2/grub.cfg
    # 修复, 先重启系统, 进入如下界面:
    grub> set root='hd0,msdos1'
    grub> linux16 /boot/vm... ro root=/dev/vda1 # 此处的root为指定根目录的位置
    grub> initrd16 /boot/initra...img
    grub> boot
    # 重启后生成配置文件, 即可修复系统:
    grub2-mkconfig -o /boot/grub2/grub.cfg # 重新生成grub.cfg的配置文件
    # 其实上面这几步可以看作是分别手动指定系统启动流程里面的/boot目录所在分区, 
    # 指定内核文件所在位置, 以及内存磁盘文件的位置
    

    2. 设置默认启动

    条件:

      1. 升级内核
      2. 从旧内核启动
    cat /boot/grub2/grub.cfg | grep menuentry
    grub2-set-default "Red Hat ..." # 注意选择你需要使用的内核版本
    grub2-editenv list              # 展示你选择默认启动的内核版本
    reboot                          # 重启后就会发现已经生效
    

    3. 破解密码

    # 进入操作系统界面, 按e
    linux16 ... # 删除内容到ro后面, 输入rd.break
    ctrl x
    mount -o remount,rw /sysroot/ # 以读写的方式重新挂载/sysroot/, 
                                  # 因为真实的根就在/sysroot/下
    chroot /sysroot/
    passwd                        # 到此步可以修改root密码
    touch .autorelabel            # 此步骤一定要进行, 告诉系统启动时打selinux标签
                                  # 重启系统时打selinux标签会比较慢, 莫认为系统出问题
    exit
    exit
    

    4. 破环引导程序后如何修复

    # 在虚拟机中测试
    rm -rf /boot/grub2/*
    dd if=/dev/zero of=/dev/vda bs=446 count=1
    # 接下来开始修复:
    # 选择PXE启动或光盘启动, 进入救援模式
    chroot /mnt/sysimage
    grub2-install /dev/vda # 重构MBR
    grub2-mkconfig -o /boot/grub2/grub.cfg
    exit
    exit
    # 修改启动顺序, 选择硬盘启动
    

    5. 破坏第一扇区, 删除/boot目录下的文件并修改/etc/fstab后如何修复

    # 依旧在虚拟机中测试, 先做好备份:
    dd if=/dev/vda of=/tmp/boot.bak bs=512 count=1
    scp /tmp/boot.bak 172.25.0.1:/root/boot.bak # 将本地的第一扇区备份到远端主机
    # 再破坏:
    dd if=/dev/zero of=/dev/vda bs=512 count=1
    rm -rf /boot/*
    mv /etc/fstab /etc/fstab.bak
    # 接下来修复:
    
    # 1. 先修复分区表:
    # 选择PXE环境启动, 进入救援模式
    mkdir /redhat ; cd /redhat
    scp 172.25.0.1:/root/boot.bak .
    dd if=/redhat/boot.bak of=/dev/vda
    fdisk -l /dev/vda # 此时可以看到分区表的内容
    reboot            # 再次进入救援模式, 可以看到分区
    
    # 2. 再根据分区表进入分区, 恢复系统启动时会读取的配置文件/etc/fstab
    mkdir /redhat
    mount /dev/vda1 /redhat
    mv /redhat/etc/fstab.bak /redhat/etc/fstab
    reboot            # 再次进入救援模式
    
    # 3. 重新安装内核(包括内核文件和内存磁盘文件)
    chroot /mnt/sysimage/
    rpm -qf vm...     # 查询内核文件来自于哪个包
    yum -y reinstall kernel # 强制重装内核
    grub2-install /dev/vda
    grub2-mkconfig -o /boot/grub2/grub.cfg
    exit
    exit
    # 将启动模式设为硬盘启动
    # 重启, 系统恢复正常
    

    相关文章

      网友评论

          本文标题:5个RHCE考试的实验

          本文链接:https://www.haomeiwen.com/subject/ipujpqtx.html