Linux系列讲解 —— 【debugfs】交互式文件系统调试器

news2025/1/23 3:26:38

手册上说debugfs可以用于检查和更改ext2、ext3或ext4文件系统的状态。似乎很牛的样子,但是我并没有试验出来它多么强大的功能,无非就是在某些文件损坏导致无法删除的时候,我用debugfs来删除这些文件而已,如果有人知道它其他的妙用,可以留言,感谢。

1. 打开debugfs

首先使用debugfs访问损坏文件所在的分区(例如/dev/nvme1n1p1),-w选项代表debugfs可对分区进行读写操作。

sun@sun-pc:~$ sudo debugfs -w /dev/nvme1n1p1
[sudo] sun 的密码: 
debugfs 1.44.1 (24-Mar-2018)
debugfs:

2. 查看当前路径

刚打开debugfs的时候,当前路径为该分区(/dev/nvme1n1p1)的根目录下。

debugfs:  pwd
[pwd]   INODE:      2  PATH: /
[root]  INODE:      2  PATH: /
debugfs: 

3. 查看路径下有哪些文件

支持 ls,ls -l 查看某个路径下的文件,用法和 linux shell 终端下一样,但是显示是在一个新的界面中,按"q"可以退出显示。

debugfs:  ls AOSP_A10/frameworks

4. 切换路径

由于现在是处于debugfs子系统中,也就是此时的终端里包含了两个文件系统。一个是原生文件系统(即登录debugfs之前的文件系统),另一个是登录debugfs子系统后的文件系统,所以涉及两个路径。
比如说我在/home/sun/路径下执行了sudo debugfs -w /dev/nvme1n1p1来登录debugfs子系统,那么登录后对应的原生文件系统路径则为/home/sun/,而debugfs当前对应的文件系统的当前路径则为根目录(注意这个根目录是指debugfs操作分区的根目录)。

4.1 切换debugfs子系统路径

也是 cd 命令,和 linux 中不同的是,没有home目录的概念,不要单独使用 cd 或 cd ~

debugfs:  cd AOSP_A10/frameworks

4.2 切换native文件系统的路径

注:虽然在debugfs里可以切换native filesystem的路径,但是在退出debugfs后,当前路径还是登录debugfs之前的路径。

debugfs:  lcd /home/sun/temp

切换完后,可以键入任意字符 + 空格 + 两次tab键来查看native filesystem的路径是否变更。如下所示,可以看得出来刚登录debugfs后,对应的原生文件系统路径为/home/sun,在经过lcd命令切换路径后,变为了/home/sun/temp3
在这里插入图片描述

5. 删除文件

也是 rm 命令,但是不支持参数指定(如 rm -rf )

debugfs:  rm 1.txt

6. 复制 linux 系统中某文件的内容到 debugfs 加载分区中的某文件中

用法:write <native file> <new file>
<native file>:linux系统中的文件
<new file>:指的是在debugfs操作分区中未存在的文件

debugfs:  write ../temp/1.txt 3.txt

7. 文件block,inode,name相互转换

# name -> block
debugfs:  blocks 1.txt
9270 

# block -> inode number
debugfs:  icheck 9270
Block	Inode number
9270	324

# inode number -> name
debugfs:  ncheck 324
Inode	Pathname
324	//1.txt

8. 退出debugfs

Ctrl+D,或者在debugfs命令行中输入quit / q 后回车也可退出。

debugfs:  quit
或
debugfs:  q

注:debugfs内的所有写操作(如 write 和 rm )只有在debugfs退出时,才会在linux终端中看到变化。

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

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

相关文章

ChatGLM2-6B安装部署(详尽版)

1、环境部署 安装Anaconda3 安装GIT 安装GUDA 11.8 安装NVIDIA 图形化驱动 522.25版本&#xff0c;如果电脑本身是更高版本则不用更新 1.1、检查CUDA 运行cmd或者Anaconda&#xff0c;运行以下命令 nvidia-smi CUDA Version是版本信息&#xff0c;Dricer Version是图形化…

分布式光伏运维平台在公益场馆屋顶光伏发电系统的应用分析

摘要&#xff1a;2021年9月&#xff0c;国家发改委印发烷善能源消费强度和总量双控制度方案》&#xff0c;提出鼓励可再生能源的使用&#xff0c;支持可再生能源发展。在这样的政策推动下&#xff0c;光伏发电市场无疑将迎来高质量发展的新机遇。现结合山东博物馆光伏电站日常管…

C#语音播报问题之 无法嵌入互操作类型SpVoiceClass,请改用适用的窗口

C#语音播报问题之 无法嵌入互操作类型SpVoiceClass&#xff0c;请改用适用的窗口 解决办法如下&#xff1a; 只需要将引入的Interop.SpeechLib的属性嵌入互操作类型改为false 改为false 即可解决&#xff01;

【Spring专题】Spring之Bean的生命周期源码解析——阶段二(二)(IOC之属性填充/依赖注入)

目录 前言阅读准备阅读指引阅读建议 课程内容一、依赖注入方式&#xff08;前置知识&#xff09;1.1 手动注入1.2 自动注入1.2.1 XML的autowire自动注入1.2.1.1 byType&#xff1a;按照类型进行注入1.2.1.2 byName&#xff1a;按照名称进行注入1.2.1.3 constructor&#xff1a;…

快速实现SAP的移动化和流程优化

热门议题&#xff1a; 1、企业如何快速解决人员移动办公的需求&#xff0c;比如在苹果安卓手机&#xff0c;平板电脑&#xff0c;MAC登录SAP。2、企业如何解决用户经常抱怨的流程复杂&#xff0c;操作繁琐&#xff0c;难以使用等问题 公司介绍&#xff1a; Synactive,Inc. 是…

【校招VIP】前端校招考点之vue底层特性

考点介绍&#xff1a; 大家在面试途中遇到的相对多的问题&#xff0c;也是难点的问题&#xff0c;一般都有vue底层原理。对于只会用但是不懂的小白来说真是太痛苦了&#xff0c;仅仅能说出来 一些 数据劫持&#xff0c;双向数据绑定&#xff0c;虚拟dom树的名词来说远远不够。 …

通过 HttpClient 发送请求

文章目录 1. 引入 maven 依赖2. 发送 GET 方式的请求3. 发送 POST 方式的请求 1. 引入 maven 依赖 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId> </dependency>2. 发送 GET 方式的请求…

《Go 语言第一课》课程学习笔记(六)

变量声明&#xff1a;静态语言有别于动态语言的重要特征 变量所绑定的内存区域是要有一个明确的边界的。也就是说&#xff0c;通过这样一个变量&#xff0c;我们究竟可以操作 4 个字节内存还是 8 个字节内存&#xff0c;又或是 256 个字节内存&#xff0c;编程语言的编译器或解…

【考研数学】概率论与数理统计 | 第一章——随机事件与概率(3,全概率公式、贝叶斯公式与三大概型)

文章目录 引言六、全概率公式与贝叶斯公式6.1 全概率公式6.2 贝叶斯公式 七、三大概型7.1 古典概型7.2 几何概型7.3 伯努利概型 引言 承接前文&#xff0c;在事件的独立之后&#xff0c;我们开始学习全概率公式、贝叶斯公式以及概型。 六、全概率公式与贝叶斯公式 定义—— 完…

【Diffusion】李宏毅2023机器学习Diffusion笔记

文章目录 1 想法概述2 实际过程阶段1 Add Noise阶段2 Denoise 3 数学原理4 为什么推理时要额外加入noise5 一些不知道对不对的Summary 1 想法概述 从一张充满噪声的图中不断denoise&#xff0c;最终得到一张clear的图片。为了确定当前图片中噪声占比的大小&#xff0c;同时输入…

【福建事业单位-公共基础-哲学】01哲学基本概述、唯物论和唯物辩证法(发展联系)

【福建事业单位-公共基础-】01哲学基本概述和唯物论 一、哲学1.1 哲学的概念1.2 哲学的基本问题—思维和存在的关系问题/意识和物质1.3哲学的基本派别:唯物主义与唯心主义古代朴素唯物主义近代形而上学唯物主义辩证唯物主义和历史唯物主义主观和客观唯心主义 1.4辩证法与形而上…

LVS负载均衡集群-NAT模式部署

集群 集群&#xff1a;将多台主机作为一个整体&#xff0c;然后对外提供相同的服务 集群使用场景&#xff1a;高并发的场景 集群的分类 1.负载均衡器集群 减少响应延迟&#xff0c;提高并发处理的能力 2&#xff0c;高可用集群 增强系统的稳定性可靠性&…

C++ 网络编程项目fastDFS分布式文件系统(三)-Nginx部分

目录 1. 一些基本概念 1.1 Nginx初步认识 1.2 正向/反向代理 1.3 域名和IP 2. Nginx 安装和配置 2.1 安装 2.2 配置 3. Nginx的使用 3.1 部署静态网页 3.2 反向代理和负载均衡 4 课外知识导读 1. URL和URI ​编辑 2. DNS解析过程 1. 一些基本概念 1.1 Nginx初步认…

如何在控制台查看excel内容

背景 最近发现打开电脑的excel很慢&#xff0c;而且使用到的场景很少&#xff0c;也因为mac自带了预览的功能。但是shigen就是闲不住&#xff0c;想自己搞一个excel预览软件&#xff0c;于是在一番技术选型之后&#xff0c;我决定使用python在控制台显示excel的内容。 具体的需…

Java进阶篇--数据结构

目录 一.数组&#xff08;Array&#xff09;&#xff1a; 1.1 特点&#xff1a; 1.2 基本操作&#xff1a; 1.3 使用数组的好处包括&#xff1a; 1.4 数组也有一些限制&#xff1a; 二.集合框架&#xff08;Collections Framework&#xff09;&#xff1a; 2.1 列表…

wsl安装Linux kali

目录 1.启用“Hyper-V”和“~子系统” 2.启用虚拟化 3.安装发行版 4.升级原有系统到WSL2 5.kali换源与更新升级并安装工具集 6.kali安装图形界面~GUI 7.kali安装中文界面与中文输入法 8.wsl~kali位置迁移 1.启用“Hyper-V”和“~子系统” 打开控制面板---->>程序…

JupyterHub实战应用

一、JupyerHub jupyter notebook 是一个非常有用的工具&#xff0c;我们可以在浏览器中任意编辑调试我们的python代码&#xff0c;并且支持markdown 语法&#xff0c;可以说是科研利器。但是这种情况适合个人使用&#xff0c;也就是jupyter notebook以我们自己的主机作为服务器…

SpringBoot-lombok

为什么要使用lombok? Lombok是一个通过注解以达到减少代码的Java库,如通过注解的方式减少getter,setter方法,构造方法等。通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法&#xff0c;并可以自动化生成日志变量&#xff0c;简化java开发、提高…

spring boot 整合mongodb

1、安装依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>2、配置数据库连接 spring:data:mongodb:host: localhostport: 27017username: xxxxxxp…

vue:this和that的理解

当我们进入公司的时候会发现一个很常见的情况&#xff0c;就是你的前开发者会常用这么一个变量&#xff1a;that、self… 为什么会用到that、self呢&#xff0c;小编是这么理解的&#xff0c;this指向的是当前的对象&#xff0c;而that、self是临时的变量&#xff0c;为了临时存…