Linux系统启动原理

Linux系统启动原理及故障排除

Centos6系统启动过程

在这里插入图片描述

修改系统启动级别

vim /etc/inittab

Centos7启动流程

加载BIOS信息,进行硬件检测
根据BIOS设定读取设备中的MBR,加载Boot loader
加载内核,内核初始化以后以模块的形式动态加载硬件
并且加载initramfs虚拟文件系统,然后将虚拟文件系统加载到内存中
调用initrd.target 挂载/etc/fstab中文件系统
切换回硬盘真实目录,然后启动第一个进程systemd

在这里插入图片描述

运行级别切换

#在centos6、7切换界面
init 3  切换字符界面
init 5  切换图形界面
#属于centos7切换字符界面
systemctl isolate multi-user.target
systemctl isolate runlevel3.target#切换图形页面
systemctl isolate grpahical.target#centos设置系统默认启动级别
systemctl set-default graphical.targetll /etc/systemd/system/default.target
grub2
[root@localhost ~]# vim /etc/default/grub 
GRUB_TIMEOUT=5   #开机时grub默认5秒后启动
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=1    #0代表第一个内核,1代表第二个
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"

查看操作系统内核

[root@localhost ~]# uname -r
3.10.0-957.el7.x86_64

故障排除

1.加密grub防止过单用户系统修改root密码

生成MD5密码

[root@localhost ~]# grub2-mkpasswd-pbkdf2 
输入口令:123456
Reenter password: 123456 
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.45259E0BC9FC9D0F16C89B0014D74C7275D3423E4832F1BFE0FE0D6E6521037F986A4E9D12809D939838DB374FA2C60BEA92BD9569038E1344D025903EA33A23.CF7713EC8EF3D4A47A378D304C917B2BD4E01173EC6560BC448B7A4669D98502820D9C311484877A65428848D5A46BF57561BAA3484471F1204AD7EF056F12C7

将刚好生成MD5密码复制此文件下面

[root@localhost ~]# vim /etc/grub.d/00_header 
cat << EOF
set superusers='rs'
password_pbkdf2 rs grub.pbkdf2.sha512.10000.45259E0BC9FC9D0F16C89B0014D74C7275D3423E4832F1BFE0FE0D6E6521037F986A4E9D12809D939838DB374FA2C60BEA92BD9569038E1344D025903EA33A23.CF7713EC8EF3D4A47A378D304C917B2BD4E01173EC6560BC448B7A4669D98502820D9C311484877A65428848D5A46BF57561BAA3484471F1204AD7EF056F12C7
EOF

重新加载配置文件

[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg 

重启验证

在这里插入图片描述

输入“e”之后,输入用户和密码

就能看到grub菜单,就证明加密成功

2.当MBR引导记录损坏后-重装grub进行修复

  1. 先破坏硬盘的前446字节

    [root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=1 count=446
    记录了446+0 的读入
    记录了446+0 的写出
    446字节(446 B)已复制,0.00182828 秒,244 kB/秒
    
  2. 将centos7系统光盘装载到虚拟机光驱上,修改BISO引导顺序,让光盘启动

    在这里插入图片描述

    进入启动的页面

    在这里插入图片描述

    选择第三项进入故障排除页面后,点击第二项

    在这里插入图片描述

    #进入如下模式,选择1,会进入一个shell模式,进行系统修复
    mount
    chroot /mnt/sysimage
    grub2-install /dev/sda
    exit
    reboot
    

3.在centos7下误删grub文件进行修复

  1. 误删grub2

    [root@localhost ~]# rm -rf /boot/grub2
    
  2. 重启计算机

    [root@localhost ~]# reboot
    

    在这里插入图片描述

    再次重启系统,按ESC,进入光盘救援模式,进入光盘救援使用live cd 进入救援模式后

    #切换根目录
    chroot /mnt/sysimage
    #执行命令
    grub2-install /dev/sda
    grub2-mkconfig -o /boot/grub2/grub.cfg
    exit
    reboot
    

4.密码找回

​ 1.首先重启系统

在这里插入图片描述

进入启动界面内按“e”进入编辑模式

​ 2.进入编辑模式进行编辑

在这里插入图片描述

找到“Linux16”开头的行,在Linux的行尾空格后添加“rd.break”

添加,完成之后,按ctrl+x即可

在这里插入图片描述

查看下挂载信息

mount | grep “centos-root”
#查看过后发现不具备rw读写权限

重新挂载,拥有读写权限

mount -o remount,rw /dev/mapper/centos-root /sysroot/

切换根目录

chroot /sysroot/

使用passwd命令修改root密码

passwd root

修改完密码之后,创建.autorelabel隐藏文件

#因为rd.break环境下SELinux是不生效的。
#在不生效的情况下修改用户的密码,也就是修改/etc/shadow文件。
#所以密码文件的安全上下文会被取消
#如果没有让系统在启动时自动恢复SElinux的安全上下文,系统会报错无法登录
#所以在根目录下创建隐藏文件.autorelabel会让系统在重启时以SELinux默认类型重新写入SELinux安全上下文
touch /.autorelabel

或者是

vim /etc/selinux/config 
修改成:SELINUX=disabled

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/332232.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring】深入理解 Spring 状态机:简化复杂业务逻辑的利器

前言 在软件开发中&#xff0c;有许多场景需要处理状态转换和状态驱动的逻辑&#xff0c;比如订单处理、工作流程管理、游戏引擎等。Spring 状态机&#xff08;Spring State Machine&#xff09;是 Spring Framework 提供的一个强大的模块&#xff0c;用于帮助开发人员轻松构建…

IOT技术怎么落地?以宝马,施耐德为例

物联网技术 物联网&#xff08;IoT&#xff09;技术正逐渐成为数字化工厂转型的核心驱动力。本文将通过实际案例&#xff0c;探讨IoT技术如何促进制造业的数字化转型&#xff0c;提高生产效率&#xff0c;降低成本&#xff0c;并提升产品质量。 1. 物联网技术简介 物联网技术通…

【Python】 XGBoost模型的使用案例及原理解析

原谅把你带走的雨天 在渐渐模糊的窗前 每个人最后都要说再见 原谅被你带走的永远 微笑着容易过一天 也许是我已经 老了一点 那些日子你会不会舍不得 思念就像关不紧的门 空气里有幸福的灰尘 否则为何闭上眼睛的时候 又全都想起了 谁都别说 让我一个人躲一躲 你的承诺 我竟然没怀…

部署LAMP平台

目录 一、LAMP简介与概述 1.1 各组件作用 1.2 LAMP平台搭建时各组件安装顺序 1.3 httpd服务的目录结构 1.4 httpd.conf配置文件 二、编译安装Apache httpd服务 2.1 关闭防火墙&#xff0c;将安装Apache所需软件包传到/opt目录下 2.2 安装环境依赖包 ​2.3 配置软件模块…

3.Redis之Redis的环境搭建redis客户端介绍

1.版本的选取 安装 Redis&#xff1a;Redis 5 系列~~ 在 Linux 中进行安装~~ Redis 官方是不支持 Windows 版本的~~ 微软维护了一个 Windows 版本的 Redis 分支 Centos和Ubuntu.Docker 2.如何进行安装&#xff1f;&#xff1f;&#xff1f; 1.ubuntu 2.centos yum instal…

设计模式在芯片验证中的应用——模板方法

一、模板方法 模板方法(Template Method)设计模式是一种行为设计模式&#xff0c; 它在父类中定义了一个功能的框架&#xff0c; 允许子类在不修改结构的情况下重写功能的特定步骤。也就是模板方法定义了一组有序执行的操作&#xff0c;将一些步骤的实现留给子类&#xff0c;同…

【C语言】二叉树的实现

文章目录 前言⭐一、二叉树的定义&#x1f6b2;二、创建二叉树&#x1f3a1;三、二叉树的销毁&#x1f389;四、遍历二叉树1. 前序遍历2. 中序遍历3. 后序遍历4. 层序遍历 &#x1f332;五、二叉树的计算1. 计算二叉树结点个数2. 计算二叉树叶子结点的个数3. 计算二叉树的深度4…

Go语言之GORM框架(二) ——GORM的单表操作

前言 在上一篇文章中&#xff0c;我们对Gorm进行了介绍&#xff0c;而在这一篇文章中我们主要介绍GORM的单表查询与Hook函数,在进行今天的内容之前我们先事先说明一下&#xff0c;下面我们对单表进行操作的表结构如下&#xff1a; type Student struct {ID uint gorm:&qu…

C# WPF入门学习(四)—— 按钮控件

上期介绍了WPF的实现架构和原理&#xff0c;之后我们开始来使用WPF来学习各种控件。 一、尝试插入一个按钮&#xff08;方法一&#xff09; 1. VS2019 在界面中&#xff0c;点击工具栏中的视图&#xff0c;在下拉菜单中选择工具箱。 至于编译器中的视图怎么舒服怎么来布置&am…

肯尼亚大坝决堤反思:强化大坝安全监测的必要性

一、背景介绍 近日&#xff0c;肯尼亚发生了一起严重的大坝决堤事件。当地时间4月29日&#xff0c;肯尼亚内罗毕以北的一座大坝决堤&#xff0c;冲毁房屋和车辆。当地官员称&#xff0c;事故遇难人数已升至71人。这起事件再次提醒我们&#xff0c;大坝安全无小事&#xff0c;监…

绘唐3模型怎么放本地sd安装及模型放置位置 及云端sd部署

绘唐3模型怎么放本地sd安装及模型放置位置 及云端sd部署 资料里面授权方式&#xff1a; https://qvfbz6lhqnd.feishu.cn/wiki/CcaewIWnSiAFgokOwLycwi0Encf 云端和模型之间存在某种关联性。云端通常用于存储和管理大量数据&#xff0c;并提供计算和资源的服务。模型是对数据进…

揭秘 淘宝死店采集私信筛选,号称日赚500+

淘宝死店采集工具为电子商务创业者揭示了一个领域的新机遇&#xff0c;通过提供一系列深入分析和资源挖掘的功能&#xff0c;展现了从失败中寻找成功之道的独特方法论。以下是如何通过这种工具寻找电商平台中的隐含机会的几个关键方面&#xff1a; 分析失败的深层原因&#x…

简历–工作经历–通用

雇主将会很注意简历中的工作经历这一部分。在看完求职目标后&#xff0c;他们想了解你的历史&#xff0c;你曾在哪儿工作&#xff0c;工作了多长时间。他们想弄明白的是“你是个稳定可靠的人吗&#xff1f;”&#xff0c;“你发挥出的才能有哪些&#xff1f;”最重要的是你是否…

Java学习路线思维导图

目录 Java学习流程1.学习大纲2.Java开发中常用的DOS命令 Java入门学习思维导图 Java学习流程 通过大纲了解学习的重点&#xff0c;通过目录依次深入【注&#xff1a;Java环境的搭建百度&#xff0c;提升自己百度的能力】 1.学习大纲 学习流程如下&#xff1a; Java基础语法 …

vim操作手册

vim分为插入模式、命令模式、底行模式。 插入模式&#xff1a;编辑模式 命令模式&#xff1a;允许使用者通过命令&#xff0c;来进行文本的编辑控制 底行模式&#xff1a;用来进行让vim进行包括但不限于shell进行交互 w&#xff1a;保存 wq&am…

创新实训2024.05.26日志:服务端接口实现——用户开启多个会话

1. 概念图 类似于Kimi&#xff0c;文心一言&#xff0c;chatGPT等市面上主流的大模型&#xff0c;我们的大模型也支持同一个用户的多个会话&#xff0c;并且提供支持联系上下文给出解答的能力。 2. 基于会话的对话 在langchain chatchat这个对langchain框架进行二次封装的第三…

属于程序员的浪漫,一颗会跳动的心!!!

绘制一颗会跳动的心❤ 嘿嘿 可以说是程序员的专属浪漫了吧&#xff0c;就像点燃一颗LED灯一样&#xff1f;&#xff08;我瞎说的啊&#xff0c;大家别当真&#xff0c;我很菜的&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; 程序就在下面啦&#xff0c;然…

xgboost项目实战-保险赔偿额预测与信用卡评分预测001

目录 算法代码 原理 算法流程 xgb.train中的参数介绍 params min_child_weight gamma 技巧 算法代码 代码获取方式&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1QV7nMC5ds5wSh-M9kuiwew?pwdx48l 提取码&#xff1a;x48l 特征直方图统计&#xff1a; fig, …

【Linux】进程通信实战 —— 进程池项目

送给大家一句话: 没有一颗星&#xff0c;会因为追求梦想而受伤&#xff0c;当你真心渴望某样东西时&#xff0c;整个宇宙都会来帮忙。 – 保罗・戈埃罗 《牧羊少年奇幻之旅》 &#x1f3d5;️&#x1f3d5;️&#x1f3d5;️&#x1f3d5;️&#x1f3d5;️&#x1f3d5;️ &a…