问题标签 [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.

0 投票
1 回答
9221 浏览

linux - inode 位图和 inode 表的区别是什么

我试图了解 inode 位图和 inode 表之间的区别(来自 ext2 文件系统文档),但我不明白。谁能解释一下?

0 投票
5 回答
41140 浏览

caching - 冷缓存和热缓存的概念是什么意思?

我读了一篇论文,它使用了术语冷缓存热缓存。我用谷歌搜索了这个术语,但没有找到有用的东西(这里只有一个线程)。

这些术语是什么意思?

0 投票
1 回答
1388 浏览

linux - FTP、SFTP、HDFS、NTFS、EXT2、EXT3

我只是想知道这些协议和文件系统是如何相互关联的,每个都在哪里使用。

FTP、SFTP、HDFS、NTFS、EXT2、EXT3

任何帮助,将不胜感激。

谢谢。

0 投票
0 回答
69 浏览

linux - fsync 的性能在 Linux 2.6.32 ext2 文件系统上得到了混合结果

当我在我的 Linux 机器上测试 fsync 的性能时,我发现 fsync 将数据插入到文件中会增加文件时会花费大量时间,但在插入仅覆盖现有内容而不增加文件大小的数据时,它的执行速度要快 100 倍。

环境:2-CPU 12 核 Linux 版本 2.6.32_1-14-0-0 (scmpf@pwd) (gcc 版本 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC)) #1 SMP Mon Mar 31 10:42:09 CST 2014 ext2 文件系统

测试代码:

结果:

在 "echo "" >/home/zhangguangzhou/tmp/0" 之后运行上面的 test_fsync 程序,这会清空文件,每个 fsync 平均花费 8ms。但是当重复运行时,平均花费 50 us。在第二次及以后的运行中。当我从文件中间测试插入数据或插入不同大小的数据时,结果几乎没有变化。

问题: 如果写入正在增长文件,那么 fsync 的额外时间是多少?

我想到了fysnc中的inode IO,但是file-growth write和no-file-growth write的inode IO是一样的,因为它们都需要更新文件修改时间的inode元数据。

0 投票
1 回答
299 浏览

bootloader - ext2 inode 5 (EXT2_BOOT_LOADER_INO) 是否被任何操作系统使用?

在 ext2 中,有许多保留的 inode,例如 inode 2 是根目录。在Linux ext2 头文件中,inode 5 被定义为“Boot loader inode”。

是否有任何操作系统实际使用它?

你如何读取和写入这个inode?

0 投票
1 回答
169 浏览

c - Linux内核的ext2函数ext2_statfs()中的内存屏障

谁能解释为什么linux内核的ext2功能 int ext2_statfs (struct dentry * dentry, struct kstatfs * buf)

问题smp_rmb()和以防smp_wmb()万一 else if (sbi->s_blocks_last != le32_to_cpu(es->s_blocks_count)) {

这是在上游内核提交2235219b7721b8e74de6841e79240936561a2b63中添加的,它省略了不必要的 .statfs 计算,但无法理解为什么要添加内存屏障。

0 投票
2 回答
588 浏览

linux-kernel - 何时为新创建的 ext2 inode 分配存储空间?

我正在阅读《Understanding the Linux Kernel, 3rd Edition》,了解如何在 ext2fs 上创建新的常规文件。
(这本书可以在多个地方在线获得:不确定它们的合法性。相关章节的更新版本在O'reilly 的网站上- 但它没有所有相关数据)

在我看来,Linux 内核必须创建一个新的 inode,并为其分配必要的块。

本书概述了以下程序:

  • Creating inodes(第 758 页)
  • Allocating a Data Block(第 764 页)

我不明白的是内核何时分配新的 inode 的数据块。

在程序接近尾声(第 14 段)时Creating inodes,我看到以下内容:

调用ext2_preread_inode()以从磁盘读取包含 inode 的块并将该块放入页面缓存中。完成这种类型的预读是因为最近创建的 inode 很可能会很快被写回。

因此,就在此之前-在我看来,这是分配 inode 块的合乎逻辑的地方。但是,可能是 ext2 架构师决定在不同的时间进行分配。

有谁知道什么时候为新创建的 ext2 inode 分配存储空间?

0 投票
1 回答
1869 浏览

filesystems - 制作linux ext2文件系统磁盘镜像?

如何构建文件系统磁盘映像,然后在位图文件中查看其磁盘布局?您如何向其中添加目录?我在使用 dd 创建的文件上使用了 mkfs.ext2,但我不确定它是否正确完成。我需要能够查看 inode 和 inode 表并了解它们与块的关系。

0 投票
2 回答
1804 浏览

c - 获取 ext2 映像中的特定 inode (C)

我想使用 C 语言在 ext2 映像中访问特定的 inode(使用其编号)。我打算通过使用 open() 系统调用打开 ext2 映像,然后使用具有正确偏移量的 lseek() 遍历它,直到我到达 inode。这个对吗?还是我做错了什么?我有点困惑使用 open() 是否正确,或者有更合适的功能来做到这一点。

我应该只添加偏移量到 startPosition 直到我到达 inode 吗?但是如何搜索特定的 inode?

更新(更具体)

我已经有了 ext2 文件系统的布局(http://www.nongnu.org/ext2-doc/ext2.html),这给了我需要的一切(所有偏移量)。我需要创建一个 C 程序来操作元数据和数据。例如,删除和复制文件。

我知道该怎么做,但我在执行它时遇到了麻烦。

例如:为了测试我是否知道自己在做什么,我正在尝试读取教授提供的 ext2 磁盘映像中的空闲 inode 数量,这样做:

我收到的输出是:“空闲 inode 数量:32767”

我是否正确解释了从 read() 获得的数据?我不知道收到的这个值是否正确。

0 投票
1 回答
1036 浏览

java - Ext2: Group Descriptors

I'm writing a Java program to go through and navigate into a ext2 filesystem image. I know my fs is revision 1 (or greater), so I know that there are copies of superblock in groups 0,1 and those that are powers of 3,5 and 7. My question is, what happens to the group descriptor when in a group without a superblock? is there any? if there is, does that mean that it's in the first block of the group? Where should I look for the inode table in my third group?

My fs has 3 groups (0,1,2), each 8192 blocks long with blocksize=1024.