问题标签 [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 回答
509 浏览

c - c - 如何在给定绝对路径的 ext2 虚拟映像 (.img) 中找到目录的 inode?

在 c 中,我如何在虚拟磁盘中找到目录?我可以轻松地递归绝对路径并将其调整为我正在寻找的目录的名称(即,将 /x/y/z 转换为 z)。我知道根是 inode 2,我知道如何访问文件系统的某些部分(超级块、块描述符、inode 表、bg_block/inode 位图)但我不知道如何遍历图像中的所有数据.

这张图片只有一个块组,物有所值。Inode 大小和块大小在标头中设置为它们自己的预定义变量(超级块中的 EXT2_BLOCK_SIZE 和 s_inode_size)。

0 投票
1 回答
659 浏览

c - 如何在 ext2 文件系统上打开文件?

如何在 ext2 文件系统中打开文件。例如,假设我要打开文件:/a/b/c.txt

我在这里查看功能:http ://www.nongnu.org/ext2-doc/ext2.html

0 投票
1 回答
307 浏览

c++ - 访问 vdi、ext2 中的超级块

我正在尝试从 vdi 文件打开和读取 ext2 文件系统时访问超级块。我想使用 ext2.h 文件中存在的 struct ext2_super_block (参见http://lxr.free-electrons.com/source/fs/ext2/ext2.h的第 415 行)。我想只是#include <ext2.h>因为我当前的 unix 操作系统是 ext3/ext4,所以头文件不在我的系统中,ext2.h 需要包含的任何文件也没有。

我怎样才能包含这个文件来得到那个结构?我应该自己构建它(读入时保存超级块的结构)吗?如果我自己构建它,读入的内容会有什么不同?

到目前为止,这是我的系统调用来完成此操作的内容(显然目前不起作用):

0 投票
1 回答
2736 浏览

filesystems - 在 linux 4.4.0 [RHEL] 中将 ext4 挂载为 ext2

我执行的命令

mkfs .ext4 -F /dev/xxx0

mount -o dax /dev/xxx0 /mnt/ext4-xxx0

挂载输出

dmesg 输出

随后导致 fallocate 失败,因为 ext2 不支持 fos ext2。

任何建议/解决方案将不胜感激。

0 投票
1 回答
685 浏览

c - Ext2 - 如何创建文件

在 ext2 文件系统中创建文件的过程是怎样的?

我正在尝试制作一个简单的系统调用,它采用路径并创建给定的文件——比如触摸。

例如,代码:

应该在 /tmp 中创建一个名为“file”的文件。

现在系统调用本身应该如何工作?

到目前为止我的工作(我在这里省略了错误检查以确保可读性):

这似乎有效(我可以在日志中看到分配了一个 inode),但是,当我调用ls目录时,我看不到那里的文件。

我的想法是将新的 inode 添加到struct dentry目录,所以我添加了以下代码:

但是,这似乎仍然不起作用(我看不到使用 的文件ls)。

如何正确实现这个系统调用,我错过了什么?

编辑:关于 R.. 答案 - 这个系统调用的目的是玩转 ext2 并了解它的设计,所以我们可以假设路径总是有效的,文件系统确实是 ext2 等等。

0 投票
0 回答
117 浏览

directory - 找到 Ext2 中剩余的不适合该块的目录条目

我正在开发自己的操作系统,目前正在开发 Ext2 文件系统驱动程序。我正在使用 GRUB 文件进行测试。我坚持列出一个目录。我正在阅读目录内容的第一块,一切都很好,但数量不多!在块的末尾,它用零填充。但是,当我挂载磁盘映像并在 Ubuntu 中列出它时,我可以看到有额外的文件。

我怎样才能得到这些目录条目?有什么建议么?

0 投票
0 回答
99 浏览

c - 文件系统如何定位文件的数据?

我试图像这样删除特定文件的 inode:

问题是我仍然可以从文件浏览器应用程序中打开文件。
所以我的问题是这里发生了什么?文件浏览器应用程序如何能够找到我的文件的数据块并打开它?
我在 ubuntu 14.0.4 上运行了这段代码

0 投票
1 回答
116 浏览

c - C,在空间中为大小为 15 的无符号整数数组存储长度 <=60 的字符串

这个问题完全把我弄糊涂了——

我有一个数组(固定大小):

我有一个字符串(长度 <= 60):

我将如何将字符串的字符存储在数组的空间中?我在考虑也许使用 memset,但我不知道这是否可行?

供参考:“如果文件的数据适合为指向数据的指针分配的空间,则可以方便地使用该空间。例如 ext2 以这种方式存储符号链接的数据(通常是文件名),如果数据不再超过 60 个字节(“快速符号链接”)。”

来源

0 投票
1 回答
1593 浏览

filesystems - 是否有 ext2/ext3/ext4 文件系统的官方规范?

我想知道,对于蓝牙,我们有 IEEE 802.15.1 标准,由蓝牙特别兴趣小组管理。对于 Wifi,我们有 IEEE 802.11 标准和 Wifi 联盟。对于 PCIe 上的 NVMe SSD,我们有 nvmexpress 来规范和发布其官方文档。

因此,通常有一个监管机构来决定事情并标准化某些事情应该如何实现,以允许几个不同实现之间的互操作性。

但是对于 ext2/ext3/ext4 文件系统,除了 Linux 内核代码,我没有找到任何官方标准。

这些文件系统基本上是由内核社区决定的吗?他们是否承诺不更改它们以使其仍与其他操作系统兼容?

还是某处有一些官方规范?谁提供它?

谢谢

0 投票
1 回答
1941 浏览

filesystems - 如何在 ext2 文件系统中删除文件

我正在学习 EXT2 文件系统。我对如何为 EXT2 删除文件感到困惑。我的理解是,在删除时,它实际上并没有删除 inode,而是将一些元数据标记为未使用。我的问题是,它在删除时会修改哪些元数据,文件系统如何知道文件已被删除?谢谢。