问题标签 [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.
c - 如何在 EXT2 文件系统中创建符号链接
我正在使用 EXT2 文件系统,并在过去 2 天里试图弄清楚如何创建符号链接。来自http://www.nongnu.org/ext2-doc/ext2.html#DEF-SYMBOLIC-LINKS,“对于所有长度小于 60 字节的符号链接,数据存储在 inode 本身中;它使用的字段将“
为了在 /link1 到 /source 创建一个符号链接,我创建了一个新的 inode 并说它的索引为 24。由于它小于 60 个字符,我将字符串“/source”从 i_block[0] 字段开始放置(因此打印 new_inode- >i_block[0] in gdb 显示“/dir2/source”)并将 i_links_count 设置为 1,i_size 和 i_blocks 设置为 0。然后,我在 inode 2(根 inode)处创建了一个目录条目,其属性为 24,“link1”,和文件类型 EXT2_FT_SYMLINK。
创建了一个名为“link1”的链接,但它是一个目录,当我单击它时,它会转到“/”。我想知道我做错了什么......
linux - 如何修改/修补和重建 e2fsprogs?构建在添加单个 printf 时失败
我正在尝试修补和重建 e2fsprog。重新构建失败,因为测试用例在修补后开始失败。我刚刚添加了一条 printf 注释,所以不确定为什么这会导致测试用例失败。
我正在遵循的步骤。
我收到以下错误:
补丁内容:
日志很大,所以我在我们有一些有用信息的地方截取了片段。如果需要,我可以放置完整的日志。
当我删除补丁并执行 make clean 并且 make package build 成功时。不知道为什么用简单的 printf 打补丁会导致观察到的行为。
linux-kernel - Linux 文件系统中的 FS_REQUIRES_DEV 标志有什么作用?
我正在阅读使用fs/ext2/super.cext2fs
中的 FS_REQUIRES_DEV 标志注册文件系统的源代码。fs.h和内核文档都没有说明这个标志。
我还尝试查看 VFS 如何使用此标志,但没有其他用途出现,除了似乎正在打印文件系统列表(在fs/filesystem.c中)。
这面旗帜代表什么?
android - 只读模式下的 ext4 文件系统对移动设备的性能是否比 ext2 更好?
Android 将 ext4
文件系统用于只读分区,但我认为对于闪存只读驱动器ext2
更合适,因为它没有性能开销,并且在没有写入操作的情况下使用安全。
我对吗?
c - 如何在 C 中打印 ext2 超级块的 s_uuid
我创建了一个变量来存储超级块的 s_uuid 的值。但是我遇到了如何以这种形式打印这个变量,如 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。我尝试在 %x 和 %s 中使用 printf 来打印我的变量,但它不起作用。
我想知道 UUID 如何存储在文件系统中,以及如何在控制台中打印它而不是错误编码。
linux - Ext2/3:块类型说明:IND vs DIND vs TIND
我在一些地方看到了对“IND”、“DIND”和“TIND”块类型的引用,而代码中的定义非常简洁:
(https://github.com/torvalds/linux/blob/master/fs/ext4/ext4.h#L362)
有人可以澄清它们是什么,以及为什么这些定义暗示 TIND 块包含 DIND,而 DIND 块包含 IND 块。
我狂热地看了看,但没有关于这个主题的任何明显的讨论或评论,这将需要我更多的时间从代码中弄清楚。
filesystems - ext2 从 inode 号中查找包含组描述符的块
我发现许多源代码使用此方法来查找与该 inode 编号关联的组的组描述符
算法如下:
组数 = inode 数 / 每组有多少 inode
组描述符块 = 组数 / 每个块的组描述符数
操作 #2 我无法理解。
如果有另一种方法可以找到包含组描述符块的块,你能解释一下吗?
c - 有没有办法在 C 中为 i_block 创建迭代器样式函数?
我正在为一个学校项目(实现 ls、mkdir 之类的东西)开发一些 ext2 文件系统的东西,并且发现我正在为需要遍历 inode 的 i_block 的任务生成大量冗余代码。我有函数来计算 dir 条目的数量,在 dir 条目中搜索 strcmp 名称匹配,读取数据,写入数据......遍历 i_block 似乎对许多问题都很常见。我正在尝试为 i_block 编写类似于迭代器的东西来消除这种冗余。
我想知道这样做的好方法是什么?是否有在 linux 系统代码中完成此操作或类似操作的示例?或者这只是一个坏主意。
到目前为止我提出的代码:
任何建议表示赞赏!谢谢
linux - 分区上保留块所需的空间
默认情况下,ext2/3/4 fs 保留 5% 的容量,以便在磁盘空间不足时能够继续运行。
我也相信这与允许“文件之间的碎片化”或类似的事情有关(我无法找到有关此的具体信息,而且我在这个领域有点新手)。
我的问题是:我们什么时候需要保留这 5%,什么时候可以将其减少到 1-2%,或者什么时候可以完全删除?
我正在考虑 atm 的元素如下:
5% 规则是在 20 年前决定的,当时保留的大小不超过 ~100Mbs,现在完全不同了;如果我们只讨论执行命令等所需的空间,我们真的需要 20Gbs 吗?
删除这个允许的空间会是个好主意吗?如果以某种方式“碎片化”需要其中一些,我相信我们至少应该保持 1-2% 可用
这个空间真的只对与 root 有任何关联的分区有用吗?我的意思是,如果我们在 /home 中有一个文件夹的分区(个人的东西,或数据库中的数据,与操作系统没有任何关系的其他东西),则可能不需要这个空间
我只在网上看到越来越多的文章讲述如何减少保留块,所以我相信这在 100% 的时候可能不是一个坏主意,但我还没有真正能够有文章深入解释“何时可以/不能使用”的具体应用,以及“它究竟做了什么和暗示了什么”。
因此,如果你们中的一些人可以提供全面的信息(以及对我上面所提出问题的简单回答),我将非常感激。