• Linux入门基础(六):Linux系统启动


    系统启动流程

    1. BIOS
    2. MBR : Boot Code
    3. 执行引导程序-GRUB
    4. 加载内核
    5. 执行init
    6. runlevel

    BIOS

    • BIOS(basic input output system),我们称之为基本输入输出系统,一般保存在主板的BIOS芯片中
    • 计算机启动第一个运行的就是BIOS,BIOS负责检查硬件并查找可启动设备
    • 可启动设备在BIOS设置中进行定义,如USB/CDROM/HD等

    MBR

    • 扇区的前512字节储存MBR信息
    • BIOS通过MBR的最后两个字节是否是55aa来识别该设备是否是可启动设备
    • BIOS找到可启动设备后执行其引导代码
    • 引导代码为MBR的前446字节

    GRUB

    • GRUB是现在Linux使用的主流引导程序
    • 可以用来引导现在几乎所有的操作系统
    • GRUB的相关文件保存在/boot/grub目录中
    • GRUB配置文件尾/boot/grub/grub.conf

    GRUB加载顺序 :

    1. stage1(MBR的镜像,大小512字节)
    2. 文件系统名_stage1_5(增加对各个文件系统的支持,比如e2fs_stage1_5,xfs_stage1_5等)
    3. stage2
    4. 内核

    内核

    • 引导代码将负责找到并加载Linux内核
    • Linux为保持内核的精简,将一些不常用的驱动,功能编译成模块,在需要的时候动态加载.而这些模块被打包保存为以个initramfs文件
    • 早期版本Linux使用initrd文件,initramfs是initrd的替代优化版,更加节省空间和灵活
    • 命令dmesg可以查看本次启动时内核的输出信息

    INIT

    • init是Linux系统中运行的第一个进程
    • top 命令可以查看PID,其中1为init,init是所有进程的父进程,并且一直存在
    • init负责使用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并且根据运行级别启动相应服务

    运行级别

    • Linux运行级别
      • 0 关机
      • 1 单用户模式
      • 2 不带网络的多用户模式
      • 3 多用户模式(常用的命令行模式)
      • 4 未使用
      • 5 xll 图形化多用户(常用的图形界面模式)
      • 6 重新启动
    • 默认的运行级别可以通过文件/etc/inittab 下配置修改
    • 命令runlevel 显示上个和当前运行级别
    • 命令init 数字 可以改变当前运行级别

    单用户修改root密码

    • 为内核传递参数‘1’(运行级别1)或者“single”系统进入单用户
    • 单用户模式下不启动任何服务
    • 单用户模式直接以root用户登录,并且不需要密码
    • 可以使用passwd修改root密码
  • 相关阅读:
    <数据结构基础学习>(四)链表 Part 2
    <Android基础> (四) Fragment Part 2
    swagger忽略方法里参数的方法
    ActiveMq
    Tomcat日志归档
    java代理的实现
    包装类型和基础类型是如何比较的
    hashmap
    可达性分析中,可以作为GcRoots的对象
    使用Navicat 连接oracle出现 “ORA-03135: Connection Lost Contact”
  • 原文地址:https://www.cnblogs.com/FromZeroToGod/p/10676811.html
Copyright © 2020-2023  润新知