gpt4 book ai didi

linux - 通过操作 ext4 创建目录循环

转载 作者:太空狗 更新时间:2023-10-29 12:33:26 25 4
gpt4 key购买 nike

出于学术目的,我搞乱了一些文件系统。我的目标之一是在每个文件系统中创建一个目录循环。目前我坚持使用 ext4,由于某种原因它不能像其他的那样工作。

我创建了两个文件夹“top”和“bottom”,并尝试操纵 ext4 的磁盘结构以创建某种从底部回到顶部的硬链接(hard link),从而导致无限循环。

问题是,当我使用 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

到目前为止我采取的步骤是:

  1. 找到 top 的 inode 的 inode 表条目(条目 12),看到它指向 block 3510
  2. 下一个 inode 表条目用于底部(条目 13),看到它指向 block 3511
  3. 前往区 block 3510,让 .和 .. 保持不变,但将底部的 inode 编号更改为 12
  4. 尝试使用 ls 访问目录 -> 错误
  5. 转到 block 3511,更改 .到 inode 12,..到 inode 2(根目录)
  6. 尝试使用 ls 访问目录 -> 错误
  7. 改变inode表中的inode entry 13,让它指向block 3510
  8. 和往常一样的错误

我意识到 inode 条目中的 inode 和范围树具有哈希和,但我的理解是步骤 1 到 3 不应使这些哈希值中的任何一个无效。我对 ls 的内部工作的理解可能很低,无法找出我在这里做错了什么。

有谁知道我做错了什么,或者是否有更好的方法来实现我想要做的事情?非常感谢您的帮助,因为我的学士论文需要这个循环。

最佳答案

好吧,我终于弄明白问题出在哪里了。

在系统日志中环顾四周,我发现每当浏览目录时,我都会收到以下消息:

ext4_lookup:1376: inode #12: comm ls: 'bottom' 链接到父目录

在互联网上搜索了一段时间并在 IRC 上询问了 ext4 开发人员后,我终于找到了 this补丁致力于 ext4 文件系统代码,正是我试图做的事情。不错的补丁,但无论如何您都可以通过以下方式获得目录循环:

"/"
|--"top_1"
| \--"bottom_1" --> "top_2"
|
\--"top_2"
\--"bottom_2" --> "top_1"

关于linux - 通过操作 ext4 创建目录循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20005914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com