问题标签 [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 投票
2 回答
255 浏览

linux - 将要在 EXT2 中打开文件时检查的 ACL 权限在哪里?

EXT2 file.c打开文件操作(.open)中被指向dquot_file_open哪个更进一步指向generic_file_open哪个存在于fs/open.c.

generic_file_open看起来它只有以下代码

即将打开文件时在哪里检查 ACL 权限?

我什么时候用谷歌搜索并使用 LXR 浏览了代码,我找到了以下路径。

do_sys_open -> do_filp_open -> path_openat -> do_last -> may_open -> inode_permission -> do_inode_permission -> generic_permission -> acl_permission_check -> check_acl -> posix_acl_permission

但我不明白 EXT2 的 .open 是如何链接到 do_sys_open 的。

任何帮助让我知道在文件打开期间检查 acl 权限的路径将不胜感激。

0 投票
1 回答
821 浏览

directory - 如何从映射内存中读取 ext2 根目录?

我正在为我的大学制作一个远程文件系统服务器,但在读取根目录时遇到了一些问题……事情是这样的:我已经读取了根 inode(inode 2)并且它具有一致的数据,我的意思是,例如,所有者用户 ID 字段设置为“1000”。然后我继续读取 inode 数据块的内容,但是当我尝试访问有问题的数据块(inode i_block 数组中唯一寻址的数据块,调试时为 240)时,所有字节都设置为 '0 '。谁能帮我这个?这真的很重要。注意:除了使用映射内存之外,我无法以其他方式进行操作,而且我不是打开真实磁盘,而是打开 .disk linux 文件。它是用命令行创建的

mkfs.ext2 -F -r 0 -b 1024 ext2.disk 30000

这是我的代码:

0 投票
1 回答
1056 浏览

unix - Unix内核如何转换文件偏移量?

正如标题所暗示的,我无法弄清楚 Unix 内核如何将逻辑文件偏移量转换为逻辑块号,然后从 i-node 检索它。

作为参考,我要求更详细地解释 Maurice J. Bach 在“UNIX 操作系统的设计”中首先描述的“bmap”算法。

谢谢..

0 投票
1 回答
1555 浏览

c - 使用 FUSE 列出目录

这是我一直在努力解决的一个问题,但没有任何进展。希望你能帮帮我!

我将 FUSE 安装在目录('home/fsc')中没有问题,甚至按以下方式列出它的父目录(/home):

在 /home 上时 .. ls -l

并且操作 getattr 工作得很好。

当我打开目录('cd fsc')时出现问题,它正确打开并调试操作我可以看到 fuse 如何询问'/'文件属性,但是当我尝试列出该目录中的文件时,fuse 要求'/tls' 的属性在无限循环中总是收到错误'2','没有这样的文件或目录',直到它断开连接。

我发现更奇怪的是,它从未像我预期的那样进入 readdir 操作。

关于为什么会发生这种情况的任何想法?为什么 fuse 要求 '/tls' 属性而不是执行 readdir of '/' ?

非常感谢您在这里的帮助,我需要一个解决方案来解决我需要尽快工作的大学项目,因此非常感谢您的帮助!

问候,

编辑:

我刚刚注意到它还要求在此循环期间提供 '/i686'、'/sse2'、'/cmov'、'/librt.so.1' 的文件属性,然后再次返回到 '/tls'

2.-编辑:

GETATTR 操作

READDIR 操作

保险丝主

0 投票
0 回答
1139 浏览

embedded - 嵌入式设备中的 ext2/ext3

我希望能够在嵌入式设备中使用 ext2 或 ext3 文件系统,而不必使用 Linux。我计划安装一个带有 SATA 硬盘驱动器的嵌入式处理器。我在 Kernel.org 上找到了源代码,但我不确定如何使用它。理想情况下,我想要一些可以调用的函数来写入/读取文件等。是否有任何关于此的文档或有人做过类似的事情。

谢谢

乔恩

0 投票
0 回答
77 浏览

filesystems - 需要 UFS 参考来编码一些东西来从原始数据解释文件系统

我希望编写一些工具来帮助处理磁盘上的文件系统 UFS,以访问原始数据。我已经了解了很多关于 UFS 的知识,并且知道大多数 Unix/Linux 文件系统都有一些共性。我将读入 FS 结构,然后希望能够像文件系统驱动程序那样遍历事物。现在的困难在于有关 UFS 如何做事的文档。我已经阅读了很多更高级别的内容,但我希望看到类似这样的内容,它适用于 ext2 - http://homepage.smc.edu/morgan_david/cs40/analyze-ext2.htm

该页面很棒,因为它显示了超级块、inode、目录条目等的完整定义。我还了解了 inode 在其他研究中的工作原理。我已经安装了 FreeBSD 并正在对其进行分析以进行比较,它是相似的。但是我知道有区别。此外,我不确定某些事情是如何完成的,例如查找文件的 inode。ext2 的链接说要这样做-

  1. 访问根目录的inode(inode 2)以获取根目录的数据位置
  2. 访问根目录的数据以找到 alpha1 的目录条目
  3. 访问 alpha1 的条目以获取 alpha1 的 inode 的位置
  4. 访问 alpha1 的 inode 以获取 alpha1 的数据位置
  5. 访问 alpha1(字母表)的数据

我不知道第 3 步。好的,我在文件的目录条目中看到了 inode 编号。这如何为您提供 inode 位置?如何找到inode?

更好的参考会很棒。我还没有找到任何可能有帮助的书,但我绝对愿意买一本书。

谢谢你的帮助!

0 投票
1 回答
759 浏览

linux - 结构 super_block 和 ext2_super_block

谁能解释一下 struct ext2_super_block (在 fs/ext2/ext2.h 中)和 struct super_block (在 include/linux/fs.h 中)之间的关系。我问这个是因为,在 LKP(由 Robert Love 撰写)中,它说每个文件系统都必须实现 struct super_block。但是 ext2_super_block 不同,super.c 中的函数是如何应用于 ext2 的?

0 投票
1 回答
1862 浏览

c - 自定义内核:实现文件系统

作为一个课程外的项目,我目前正在开发一个内核,以试图更好地理解实际操作系统的所有方面。到目前为止,我已经完成了一个平面物理内存模型的设置,它支持分页和基本中断(接下来可能是键盘和触控板/鼠标)。我认为向前迈出的一步是实现一个文件系统,我对 ext2 很感兴趣。我环顾四周,即使在 SO 上,但没有任何明确的答案可以回答我的问题:

  1. 是否可以编写驱动程序来访问 C 中的 ext2 文件系统,还是我需要降低?
  2. 如果我打算从 USB 设备访问文件系统,我假设我需要首先运行 USB 设备驱动程序。对此的任何帮助将不胜感激。
  3. 我知道用于检测文件系统的代码已经在 MINIX 和其他内核上可用,但我真正想知道的是,如果我想构建一个自定义的虽然简单的文件系统,我该怎么做?我也在考虑这种可能性。

如果问题和细节听起来有点无知,我深表歉意,但我仍在学习过程中。

谢谢 :)

0 投票
1 回答
791 浏览

filesystems - 从目录中创建一个 ext2 文件系统以用作 ramdisk

我正在尝试自动确定目录将创建的 ext2 ramdisk 文件系统的大小。我目前正在做的是:

但是当我安装并cp -r $RAMDISK_FS_DIR进入时,ramdisk.img我会收到这样的消息

我确定在我的这种特定情况下,将 BLOCK_COUNT 增加 48 个块正是我需要多少才能使操作成功。我需要一种方法来找到任意目录大小的这个数字。

请注意,我的主机文件系统是 ext4。

0 投票
1 回答
508 浏览

filesystems - EXT2文件系统结构细节是什么?

我正试图围绕 EXT2 文件系统展开思考,但我找不到一个可以详细显示 EXT2 文件系统的地方。

最后我自己画了一张图。所以我走到了这一步。现在我试图弄清楚以下内容(我已经找到了一些信息):

  • 每个扇区的字节数:0.5kB - 4kB
  • 每个块的字节数:4kB - 64kB
  • 每块扇区数:1 - 128
  • 每个块组的块数:?
  • 每个分区的块组数:?

对我来说很疯狂,我找不到一个有这些信息的地方。

编辑:也刚刚发现这个,这意味着我每个块号的字节数可能是错误的: