问题标签 [superblock]

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 投票
2 回答
1570 浏览

inode - 读取超级块

我知道在 Unix(特别是 Mac OS X)中,超级块存储有关磁盘上数据布局的信息,包括索引节点开始和结束的磁盘地址。我想扫描程序中的 inode 列表以查找已删除的文件。如何找到 inode 开始的磁盘地址?我查看了 statfs 命令,但它没有提供此信息。

0 投票
4 回答
14591 浏览

c - 为什么inode编号从1而不是0开始?

C 语言约定从 0 开始计算数组索引。为什么 inode 编号从 1 开始而不是 0?

如果保留inode 0 是为了某些特殊用途,那么inode 0 的意义是什么?

0 投票
1 回答
1411 浏览

linux - ext2“图像”文件与真正的 ext2 设备

我的任务是为 Windows 编写一个能够读取 ext2 分区的阅读器程序。

对于我的测试,我使用了一个格式化为 ext2 的驱动器和一个使用 mkfs 创建的文件(一个可以在 linux 下挂载并运行良好的文件)

出于某种原因,当我从驱动器(真正的)读取超级块时,我得到了所有正确的元数据(即块大小、inode 计数等),但是对文件执行完全相同的操作会返回错误的结果(这使得没有意义)。

2之间有区别吗?

我使用 \.\X: 打开驱动器,然后使用 mkfs 创建文件。

0 投票
1 回答
576 浏览

linux - 是什么取代了最新 Linux 内核中的 get_sb_nodev 和 get_sb?

我想知道Linux 内核中的哪个函数取代了 get_sb_nodev和 get_sb 函数?

它不再在 3.5+ 内核中可用

0 投票
2 回答
2878 浏览

c++ - 读取linux inode位图

我将使用 c++ 获取 linux inode 位图。我首先使用此代码获取超级块:

但每次我运行它时,我都会收到一个错误:

我找不到任何好的示例或教程。有人可以帮助我吗?

编辑:
我已经包括<linux/stat.h>但仍然得到同样的错误。

0 投票
2 回答
2292 浏览

linux-kernel - In Linux, how many superblocks are there per file system?

I understand that superblocks provide high-level meta data about file systems in Linux, but how many of these structures exist for a given file system? My intuition tells me there's either one per file system, or one per file.

0 投票
1 回答
8521 浏览

linux - “CIFS VFS:cifs_mount 失败,返回码 = -22”和“错误的 fs 类型,错误的选项,错误的超级块”

很长一段时间以来,我一直在使用 linux 服务器,通过使用 cifs 挂载挂载到多个 Windows 共享。

到目前为止,我总是在 /etc/fstab 中有一行: //IPADDRESS/sharename /mnt/localfolder cifs soft,username=xxx,password=xxx,_netdev,uid=500,gid=501 0 0

自从我上次重新启动(可能应用新的内核更新)以来,我无法挂载我的共享。

当前内核:3.4.76-65.111.amzn1.x86_64

这是我检查的内容和命令的结果:

1. 网络环境没有改变,共享/ip 可以从其他PC 访问和使用。

2. cifs-utils, nfs4-acl-tools, nfs-utils 已安装,portmap 正在运行

3.手动挂载命令(一直有效):

mount -t cifs -o credentials=/root/.smbcredentials,_netdev,uid=500,gid=501 //IPADDRESS/sharename /mnt/localmap/

返回: mount: 错误的 fs 类型、错误的选项、//IPADDRESS/sharename 上的错误超级块、缺少代码页或帮助程序或其他错误(对于多个文件系统(例如 nfs、cifs),您可能需要 /sbin/mount.helper 程序) 在某些情况下,可以在 syslog 中找到有用的信息 - 尝试 dmesg | 尾巴左右

4. dmesg | 尾部返回:

CIFS VFS:连接到 DFS 根尚未实现 CIFS VFS:cifs_mount 失败,返回码 = -22

任何想法我还可以尝试什么或者这可能是什么?

0 投票
1 回答
236 浏览

c - Linux内核中Dentry和超级块结构之间的循环依赖

我曾经做过一些oo编程。现在我正在阅读 C 中的 linux 内核代码。我发现:

我们可以看到 super_block 结构有一个 struct dentry 属性,而 struct dentry 有一个 super_block 属性。它会导致循环依赖吗?多谢

如果是,内存管理如何工作?例如,如果一个 dentry 对象被删除,super_block 将指向一个无效的位置。我的意思是如何管理他们的生命周期。

0 投票
1 回答
2865 浏览

c - Filesystem- ext4:应用程序破坏超级块

我发现了很多链接,但几乎所有链接都指向修复而不是原因。

我在通过 USB 读卡器连接到 PC 的 sd 卡上创建了一个 7GB ext4 分区。我有一个应用程序正在将 10488576 字节写入上述分区 (/dev/sdc2)。应用程序运行后,文件系统看起来已损坏:

该应用程序只是使用如下所示的内容(我无法发布确切的代码):

文件系统块大小为 4K。备份超级块 32768 , 98304 ,163840 ,229376 , 294912 ,819200, 884736 ,1605632 如果需要更多信息,请告诉我。我需要了解可能导致这种损坏的原因,因为我非常肯定应用程序代码可能有问题。

EDIT: 我可以看到主超级块从 0 开始,并且之前的 lseek() 调用write()也执行SEEK_SET到 0,这将覆盖超级块信息。我将在远离超级块之前尝试 lseek write()

EDIT: 我已经通过上面提到的方法解决了这个问题。根据 dumpe2fs o/p 我对第 0 组有以下信息:

所以在写之前我确实 lseek 到 8593*4096 。现在文件系统没有损坏。

0 投票
0 回答
135 浏览

backup - 如何在 Redhat 中恢复 vxfs 备份的超级块数据?

在邮件服务器中安装 Veritas CFS 解决方案时,发生磁盘 I/O 错误。为了解决这个问题,使用了disk setup命令但是清除了head data(31MB)。我的问题是 Redhat 中存在多少 vxfs(Veritas File System) 备份超级块数据?如果备份超级块和超级块都被折叠并且无法恢复,如何创建它?