root密码忘了怎么办(从系统引导过程解决)

news2024/12/22 18:37:16

目录

1.Linux系统密码忘记

2.系统引导过程

2.1 systemd

2.2 GRUB和GRUB2

2.3 运行级别

3.修复MBR扇区故障和GRUB引导故障

3.1 MBR扇区故障

3.2 GRUB引导故障

1.Linux系统密码忘记

我们在生活中经常遇到这类困扰,就是某个账号还是账户密码忘了,这时候我们就只能点击输入框旁边的“忘记密码”按钮,然后根据系统的提示一步一步进行操作,进行验证,然后重置密码。这些步骤其实都是在程序设计的时候就编写好的,操作都非常的人性化,无论是国产程序还国外的程序,可读性都是比较高的,说白了就是会读写的正常人类都能顺利的完成操作。

那么,假如Linux的密码忘了,该咋办呢?普通用户的密码忘记了倒还好(毕竟对我们系统操作人员来说也没啥用),假如root密码忘记了或者说,上一个root账户的使用者跑路了该咋办?

不用怕,我们Linux开发者必须也考虑到了这个问题啊,下面我们来详细讲解一下如何重置root账户的密码。

首先,我们开启Linux机器(已经开启的话重新启动),我们需要在开机的时候按“Esc”键,然后在第一行按"E",启动GRUB菜单。

进入编辑菜单后,我们在大约十多行的位置看到Linux16开头的一行,看到后面那个ro\,先说一下这个\不用管它,它相当于一个换行符,是给计算机读取的,我们直接当它不存在(注意,不存在的意思是连空格它都算不上)。

 找到后我们将"ro"修改为:

rw init=/sysroot/bin/bash

修改完成后按 ctrl x   ,进入命令行模式

输入 chroot /sysroot  

进入根文件系统

然后我们要对字符集进行修改,这里可以直接输入 "passwd root" 修改密码试试看,弹出来的提示符不是人看的。

输入

LANG=en_US.UFT-8

将字符集修改为英文,然后我们再输入 

passwd root

来修改root账户的密码,就可以发现,提示信息都是英文的,能看懂了

接下来应该不用多解释了,大白话都摆在脸上了,直接设置新密码,然后再输一遍确认。设置完了之后会提示 巴拉巴拉  什么什么  然后succssfully,管他前面什么,看到successfully就知道咱们设置成功了。这时候退出根文件系统,然后重启我们的机器,到这里我们的root账户密码就修改完成了。

2.系统引导过程

其实这里修改密码进入到了系统跟文件,一般我们在进入系统急救模式的时候,会经常用到。既然都讲了,不妨铺开讲一下

当我们打开一台机器的时候,我们表面上看,电脑风扇开始转,然后屏幕一亮,圈圈转了一会,然后就“欢迎”,看似风平浪静,实则系统内部“暗流涌动”。(我们讲的是Linux操作系统)

怎么个“涌动”法呢?

首先,我们按下开机按钮后,主机开始自检,根据BIOS设置,扫描整个机器,包括什么显卡、处理器、硬盘等,找到第一个能引导系统的设备,然后讲控制权移交给该设备。通常情况下都是硬盘,或者我们再重装系统的时候会移交给光驱或U盘。我们把这个过程称为开机自检。

开机自检完成后,硬盘会根据第一个扇区中的MBR设置,将系统的控制权交给包含操作系统引导文件的分区 ,或者根据MBR记录中的引导信息直接调用启动菜单GRUB(centos6是GRUB,centos7是GRUB2)。我们把这个过程称为MBR引导。

GRUB2菜单打开后会让用户进行选择,根据所选项(或者默认值),GRUB2会通过 /boot/grub2/grub.cfg配置文件,来获取内核和镜像文件的配置信息和位置。然后将内核假如到内存当中。

内核加载后会获得系统控制权。

内核会将init进程加入到系统内存中,init进程通过一系列的操作将系统初始化,最终等待用户进行登录。

总结:根据BIOS设置,扫描出第一个能够引导系统的设备,然后将系统控制权移交给该设备,然后进行MBR引导,找到包含操作系统引导文件的分区,将控制权移交给该分区。或者根据MBR记录中的引导信息直接调用GRUB。GRUB根据/boot/grub/grub.cfg配置文件,获取内核和镜像文件的配置和路径,并且将内核和镜像文件加载到内存中,后内核获取控制权后,将init进程加入到系统内存中,init对系统进行一系列初始化,初始化完成后等待用户登录。

以上是centos6操作系统开机的引导过程。

2.1 systemd

那么,特别强调了是centos6的系统引导过程,是不是centos7的引导过程与之不同呢?确实,7的引导过程确实与6有一些地方不同,但仅仅只是一些而已。上述的引导过程,一直到最后一步,内核加载init进程为止基本上都是一样的,centos7使用的是 systemd 代替 init 进行初始化。那么,systemd和init两者之间有什么区别呢?

首先来说一下优点吧,首先systemd 过并行启动和依赖管理,显著提升系统启动速度。其次是统一的管理工具和配置文件格式简化了服务的配置和管理。

这里有一点疑问,什么并行启动和依赖管理?听不懂。

短板效应大家应该都知道吧,一个木桶再高大,如果有一段特别矮的木板,那么它能装多少水,是取决于这个最短的木板有多长。init进程初始化是所有程序一个一个依次启动,非常井然有序,没有插队,这种方式大大拖延了启动速度。所以在centos6时进行了优化,所有程序并行启动,就是大家都同一时间开始,如果A程序启动的条件时B程序已经启动,那么A程序会等待B程序启动完成。久而久之又出现一个新的问题,就是B启动的贼慢,然后它后面的A也是一个启动很慢的进程,这就类似于短板效应,其他进程都已经启动完成了,就在等待这两个进程启动,等待这两个进程的启动,拖慢了整体系统的启动时间。所以后来有了systemd,从上面描述的优点来看,systemd添加了依赖管理,我A确实是建立在B已经启动的前提下再启动,但是没说我不可以动啊,我可以在B启动的时候,我把A启动到99.99999999%,然后B完成的那一刹那,A瞬间就100%,可能这么说没什么感觉,那假如有ACDEFGHIJKLMNOPQRSTUVWXYZ二十五个进程在等B进程启动呢?centos6就需要等B再等A再等C..D...E........子子孙孙无穷尽也。这样一看是不是systemd智慧了很多,其实是做了很大优化的。

2.2 GRUB和GRUB2

还有一点,引导过程中也说到了引导菜单GRUB,那么GRUB和GRUB2有什么区别呢?

很简单,一个配置文件是/boot/grub/grub.cfg,一个配置文件是/boot/grub2/grub.cfg,仅此而已。

开玩笑,怎么可能就配置文件名字上的区别,那改了有啥用?自然是有去别的。

GRUB:

配置语法相对简单,但不如GRUB2灵活。

提供基本的命令行界面,不支持复杂的图形界面,用于手动引导和诊断。

GRUB2

具有更强的模块化设计,支持更多的文件系统、平台和功能模块。可以动态加载和卸载模块,增强了灵活性和可扩展性。

支持复杂的图形界面和主题,可以定制启动菜单的外观。

支持LVM(逻辑卷管理)、RAID、加密分区等高级功能。

提供更强大的命令行界面,用于手动引导、调试和诊断。

可以看出GRUB2几乎是GRUB的全面升级版,事实也确实如此(这下是真的了,没有别的了)

2.3 运行级别

运行级别是Linux操作系统中定义系统运行状态的一种方式。每个运行级别表示系统的一组不同状态和启动的服务。传统的init系统使用运行级别来管理系统的启动过程和服务状态。

init 0:关机

init 1:单用户模式

init 2、3、4:多用的文本界面

init 5:多用的图形界面

init 6:重启(这个命令我们经常用的)

例如,进入文本界面,我们输入  init 3

可以看到,我们的虚拟机进入了文本界面

在centos7中,我们使用

systemctl isolate multi-user.target 进入文本界面

systemctl isolate graphical.target  进入图形化界面

但是我们仍然可以用init 3 init 5 ,都一样用,而且好记。

3.修复MBR扇区故障和GRUB引导故障

知道了系统引导过程后,下面我们可以了解一下,假如系统启动引导过程中,出现了一些故障,我们该怎么解决。

3.1 MBR扇区故障

我们在启动系统时有时候会遇到

系统在启动时卡在BIOS或UEFI界面,无法进入引导加载程序。

或提示Operating System not found”或“No bootable device”等报错信息

启动时显示类似于“Invalid Partition Table”、“Missing Operating System”或“Error loading operating system”的错误信息。

这类故障大多是因为MBR扇区故障,下面我们来演示如何修复此类故障。

首先备份MBR扇区数据到其它磁盘( /dev/sdb1),没有的话可以添加一块,具体如何添加我的这一篇博客:

Linux磁盘分区与LVM-CSDN博客


mkdir /backup        --创建备份目录
mount /dev/sdb1 /backup            --将磁盘挂载到这个目录,挂载完成我们可以 df -h查看一下
dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1            --因为MBR位于第一块硬盘( /dev/sda) 的第一一个物理扇区处,总共512字节,所以这里将第一扇区备份到刚才的目录

接下来我们要模拟一下第一扇区故障的情况,删除第一扇区的数据,用0将其填充

dd if=/dev/zero of=/dev/sda bs=512 count=1

这时候我们再去看虚拟机,重启一下直接黑屏,我们去到虚拟机设置页面,重新加载一下硬盘。

在第一个页面选择 Troubleshooting (故障排除)

然后选择Rescue a CentOS system

什么都不用操作,等待系统加载,看到1)2)3)4)四个选项出来后输入1,然后回车

之后就会进入到Bash Shell环境,也就是这个页面

输入

mkdir /backupdir          --创建目录

 mount /dev/sdb1 /backupdir              --将刚才备份在sdb1的数据挂载到新目录

dd if=/backupdir/mbr.bak of=/dev/sda                --复制到sda中

输入完成后

exit  退出

之后系统就恢复正常了

3.2 GRUB引导故障

启动时显示grub>grub rescue>提示符,表示GRUB无法找到引导配置文件或引导文件系统损坏。那么遇到这种情况我们该怎么办呢?不要慌,依然有应对方案。

我们首先像之前模拟MBR扇区故障一样,在我们的虚拟机中备份一下第一扇区的数据,只不过这里只需要前446个字节,因为GRUB只占446,其他都一样,这里我就直接放图了。

都敲完了我们回到虚拟机,重新启动,发现,系统故障了,像之前一样,重新加载镜像,选择 Troubleshooting—>Rescue a CentOS system-->1,然后回车--->进入bash shell环境

然后输入:

mkdir /backupdir
mount /dev/sdb1 /backupdir
dd if=/backupdir/grub.bak of=/dev/sda
exit

其实操作大同小异,exit退出后发现,系统恢复正常了。

其实还有一种方法,也可以修复GRUB引导故障

进入急救模式后,输入

rm -rf /boot/grub2/grub.cfg

chroot /mnt/sysimage

grub2-install /dev/sda

grub2-mkconfig -o /boot/grub2/grub.cfg        --重新构建GRUB菜单的配置文件

exit    退出

reboot     重启

重启后发现,系统恢复正常了,至此修复完成。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Llama也能做图像生成?文生图模型已开源

导读 基于next-token prediction的图像生成方法首次在ImageNet benchmark超越了LDM, DiT等扩散模型,证明了最原始的自回归模型架构同样可以实现极具竞争力的图像生成性能。 Llama也能做图像生成?文生图模型已开源 香港大学、字节跳动提出了基于自回归模…

【AI大模型】大型模型飞跃升级—文档图像识别领域迎来技术巨变_图像识别大模型

写在前面 2023年12月31日,第十九届中国图象图形学学会青年科学家会议在广州举行,由中国图象图形学学会主办。 该会议的目标是促进青年科学家之间的交流与合作,以提升我国在图像图形领域的科研水平和创新能力。 由中国图象图形学学会和上海合合…

如何将音频文件发送至摄像头

目前再很多互联互通的场景下,如AI盒子再从摄像头上取视频分析,分析出发生某个事件,需要反向通过摄像头的喇叭播放语音,发出告警提示,使用场景如下 盒子上对于此类场景的需求往往不能满足,或者为这个需求需要…

Day8: 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号 1047. 删除字符串中的所有相邻重复项

题目232. 用栈实现队列 - 力扣(LeetCode) class MyQueue { public:MyQueue() {}void push(int x) { // 出栈input.push(x);}int pop() {// 如果出栈为空,把入栈元素全都转移到出栈if (output.empty()) {while (!input.empty()) {int itop i…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第52课-语音控制机器人

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第52课-语音控制机器人 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…

彭涛 | 2024年6月小结

6月是忙碌的一个月,换办公室,买家具,群发售,新小伙伴入职等等 1、出海小报童 这个月时间主要做小报童,从刚开始设计内容大纲,到写作,后续拉新花费了大量时间。 比如我们要去调研同行&#xff0c…

新能源行业必会基础知识-----电力市场概论笔记-----中长期合约电力市场

新能源行业知识体系-------主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/139946830 目录 1. 合约市场2. 双边交易3. 集中交易4. 挂牌交易及互联网中长期电力交易平台5. 中长期交易的优势 1. 合约市场 什么是合约市场 …

从选题到定稿:软考高级系统架构设计师论文写作全攻略

一、论文考试概述 软考系统架构设计师考试的最后一门是论文写作,安排在下午进行,时长两小时,要求撰写约3000字的论文,以45分为及格线。时间紧迫,不容过多犹豫与思考,因此需迅速选定并着手撰写。论文题目通…

【数据结构】C语言实现二叉树

C语言实现二叉树 导读一、二叉树的数据类型二、二叉树的初始化2.1 补充知识点——传址传参2.2 补充知识点——指针传参 三、二叉树的创建3.1 通过添加结点创建BST3.2 通过结点序列创建二叉树3.2.1 由遍历序列手算构建二叉树3.2.1.1 构建步骤3.2.1.2 习题演练3.2.1.3 小结 3.2.2…

在C#/Net中使用Mqtt

net中MQTT的应用场景 c#常用来开发上位机程序,或者其他一些跟设备打交道比较多的系统,所以会经常作为拥有数据的终端,可以用来采集上传数据,而MQTT也是物联网常用的协议,所以下面介绍在C#开发中使用MQTT。 安装MQTTn…

yolov5实例分割跑通以及C#读取yolov5_Seg实例分割转换onnx进行检测部署

一、首先需要训练yolov5_seg的模型,可以去网上学习,或者你直接用我的, 训练环境和yolov5—7.0的环境一样,你可以直接拷过来用。 yolov5_seg算法 链接:https://pan.baidu.com/s/1m-3lFWRHwg5t8MmIOKm4FA 提取码&…

第十四届蓝桥杯省赛C++B组D题【飞机降落】题解(AC)

解题思路 这道题目要求我们判断给定的飞机是否都能在它们的油料耗尽之前降落。为了寻找是否存在合法的降落序列,我们可以使用深度优先搜索(DFS)的方法,尝试所有可能的降落顺序。 首先,我们需要理解题目中的条件。每架…

tcpdump命令详解及使用实例

1、抓所有网卡数据包,保存到指定路径 tcpdump -i any -w /oemdata/123.pcap&一、tcpdump简介 tcpdump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来去掉无用的信…

Python中爬虫编程的常见问题及解决方案

Python中爬虫编程的常见问题及解决方案 引言: 随着互联网的发展,网络数据的重要性日益突出。爬虫编程成为大数据分析、网络安全等领域中必备的技能。然而,爬虫编程不仅需要良好的编程基础,还需要面对着各种常见的问题。本文将介绍…

Qt中文乱码如何解决

目录 一、使用建议 二、其它设置 一、使用建议 Qt对中文的支持不是很友好,使用QtCreator会出现各种乱七八糟的中文代码问题,如何处理这种问题? (1)粘贴别人的代码时,先在记事本里粘贴一遍,再…

【Python机器学习】gradio库(快速创建简单的 Web 界面来演示机器学习模型)

文章目录 1. 主要特点2. 安装 Gradio3. 基于tensorflow的例子4. 基于Pytorch的例子4.1 步骤4.2 代码4.3 使用说明Gradio 是一个 Python 库,用于快速创建简单的 Web 界面来演示机器学习模型。它被广泛用于各种应用,如音频、文本、图像处理和更多。Gradio 使得任何人都可以轻松…

深圳比创达电子EMC|EMC电磁兼容性行业:推动电子产品向更高发展

随着科技的飞速发展,电子产品在我们的日常生活中无处不在,从智能手机到智能家居,从医疗设备到工业自动化,这些设备的普及和更新换代对电磁兼容性(EMC)提出了更高的要求。 一、EMC电磁兼容性行业的概述 EM…

深度学习笔记: 最详尽解释预测系统的分类指标(精确率、召回率和 F1 值)

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家! 预测系统的分类指标(精确率、召回率和 F1 值) 简介 让我们来谈谈预测系统的分类指标以及对精确率、召回…

气象站的气象工具都有哪些呢?

气象站,作为观测和记录天气现象的重要基地,拥有一系列专业的气象工具。这些工具不仅能够帮助我们深入了解大气的运动规律,还能为天气预报、气候研究等提供宝贵的数据支持。 风速风向仪也是气象站重要的工具。它通常由风向变送器和风速变送器组…

【数据结构与算法】堆排序算法原理与实现:基于堆实现的高效排序算法

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法》 期待您的关注 ​ 目录 一、引言 堆排序的简介 堆排序的特点 二、堆的概念 三、堆排序算法的原理 四、堆…