zoukankan      html  css  js  c++  java
  • Linux启动流程

    一、RHEL6

    RHEL6启动级别:
    1.关机 init 0
    2.单用户模式(文本模式) init 1
    3.多用户模式,无网络(文本模式) init 2
    4.完整多用户模式 (文本模式) init 3
    5.没有被使用 init 4
    6.多用户图形界面 init 5
    6.重启 init 6

    一直重启:
    假设vim /etc/inittab
    id:5:... 将5改为6
    init 6 重启,就会一直重启,则:

    时间倒数时
    一直按e键 再按e 选第二行 按e
    空格
    quiet 5或3
    回车
    b


    vim /etc/inittab
    id:6:... 将6改为5
    :wq保存并退出


    忘记密码:
    时间倒数时
    按e键 再按e 选第二行 按e
    空格
    quiet 1 进入单用户模式下
    回车
    b
    passwd
    root
    123456
    123456
    reboot 重启

    启动流程:
    1>.开机加电自检
    2>.找到GRUB引导器
    3>.选择加载内核或者加载grub
    4>.内核把init导入到内存中开始执行
    5>.读取etc/inittab
    etc/rc.d/rc.sysinit
    etc/fstab
    etc/rd.d/rc.local
    6>.加载/sbin/mingetty

    MBR位于磁盘边缘的一段引导代码
    分为3部分:grub 446节,分区表 64字节,校验位55AA 2字节,一共512字节,一个扇区,每16个字节记录1个分区信息

    分区表记录磁盘如何分区
    grub:系统启动管理器
    cat /boot/grub/grub.conf
    default=0,默认从0开始启动
    timeout=5,倒数5s
    splashimage 启动后调用背景图片
    hiddenmenu 隐藏菜单
    initrd 帮助内核

    内核版本号
    主版本号,次版本号(若为奇数为正在开发的),补丁级数
    显示内核:uname -r


    二、RHEL7

    1、RHEL7的启动级别
    rescue.target
    单用户模式
    和多用户区别在于,不启动如何服务,加载了文件系统
    适用于某服务设置故障,进入此模式修补

    multi-user.target
    多用户模式,文本

    graphical.target
    图形化,和多用户模式没什么区别,就多了图形化驱动

    emergency.target
    救援模式(只挂载/而且只读,不加载/etc/fstab)


    2、级别切换
    在系统内
    systemctl isolate xxx.target

    没进入系统时,按e,到linux16行尾
    进入单用户的其他方法
    按e,到linux16行尾加入s(single),此模式需要密码

    进入救援的方法
    按e,到linux16行尾加入emergency,和单用户基本一样,也需要密码,不加载/etc/fstab

    RHEL6 fsck---ext3 ext4
    RHEL7 xfs_repair 文件系统
    rd.break
    临时中断运行,未加载文件系统,比单用户还要精简
    (也可以用init=/bin/bash init=/bin/sh)

    3、RHEL7启动过程:

    1.开机
    2.找主板BIOS
    检测硬件是否有故障
    找启动介质
    一个特殊的分区--boot分区
    MBR Master Boot Recorder 主引导记录
    512字节
    446字节---Bootloader(GRUB2)
    64字节 ---分区表 一个分区16字节
    2字节 ---校验结束位
    内核保存在 /boot
    通过GRUB2加载内核到内存
    GRUB2实际上是一个微型的OS,此os会识别一些常用的文件系统,
    GRUB2运行时会读取自己的配置文件
    /boot/grub2/grub.cfg
    每个内核条目以menuentry开头
    menuentry包含标题,选项(自己不要修改)
    menuentry后面有一对大括号,其中都是启动项
    启动项以TAB开头
    linux16这行指定内核的位置,根分区的位置,以只读方式挂载根分区
    字符集,键盘布局,语言
    rhgb --- 以图形化方式显示启动过程
    quiet--- 启动过程出现错误,提示

    根都是xfs格式的,xfs需要驱动才能读取,/lib/modules/3.10.0-123.el7.x86_64/kernel/fs/xfs启动的位置

    通过initrd16 将启动相关的驱动和模块解压到内存。

    在RHEL7 grub.cfg不能直接修改,要通过修改/etc/default/grub
    修改启动的配置文件
    修改后用grub2-mkconfig工具生成grub2.cfg
    /etc/grub.d目录在grub2-mkconfig生成配置文件时是需要加载的
    00_header 设置grub的默认参数
    30_os_prober 设置其他分区中的系统(硬盘中有多个操作系统设置
    方法)
    40_custom
    41_custom 用户自己自定义
    10_linux 系统中存在多个linux版本
    20_ppc_terminfo 设置tty控制台

    /boot/grub2/grub.cfg是上面文件的组合

    设置某个内核启动?
    grub2-set-default saved|号码
    (/etc/default/grub)

  • 相关阅读:
    C++中所有的变量和函数都必须有类型
    C++中struct类型增强
    C++对C语言的变量检测增强
    C++对C语言register的增强
    C++对C的实用性增强
    namespace命名空间
    文件操作:fseek函数和ftell函数
    最大子序和
    雪花雪花雪花(Hash思想)
    暑假集训-8.01总结
  • 原文地址:https://www.cnblogs.com/xmdjb/p/10949614.html
Copyright © 2011-2022 走看看