2

我正在使用 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”的链接,但它是一个目录,当我单击它时,它会转到“/”。我想知道我做错了什么......

4

1 回答 1

1

一个(非常)迟到的响应,但仅仅因为符号链接的数据在块指针中并不意味着文件大小为 0!您需要将i_size符号链接的 inode 中的字段设置为等于路径的长度

于 2021-05-19T22:00:34.403 回答