挂载并访问文件系统

1. 首先识别分区

fdisk -l       # 查看所有磁盘和分区
lsblk          # 以树状结构查看块设备
blkid          # 查看分区的UUID和文件系统类型

2. 创建挂载点并挂载分区

mkdir /mnt/rescue  # 创建挂载点# 挂载根分区(根据你实际的根分区设备)
mount /dev/sda1 /mnt/rescue  
# 示例,sda1替换为根分区# 如果需要,挂载其他重要分区
mount /dev/sda2 /mnt/rescue/boot
# 挂载/boot分区
mount /dev/sda3 /mnt/rescue/home
# 挂载/home分区

3. 挂载必要的虚拟文件系统(如果要chroot)

mount --bind /dev /mnt/rescue/dev
mount --bind /proc /mnt/rescue/proc
mount --bind /sys /mnt/rescue/sys

4. 访问文件

现在你可以:

直接浏览挂载点下的文件:

ls /mnt/rescue/home/yourusername

或者切换到原系统环境(chroot):

chroot /mnt/rescue

其他情况的处理方式

如果使用Live CD/USB进入救援模式

步骤基本相同,但可能需要先安装工具:

apt-get update && apt-get install e2fsprogs  # Debian/Ubuntu
yum install e2fsprogs                       # RHEL/CentOS

对于LVM分区

vgscan          # 扫描卷组
vgchange -ay    # 激活卷组
lvdisplay       # 显示逻辑卷
mount /dev/mapper/vgname-lvname /mnt/rescue

对于加密分区(LUKS)

cryptsetup luksOpen /dev/sdaX secret
# 然后挂载解密后的设备(通常是/dev/mapper/secret)
mount /dev/mapper/secret /mnt/rescue

注意事项

  1. 挂载时最好使用只读模式先检查:
mount -o ro /dev/sda1 /mnt/rescue
  1. 如果文件系统损坏,先修复再挂载:
fsck /dev/sda1
  1. 操作完成后记得卸载:
umount -R /mnt/rescue

检查与修复文件系统

检查文件系统

对于ext2/ext3/ext4文件系统

# 首先卸载文件系统(如果已挂载)
umount /dev/sdXN# 检查文件系统错误
fsck -y /dev/sdXN
# 其中sdXN是分区标识,如sda1

对于XFS文件系统

xfs_repair /dev/sdXN

对于Btrfs文件系统

btrfs check --repair /dev/sdXN

修复文件系统

超级块损坏(ext文件系统):

# 查找备份超级块
mke2fs -n /dev/sdXN
# 使用备份超级块修复
fsck -b 32768 /dev/sdXN

日志文件损坏:

# 清除日志(ext文件系统)
tune2fs -j /dev/sdXN

强制检查:

fsck -f /dev/sdXN

修复后操作

  1. 重新挂载文件系统检查修复结果

  2. 如果有必要,更新initramfs:

mount /dev/sdXN /mnt
chroot /mnt
update-initramfs -u
  1. 重启系统验证修复效果

注意事项

  • 修复前尽量先备份重要数据

  • 如果根文件系统损坏,可能需要使用live CD/USB

  • 某些严重损坏可能需要从备份恢复

  • 对于SSD,频繁运行fsck可能影响寿命

修复GRUB引导

1. 进入救援模式

2. 挂载根分区

找到根分区(通常是 /dev/sda1 或 /dev/nvme0n1p2,具体取决于磁盘类型和分区方案):

fdisk -l

挂载根分区到 /mnt:

mount /dev/sdXn /mnt

(将 sdXn 替换为根分区,如 /dev/sda2)

挂载必要的虚拟文件系统(如果系统是UEFI启动,还需挂载EFI分区):

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys

对于EFI分区(通常是 /dev/sda1):

mount /dev/sdX1 /mnt/boot/efi

3. Chroot 到原系统

切换根目录到原系统环境:

chroot /mnt

4. 重新安装GRUB

BIOS模式:

grub-install /dev/sdX

(sdX 是磁盘设备,如 /dev/sda,不带分区号)

UEFI模式:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

5. 更新GRUB配置

update-grub

或:

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

6. 退出并重启

退出chroot环境:

exit

卸载所有挂载的分区:

umount -R /mnt

重启系统:

reboot

常见问题解决

  • 如果GRUB安装失败:
  • 检查是否挂载了正确的分区(尤其是 /boot 或 /boot/efi)。
  • 确保磁盘设备名称正确(如 /dev/sda 而非 /dev/sda1)。
  • 双系统用户:
  • 如果Windows覆盖了GRUB,可能需要重复上述步骤重新安装GRUB。

重置root密码

1. 进入救援模式

重启系统,在 GRUB 启动菜单界面(若未显示,启动时按住 Shift 或 Esc)。

选择默认内核项,按 e 进入编辑模式。

找到以 linux 或 linux16 开头的行,在行尾添加:

rw init=/bin/bash

对于部分系统(如 CentOS 7),可能需要替换为 rw init=/sysroot/bin/sh。

按 Ctrl+X 或 F10 启动到单用户模式(救援环境)。

2. 挂载文件系统(如需)

如果直接进入 bash 提示符(如 Ubuntu),可跳过此步。

对于需要 chroot 的系统(如 CentOS/RHEL):

mount -o remount,rw /         # 确保根文件系统可写
chroot /sysroot               # 切换到原系统环境

3. 重置密码

执行以下命令重置 root 密码:

passwd root

输入两次新密码。

4. 处理 SELinux(仅限启用 SELinux 的系统)

如果系统使用 SELinux(如 CentOS/RHEL),需更新文件系统标签:

touch /.autorelabel  # 下次启动时重新标记 SELinux 上下文

5. 重启系统

exec /sbin/init   # 或直接 reboot

或按 Ctrl+Alt+Del,或执行:

sync; reboot -f

注意事项

  • 物理访问权限:需直接操作服务器或虚拟机控制台。

  • 云服务器:部分云平台(如 AWS、阿里云)需通过控制台使用自定义镜像或用户数据脚本重置密码。

  • 文件系统加密:若 /etc 加密(如 LUKS),需先解密。

替代方案(已知 root 分区)

如果无法通过 GRUB 编辑,可使用 Live CD/USB 启动后挂载根分区:

mkdir /mnt/root
mount /dev/sdXn /mnt/root    # sdXn 为根分区(如 /dev/sda1)
chroot /mnt/root
passwd root

通过以上步骤,可强制重置 root 密码。确保操作后系统安全性,避免未授权访问。

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

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

相关文章

【学习路线】游戏开发大师之路:从编程基础到独立游戏制作

前言 游戏开发是一个充满创意和技术挑战的领域,它融合了编程、美术、音效、设计等多个学科。随着游戏产业的蓬勃发展,游戏开发已成为最具吸引力的技术职业之一。本文将为您提供一条从零基础到游戏开发大师的完整学习路线,涵盖编程基础、游戏引…

宇树 G1 部署(九)——遥操作控制脚本 teleop_hand_and_arm.py 分析与测试部署

首先,我使用的是 v1.0 版本,宇树最近发力了更新的很快:xr_teleoperate-1.0 teleop_hand_and_arm.py 支持通过 XR 设备(比如手势或手柄)来控制实际机器人动作,也支持在虚拟仿真中运行。可以根据需要&#x…

第十一天:不定方程求解

每日一道C题:不定方程求解 问题:给定正整数a,b,c。求不定方程 axbyc 关于未知数x和y的所有非负整数解组数。 要求:输入一行,包含三个正整数a,b,c,两个整数之间用单个空格…

ElasticStack技术栈概述及Elasticsearch8.2.2集群部署并更换JDK版本为openjdk-17

ElasticStack 一、引言 在当今数据驱动的时代,如何高效地收集、处理和分析日志及其他类型的数据,已成为企业构建可观测性和运维能力的重要课题。Elastic Stack(早期称为 ELK Stack)是一套由 Elastic 公司推出的开源技术栈&#xf…

Doris中文检索效果调优

一、问题描述 原来的日志系统使用的是ES作为底层存储,后来因为数据量大了之后,出现了写入存在阻塞和查询效率变低的问题。后来决定切换到Doris数据库。 Doris的优势根据公开资料来看,它在写入性能、查询效率和存储成本上,都优于…

CDN怎么加速跟防御网站攻击呢?

**CDN(内容分发网络)**通过分布式架构和智能路由技术,不仅可以加速网站内容访问,还能有效防御多种网络攻击(如DDoS、SQL注入等)。以下是 CDN 如何实现加速和防御的详细解析:1. CDN 如何加速网站…

【Linux】批量处理多个用户的 sudo 权限问题

要批量处理多个用户的 sudo 权限问题,有以下几种高效方法: 方法一:通过用户组批量授权(推荐) 这是最安全便捷的方式,只需将用户加入已有 sudo 权限组(如 wheel 或 sudo):…

云原生MySQL Operator开发实战(五):扩展与生态系统集成

引言 在前四篇文章中,我们构建了一个功能完备的MySQL Operator,涵盖了从基础架构到生产部署的全过程。本文将作为本系列的收官之作,重点探讨Operator的扩展能力和与云原生生态系统的深度集成,包括自定义插件系统、与CI/CD流水线的集成、服务网格支持以及与云服务的无缝对接…

【MySQL】数据库的简单介绍

1.数据库是什么简单来说,数据库是用于存储数据和管理数据的软件。数据库可以提供远程服务,通过远程连接来使用数据库,因此数据库也被称为数据库服务器!2.为什么要使用数据库存储数据用文件就可以了,为什么还要弄一个数…

uniapp,uview icon加载太慢了,老是显示叉叉,将远程加载改到本地加载。

处理方式:将远程字体文件下载到本地进行加载。app.vue。font-face {font-family: uicon-iconfont;src: url(./static/fonts/font_2225171_8kdcwk4po24.ttf) format(truetype);font-weight: normal;font-style: normal;}下载文件:从node_modules找文件u-i…

Python爬虫01_Requests第一血获取响应数据

引入requests包,发起请求并获取响应数据。 import requestsif __name__ "__main__":#step 1:指定urlurl http://www.7k7k.com/#step 2:发起请求,get方法会返回一个响应对象response requests.get(url)#step 3&#x…

Linux定时器和时间管理源码相关总结

基础可参考: Linux内核定时器相关内容总结-CSDN博客 定时器来源 定时器也是来源于芯片的硬件定时器,属于内部外设,有些可能也会用外部定时器,不管咋样,都属于芯片外设,既然是外设,那么我们也要编…

JDK17 新特性跟学梳理

JDK17 新特性跟学梳理JDK17 背景介绍一、JDK 17对Switch语句的增强二、字符串拼接三、强制转换四、密封类Sealed Classes五、Record类六、优化空指针异常信息七、ZGC垃圾收集器八、JVM常量API九、重写Socket底层API十、JDK飞行记录事件流十一、EdDSA签名算法十二、隐藏类十三、…

ESP8266 AT 固件

ESP-12E 是一种常见的 ESP8266 模块,通常带有 4MB(32Mbit)闪存,非常适合刷写 最新版 AT 固件。 ✅ 适用于 ESP‑12E 的 AT 固件推荐 固件来源固件版本特点Espressif 官方v2.2.1.0 (ESP8266 IDF AT)官方最新版,基于 RT…

Node.js(三)之Express

Express 目录 Express 九、初识Express 9.1 Express简介 1. 什么是 Express 2. 进一步理解Express 3. Express能做什么 9.2 Express的基本使用 1. 安装 2. 创建基本的Web服务器 3. 监听GET请求 4. 监听POST请求 5. 把内容响应给客户端 6. 获取URL中携带的查询参数…

IKAnalyzer分词插件使用方法

前言 随着越来越多的大数据网站崛起,特别是一些私人网站都提供了站内搜索,有些人会用elastsearch来实现站内搜索的目的,但是一些小站并没有那么大的数据提供搜索,在安装一个 elastsearch 服务未免有点浪费? 因此&#…

ESB 在零售,物流,制造,保险,医疗行业的应用方式

企业服务总线(Enterprise Service Bus, ESB)是一种基于中间件的集成模式,用于实现不同系统之间的集成与通信。ESB通过标准化接口、消息路由、协议转换和数据转换等功能,帮助企业实现系统间的无缝对接,提高业务敏捷性。…

vcsa6.7-重置root密码

客户反馈vc无法登录了,登录环境一看,报错如下首先想到是证书到期了,浏览器确认,确实是证书到期了准备ssh登录才发现root密码忘记了,那就先重置root密码,1、登录esxi主机找到vcsa6.7机器关机做快照2、开机到…

C++ 赋值与交换法则

在C中,赋值与交换法则(Assignment and Swap Idiom)通常指的是在实现类的赋值操作符(operator)时,结合拷贝构造和交换操作来确保强异常安全保证(Strong Exception Safety Guarantee)的…

Ambari中文汉化

Ambari-ZH 当前Ambari的汉化版本为2.7.4,汉化采用对该版本的ambari源码直接修改的方式进行,如有翻译不当之处,请批评指正 一、使用方法如下: 方式一:直接下载 下载地址:https://github.com/ukayunnuo/Ambari-2.7.x-zh/releases/download/…