如何从 ext2 块组读取 inode 表?

发布于 2024-12-07 05:46:21 字数 323 浏览 1 评论 0原文

在为我的业余爱好操作系统编写 ext2 驱动程序时,我遇到了从块组描述符读取 inode 表的问题。

块组描述符的第三个字段是该组的 inode 表的块 ID。就我的文件系统根目录而言,该值返回为 64。超级块位于块 1,距离卷开头 1024 字节。块大小为 1024 字节,但我的磁盘扇区大小为 512。因此,为了访问超级块,我从 lba 2 读取。

问题是当我尝试读取 inode 表时。如果它的块id是64,我的块大小是1024,磁盘扇区大小是512,我不是从磁盘扇区130读取inode表吗?我这样做了,但什么也没有...

给定有效的块组描述符读取索引节点表的正确方法是什么?

In writing an ext2 driver for my hobby OS, I ran into a problem reading the inode table from a block group descriptor.

The third field of the block group descriptor is the block ID of the inode table for that group. In my case for the root directory of my file system this comes back as 64. The superblock is located at block 1, which is 1024 bytes past the beginning of the volume. The block size is 1024 bytes, but my disk sector size is 512. So to access the superblock, I read from lba 2.

The problem is when I try to read the inode table. If it's block id is 64, and my block size is 1024 and disk sector size is 512, wouldn't I read the inode table from disk sector 130? I do that, but nothing is there...

What is the proper way to read an inode table given a valid block group descriptor?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清醇 2024-12-14 05:46:21

块组描述符表中的块 ID 都是绝对的,因此在您的情况下,块 ID 64 将存储在 LBA 128 和 129 处。

The block IDs in the block group descriptor table are all absolute, so block ID 64 is going to be stored at LBA 128 and 129 in your case.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文