Linux学习23-CentOS6系统启动流程

CentOS6系统启动流程

1. Linux组成

  • Linux: kernel+rootfs

    1. 内核(kernel)的基本功能:
      进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能
    2. rootfs:程序和glibc

      1. 库:函数集合, function, 调用接口(头文件负责描述)

        • 过程调用:procedure,无返回值
        • 函数调用:function
      2. 程序:二进制执行文件
      3. 查看:ldd可以查看可执行文件所调用的库
    3. 内核设计流派:

      1. 单内核(monolithic kernel):Linux
        把所有功能集成于同一个程序

      2. 微内核(micro kernel):Windows, Solaris
        每种功能使用一个单独子系统实现

  • Linux内核

    • 特点:

      1. 支持模块化:.ko(kernel object内核对象)
        如:文件系统,硬件驱动,网络协议等
      2. 支持内核模块的动态装载和卸载
    • 组成部分:

      1. 核心文件
        命令ll /boot/ 查看目录下文件,其中2个相当重要的

      2. /boot/vmlinuz-VERSION-release

        1. 放置核心工具内容,其他相对不是核心的东西分门别类放在/lib/modules下个各种模块中,模块化优点是易于维护。
        2. 安装之前已经确定好的文件,日期早与系统安装时间
        3. 文件破坏后修复方法
          1. 进入救援模式,方法见后面实验,这里不重复了。
          2. 创建一个挂载点/mnt/cdrom,挂载光盘
          3. mount /dev/sr0 /mnt/cdrom
          4. 进入光盘找到对应文件/mnt/cdrom/isolinux/vmlinuz
          5. 拷贝到原系统误删目录下,/mnt/sysimage/boot/vmlinuz-`uname -r`
          6. 确认文件是否拷贝
      3. ramdisk:辅助的伪根系统,使用缓冲和缓存来加速对磁盘上的文件访问,并加载相应的硬件驱动
        1. CentOS 5: /boot/initrd-VERSION-release.img
          initrd解释为init-ramdisk,模拟磁盘
          生成工具:mkinitrd
        2. CentOS 6,7: /boot/initramfs-VERSION-release.img
          initramfs解释为init-ramfilesystem,模拟分区,效率高于模拟磁盘
          生成工具:mkinitrd, dracut
      4. 模块文件:/lib/modules/VERSION-release
  • 实验:删除伪根系统文件,然后修复

    1. 删除initramfs-3.10.0-862.el7.x86_64.img
    2. 重启系统,在载入画面按一次ESC键,选择CD加载
    3. 选择Rescue installed system
      这里写图片描述
    4. 进入系统后会让选择语言,和键盘,都选英语
      这里写图片描述

    5. 网络不用配,选择no
      这里写图片描述

    6. 系统挂载信息,这里选择Continue,如果选择read-only则只能看,skip为忽略,也就不挂载,advanced为高级选项,一般用不到。
      这里写图片描述

    7. 系统会去找根目录,找到后就会挂载到/mnt/sysimage下,会提示可以使用chroot /mnt/sysimage来切换到原系统根上

    8. 选择shell
      这里写图片描述

    9. df查看原根目录挂载点

    10. 切换到原根目录
      命令chroot /mnt/sysimage/
    11. 进入到被破坏文件的目录下/boot
      输入:mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
      或者:dracut /boot/initramfs-$(uname -r).img $(uname -r)
    12. 确认文件已经生成ls
    13. 输入两次eixt
    14. 选择重启

2. CentOS6启动流程

这里写图片描述

  1. 加电自检
    加载BIOS的硬件信息,获取第一个启动设备

    1. POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测
    2. ROM:BIOS,Basic Input and Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和系统启动自举程序等
    3. RAM:CMOS互补金属氧化物半导体,保存各项参数的设定
  2. MBR引导

    1. 按次序查找引导设备,第一个有引导程序的设备为本次启动设备,读取MBR的引导,把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核
    2. MBR读取第一扇区的前446个字节去尝试引导操作系统
      446: bootloader;64: 分区表; 2: 55AA
  3. GRUB:GRand Unified Bbootloader 引导加载器

    1. 在MBR引导完成后,开始寻找各操作系统的引导程序,Linux使用的为GRUB加载程序
    2. GRUB有2部分内容,都不能破坏,不然系统无法启动

      1. primary boot loader : 1st stage,1.5 stage
        • 1st stage在MBR前446个字节中,不属于任何分区,里面指针指向2阶段文件
        • 1.5 stage在MBR后面的27个sectors
      2. secondary boot loader :2nd stage
        文件存放在/boot/grub ,新安装系统grub.conf和图片文件,只要修复一次后,就会将1、1.5、2阶段需要的文件系统驱动文件备份到此目录下,所以关键文件为grub.conf,如下所示

        #boot=/dev/sda
        1:default=0   <==定义启动优先级
        2:timeout=5    <==等待倒计时,不指定则按默认启动
        3:splashimage=(hd0,0)/grub/splash.xpm.gz   <==背景图片
        4:hiddenmenu
        5:title CentOS 6 (2.6.32-754.el6.x86_64)    <==菜单名字,可以修改,也可以再增加几栏
        6:   root (hd0,0)                          <==boot分区所在,修复命令中就是这样表示
        7:   kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=UUID=bc5e1202-11ed-42d4-bbec-16c1d408f809 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        8:   initrd /initramfs-2.6.32-754.el6.x86_64.img
        
        • default:定义启动优先级,例如第5-8行为第一个菜单序号为(0),如果在后再增加一个菜单序号为(1),启动顺序有小到大
        • splashimage:菜单栏背景图,图片在/boot/grub/下,后缀为xpm.gz,可修改
          1. 找到素材,像素大小640/480,导入Linux中
          2. 安装工具
            yum install ImageMagick
          3. -resize调整大小,-colors定义颜色,原图片,生成格式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值