问题标签 [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.
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 权限的路径将不胜感激。
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
这是我的代码:
unix - Unix内核如何转换文件偏移量?
正如标题所暗示的,我无法弄清楚 Unix 内核如何将逻辑文件偏移量转换为逻辑块号,然后从 i-node 检索它。
作为参考,我要求更详细地解释 Maurice J. Bach 在“UNIX 操作系统的设计”中首先描述的“bmap”算法。
谢谢..
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 操作
保险丝主
embedded - 嵌入式设备中的 ext2/ext3
我希望能够在嵌入式设备中使用 ext2 或 ext3 文件系统,而不必使用 Linux。我计划安装一个带有 SATA 硬盘驱动器的嵌入式处理器。我在 Kernel.org 上找到了源代码,但我不确定如何使用它。理想情况下,我想要一些可以调用的函数来写入/读取文件等。是否有任何关于此的文档或有人做过类似的事情。
谢谢
乔恩
filesystems - 需要 UFS 参考来编码一些东西来从原始数据解释文件系统
我希望编写一些工具来帮助处理磁盘上的文件系统 UFS,以访问原始数据。我已经了解了很多关于 UFS 的知识,并且知道大多数 Unix/Linux 文件系统都有一些共性。我将读入 FS 结构,然后希望能够像文件系统驱动程序那样遍历事物。现在的困难在于有关 UFS 如何做事的文档。我已经阅读了很多更高级别的内容,但我希望看到类似这样的内容,它适用于 ext2 - http://homepage.smc.edu/morgan_david/cs40/analyze-ext2.htm。
该页面很棒,因为它显示了超级块、inode、目录条目等的完整定义。我还了解了 inode 在其他研究中的工作原理。我已经安装了 FreeBSD 并正在对其进行分析以进行比较,它是相似的。但是我知道有区别。此外,我不确定某些事情是如何完成的,例如查找文件的 inode。ext2 的链接说要这样做-
- 访问根目录的inode(inode 2)以获取根目录的数据位置
- 访问根目录的数据以找到 alpha1 的目录条目
- 访问 alpha1 的条目以获取 alpha1 的 inode 的位置
- 访问 alpha1 的 inode 以获取 alpha1 的数据位置
- 访问 alpha1(字母表)的数据
我不知道第 3 步。好的,我在文件的目录条目中看到了 inode 编号。这如何为您提供 inode 位置?如何找到inode?
更好的参考会很棒。我还没有找到任何可能有帮助的书,但我绝对愿意买一本书。
谢谢你的帮助!
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 的?
c - 自定义内核:实现文件系统
作为一个课程外的项目,我目前正在开发一个内核,以试图更好地理解实际操作系统的所有方面。到目前为止,我已经完成了一个平面物理内存模型的设置,它支持分页和基本中断(接下来可能是键盘和触控板/鼠标)。我认为向前迈出的一步是实现一个文件系统,我对 ext2 很感兴趣。我环顾四周,即使在 SO 上,但没有任何明确的答案可以回答我的问题:
- 是否可以编写驱动程序来访问 C 中的 ext2 文件系统,还是我需要降低?
- 如果我打算从 USB 设备访问文件系统,我假设我需要首先运行 USB 设备驱动程序。对此的任何帮助将不胜感激。
- 我知道用于检测文件系统的代码已经在 MINIX 和其他内核上可用,但我真正想知道的是,如果我想构建一个自定义的虽然简单的文件系统,我该怎么做?我也在考虑这种可能性。
如果问题和细节听起来有点无知,我深表歉意,但我仍在学习过程中。
谢谢 :)
filesystems - 从目录中创建一个 ext2 文件系统以用作 ramdisk
我正在尝试自动确定目录将创建的 ext2 ramdisk 文件系统的大小。我目前正在做的是:
但是当我安装并cp -r
$RAMDISK_FS_DIR
进入时,ramdisk.img
我会收到这样的消息
我确定在我的这种特定情况下,将 BLOCK_COUNT 增加 48 个块正是我需要多少才能使操作成功。我需要一种方法来找到任意目录大小的这个数字。
请注意,我的主机文件系统是 ext4。
filesystems - EXT2文件系统结构细节是什么?
我正试图围绕 EXT2 文件系统展开思考,但我找不到一个可以详细显示 EXT2 文件系统的地方。
最后我自己画了一张图。所以我走到了这一步。现在我试图弄清楚以下内容(我已经找到了一些信息):
- 每个扇区的字节数:0.5kB - 4kB
- 每个块的字节数:4kB - 64kB
- 每块扇区数:1 - 128
- 每个块组的块数:?
- 每个分区的块组数:?
对我来说很疯狂,我找不到一个有这些信息的地方。
编辑:也刚刚发现这个,这意味着我每个块号的字节数可能是错误的: