出于学术目的,我正在弄乱一些文件系统。我的目标之一是在每个文件系统中创建一个目录循环。目前我被 ext4 困住了,由于某种原因它不能像其他人一样工作。
我创建了两个文件夹,“顶部”和“底部”,并尝试操纵 ext4 的磁盘结构以创建某种从底部到顶部的硬链接,从而导致无限循环。
问题是,当我使用 浏览文件系统时ls
,它要么不显示两个文件夹(尽管我只操作了底部的文件夹),要么显示顶部,但在顶部,目录列表如下所示:
ls: Access to bottom not possible: I/O Error (freely translated from german)
total 2
drwxr-xr-x 3 root root 1024 Nov 14 15:49 .
drwxr-xr-x 4 root root 1024 Nov 14 15:48 ..
d????????? ? ? ? ? ? bottom
到目前为止,我采取的步骤是:
- 找到top inode的inode table entry(entry 12),看它指向block 3510
- 下一个 inode 表条目用于底部(条目 13),看到它指向块 3511
- 转到块 3510,让 . 和 .. 不变,但将底部的 inode 编号更改为 12
- 尝试使用
ls
-> 错误访问目录 - 转到块 3511,更改 . 到 inode 12,.. 到 inode 2(用于根目录)
- 尝试使用
ls
-> 错误访问目录 - 更改 inode 表中的 inode 条目 13 并使其指向块 3510
- 和往常一样的错误
我意识到 inode 条目中的 inode 和范围树具有哈希和,但我的理解是步骤 1 到 3 不应使这些哈希值中的任何一个无效。我对内部工作的理解ls
可能很低,无法找出我在这里做错了什么。
有人知道我做错了什么还是有更好的方法来实现我想要做的事情?非常感谢帮助,因为我的学士论文需要这个循环。