问题标签 [ext2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
56 浏览

linux - 如何制作没有数据块的 ext2/3 FS

需求:制作一个没有datablock的ext2/3文件系统,只保留其他部分,保存文件或目录的属性,丢弃其中的数据。写入时返回,读取时返回全零。我从http://e2fsprogs.sourceforge.net/下载了 e2fsprogs-1.42.11.tar.gz ,现在我遇到了一些问题。

带有内核 3.13.0-32-generic 的 Ubuntu 14.04

  1. 在 e2fsprogs-1.42.11 中执行“./configure”后,我在文件夹 misc 中执行“make”,但它被“make: *** No rule to make target ../lib/ext2fs/ext2_err.h', needed bymke2fs.o'. Stop.”中断。救命!!!</p>

  2. 首先,我想找到格式化分区的代码,我可以将其更改为丢弃数据块。文件“mk2fs.c”让我感到困惑,有人可以告诉我我所做的是否正确以及如何去做。

任何帮助将不胜感激,比你们提前!

0 投票
0 回答
23 浏览

filesystems - 为什么 ext 文件系统会跟踪文件单独使用的每个块?

http://www.nongnu.org/ext2-doc/ext2.html#I-BLOCK我了解到,如果文件使用块 11、12、13、14、15,则值 11、12、13、14 , 和 15 存储在 inode 的前 5 个(十二个)“直接块”条目中。

为什么不使用一系列“范围”来代替,因为这会大大减少文件块号所需的存储空间。

有了上面,愚蠢的例子,它将从 5 个元素缩小到 2 个元素。

具有 1000 个块的文件在两次运行中将从 1000 个元素缩减到 4 个元素,这意味着它可以完全避免使用间接块。

没有做这个简单的优化的原因是什么?

0 投票
0 回答
46 浏览

c - 列出图像文件中的目录内容:跳过。和 .. 并标记目录

读取指定为命令行参数的磁盘映像并打印映像中所有文件和目录的路径的 C 程序。如果条目是目录,则在路径末尾打印正斜杠....这是我的程序中的问题,我完成了如下代码....

我得到了输出,但在输出中它给出了.and ..。我必须删除这些点并添加/到目录而不是文件。

0 投票
1 回答
3543 浏览

c - ext2目录条目列表:到底在哪里?

ext2 目录条目以链表的形式保存。从1引用:

目录文件是目录条目结构的链表。每个结构都包含条目的名称、与该条目的数据关联的 inode 以及目录文件中到下一个条目的距离。

但它并没有说 inode 中有终止符。此外,没有任何字段可以告诉目录 inode 中有多少条目。

那么问题来了:当你读取 inode 数据结构时,你怎么知道它什么时候到达了链表的末尾呢?

示例:假设一个空的根目录“/”。所以命令ls应该打印出如下内容:

在实现的时候ls,你已经从磁盘中读取了根 inode 结构,然后按照i_blocks并尝试获取所有目录条目。在磁盘上,条目列表实际上存储如下:

第三个“lost+found”条目旁边还有另一个条目。

显然程序应该在“lost+found”条目处停止,因为下一个条目,即“.”。属于另一个目录。但是我们如何让我们的程序知道这一点呢?我们什么时候知道它是目录条目列表的结尾?

谢谢!

编辑:

inode 列表有点不一致。特别rec_len是 lost+found 条目是 1000 而不是 980。我更正了。

0 投票
0 回答
2155 浏览

c - 为 Ext2 文件系统实现我自己的读、写、打开、关闭函数

干杯,所以基本上我需要创建名为 my_open、my_read、my_write 和 my_close 的函数来操作 Ext2 文件系统映像。这一切都需要用 C(我知道的唯一语言)来完成。我已经编写了一些代码来打印源自文件系统中根目录的所有目录和文件,但我希望能够使用此代码来操作文件系统。这是我的代码:


这是我的头文件的结构:

任何帮助将非常感激!提前致谢!

0 投票
1 回答
2963 浏览

linux-kernel - Ext2 文件系统块位图

我正在阅读 Ext2 文件系统详细信息,但我不清楚块组中的块数是 (bx 8),其中 b 是块大小。

他们是如何得出这个数字的。8的意义是什么。

0 投票
0 回答
315 浏览

filesystems - 修改 EXT2 文件系统

对于我正在进行的项目,我需要能够修改 EXT2 文件系统。我已经进行了广泛的研究,但由于这不是一项通常需要的任务,因此在线可用的有用信息似乎很少。不幸的是,由于保密,我无法详细说明我正在做什么,但我可以将情况分解为几个关键问题,我将非常感谢您的帮助。我应该注意到我在 Linux 内核/操作系统开发方面的经验很少。

我意识到这不是一个容易解决的问题,而且这肯定是一个很大的挑战,因为这只是项目的一小部分。非常感谢您对这些问题(或任何其他警告/建议)的任何帮助。

如果事实证明这是不可能的,那么整个项目将不得不重新考虑,这就是为什么我要从这一点开始。

问题一:从源代码到实现

这不是真正的第一个问题,但我需要先回答它,以确保我完全走在正确的轨道上!请记住,我是新手,所以这可能是一个愚蠢的问题。

据我所知,所有 EXT2 源代码都包含在 linux/fs/ext2/ 的内核源代码中。如果我要修改此源代码以进行我需要的更改,然后成功重建内核,如何使驱动器或分区使用这个新修改的文​​件系统?我是否可以使用新内核将驱动器重新格式化为 EXT2,并且由于修改了源代码,修改后的文件系统将应用于它?还是我过于简单化了?

问题 2:扩展元数据

我的项目的一个重要部分需要我扩展驱动器上每个文件包含的元数据。在这种情况下,元数据是指诸如所有者、创建的时间戳、修改的时间戳等详细信息。我想做的是添加并能够更新一个额外的元数据字段。我认为最好的方法是修改inode,但是在查看源代码很长时间后,我看不到任何明显的开始。

问题 3:后果?

假设我成功地在修改后的文件系统上添加和使用了这个字段。如果一个文件随后被移动到另一个驱动器,并且具有未修改的 EXT2 文件系统,那么包含在这个额外元数据字段中的数据会丢失吗?显然文件一直在不同的文件系统之间移动没有问题,但我不确定他们如何处理这个问题。我应该注意,不需要能够在任何其他系统上访问此元数据,我只要求数据不会丢失。

奖金问题

到目前为止,我一直在使用 CentOS 作为我的原型。如果有任何关于这是否好/坏/无关紧要的建议,我将不胜感激。

编辑/更新以澄清问题

正如我之前所说,机密性使我无法准确讨论最终结果是什么。这是一个非常基本的问题,希望它能解释更多我需要做的事情。

传统文件系统跟踪三个主要时间戳:创建、上次访问、上次修改。假设我想添加一种新类型的元数据,称为“修改历史”,它存储每个修改的时间戳列表。我能想到的唯一方法是添加另一个指向数据块的属性,每次写入该文件/索引节点时都会附加时间戳。

同样,实际问题要复杂得多,但这希望能更好地了解我需要做的事情。

0 投票
1 回答
156 浏览

linux - Linux 文件系统

我正在寻找一种方法来获取 linux 文件系统(ext2/3/4)的所有元数据。任务是查找 linux 分区上存在的所有文件(已删除/未删除)。文件的元数据应该包括创建时间、修改时间等(基本上是你从命令 istat 得到的)

我面临的问题是关于已删除的文件。我找不到获取文件系统上当前存在的已删除文件的 inode 的方法。请为上述文件系统提出解决此问题的方法。

提前致谢。

0 投票
1 回答
2208 浏览

linux - 如何获取已删除分区中inode的块设备中的偏移量

在全新安装期间,我不小心格式化了包含数据的磁盘。我尝试过使用一些工具:首先是testdisk,但我没有得到好的结果。(请参阅我关于超级用户的不成功帖子)。

所以我决定阅读一些关于ext2 filesystem structure的文档,我可以得到一些结果:

删除的分区有一个这样的目录树:

所以,基于 ext2 目录项格式:

我试图找到一些匹配这个结构的数据。
我使用了这个脚本:

我发现数据似乎是 dev 目录的目录条目:

如果是这样,我得到了它的子目录的 inode 号:脚本、项目、服务,......

但我不知道该怎么办!我试图根据本指南推断这些 inode 的位置,但由于我无法找到已删除文件系统的超级块,我只需要猜测块大小、块数……以及希望获得结果对我来说似乎有点模糊。

那么,您能否为获得 inode 偏移量所需的所有值设置一些间隔,以及获得该偏移量的更正式的公式?

0 投票
0 回答
54 浏览

macos - 用于 OS X 的 Ext2 实用程序“e2cp”替代品

在我的 linux 机器上,我使用命令行实用程序 e2cp 将文件从 ext2 磁盘映像复制到 ext2 磁盘映像。不幸的是,OS X 没有提供任何开箱即用的 ext2fs 实用程序。是否有与 OS X 兼容的 e2cp 版本或类似的替代方案?请注意,我不需要挂载或执行任何高级操作,我只需要复制文件。