zoukankan      html  css  js  c++  java
  • Linux系统引导过程

    一、BIOS与UEFI

    当计算机加点以后的第一件 事情就是启动BIOS/UEFI。根据保存在稳定的只读内存中的设置,BIOS/UEFI程序执行一系列的诊断以及检测并连接CPU和关键控制器。这就是所谓的“加电自检”

    RHEL7支持传统的MBR分区布局和较新的GUID分区(GPT)表格式。

    要使用CPT分区布局的磁盘上引导RHEL,需要系统具有UEFI固定接口,而不是传统的BIOS固件。

    二、引导程序与GRUB2程序

    目标:

    (1)如何通过GRUB2菜单引导到不同的目标。

    (2)诊断并纠正由引导程序错误引起的引导失败。

    一定意义上,systemd target和RHEL6上的运行级别类似。通过在内核命令行的末尾添加字符串“systemd.unit=name.target”,可以改变这个目标

    2.1 将系统引导到不同目标:

    查看target:

    [root@localhost system]# systemctl list-unit-files --type=target

    修改状态:

    systemctl set-default multi-user.target

    查看默认目标:

    [root@localhost system]# ll /etc/systemd/system/default.target
    lrwxrwxrwx. 1 root root 40 12月  4 20:03 /etc/systemd/system/default.target -> /usr/lib/systemd/system/graphical.target
    或者:

    [root@localhost system]# systemctl get-default
    graphical.target

    练习1:

    (1)将系统启动引导到多用户文本模式:

    systemctl.unit=multi-user.target

    (2)将系统引导到救援目标:

    systemctl.unit=rescue.target

    (3)将系统引导到紧急目标:

    systemctl.unit=emergency.target

    (4)

    rd.break

    (5)将系统引导到急救shell:

    init=/sysroot/bin/sh

    练习2:恢复root口令

    https://www.cnblogs.com/anttech/p/11324332.html

    2.2 修改系统引导程序

    可修改系统的引导程序/boot/grub2/grub.cfg文件,以传递额外的内核参数,或者引导进入非默认的systemd目标。

    方法:修改/etc/default/grub配置文件或者/etc/grub.d/目录中的脚本文件生成/boot/grub2/grub.cfg文件的新版本。

    grub2-mkconfig -o /boot/grub2/grub.cfg

    #注意:不要手动编辑/etc/grub2/grub.cfg文件。该文件是在安装或者更新系统时自动生成的,所以直接对该文件作出的修改将会丢失。使用grub2-mkconfig和/etc/default/grub文件夹修改grub.cfg。

    /etc/default/grub文件详解:

    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
    GRUB_DISABLE_RECOVERY="true"

    第一行:等待多少秒后,GRUB2会自动引导默认操作系统。

    第二行:回显内核启动条目

    第三行:与grub2加载默认内核有关。“saved”告诉grub2在/boot/grub2/grubenv文件中寻找saved-entry变量,并告诉GRUB2引导一个不同的默认内核。

    指定默认引导内核:

    #grub2-set-default 1  #将第二个菜单项设置为默认启动内核

    第四行:引导时禁用任何子菜单

    第五行:文本控制台作为默认的输出终端

    第六行:指定传递给内核的选项:

    rd.lvm.lv给出包含root文件系统和交换分区的逻辑卷的名称

    vconsole.font给出默认字体

    vconsole.keymap给出键盘映射

    crashkenel选项为kdump保留一些内存,当系统崩溃时,调运kdump来捕捉内核转存

    rhgb quiet默认启动RedHat图形引导并隐藏引导消息。

    第七行:禁止生成恢复菜单项

    2.3 grub2的命令行

    (1)确定grub文件位置

    grab > ls
    grab > ls (hd0,msdos1)/grub2/grub.cfg
    grub > cat (hd0,msdos1)/grub2/grub.cfg
    grub > search.file /grub2/grub.cfg

    (2)查看一个在LVM卷上的文件系统

    grub > insmod lvm
    grub > ls
    grub > cat (lvm/rhel-root)/etc/fstab

    2.4 重新安装grub2


    2.5 从grub2 引导急救模式

    三、grub2与登录

    在systemd中,可将Unix中的理念(“一切皆文件”)重新表述为“一切皆单元”。单元是systemd的基本构成模块。










  • 相关阅读:
    讲清楚之 javascript 参数传值
    JS+CSS3 360度全景图插件
    一些个人感觉很不错的特效
    从ES6重新认识JavaScript设计模式(三): 建造者模式
    动态监听输入框值的变化
    React Native基础&入门教程:调试React Native应用的一小步
    这儿有一个使你网页性能提升10倍的工具
    业务连续性实战
    strong and weak 强引用和弱引用的差别
    Codeforces Round #254 (Div. 2):B. DZY Loves Chemistry
  • 原文地址:https://www.cnblogs.com/anttech/p/12702856.html
Copyright © 2011-2022 走看看