linux 将 ext4 块大小更改为 8192 现在无法挂载它

linux 将 ext4 块大小更改为 8192 现在无法挂载它

我已经这样做了:

mkfs.ext4 -j -b 8192 /dev/sda3

现在我尝试使用以下命令安装它:

sudo mount -t ext4 /dev/sda3 foo 

但我收到了这个错误:

mount: wrong fs type, bad option, bad superblock on /dev/sda3

有什么问题?

答案1

据我所知,x86 平台不支持如此巨大的块。问题是:ext*fs 基于通用 VFS 框架,当块大小大于页面大小(x86 上为 4096)时,它无法工作。在 Itanium 和其他具有 > 4KB 内存页面的奇特架构上(但在具有 2MB 或 4MB 页面的 x86/x86_64 上则不行),这种块大小可能有效。在 Linux 中,片段大小 > 4096 的 ufs2 也存在同样的问题。

这些知识基于一位 UFS2/Linux 开发人员提供的信息。列表中还有一些字母,例如问题 回答

引用“Andreas Dilger”的回答

Linux 要求块大小 <= PAGE_SIZE,因此基本上所有文件系统都使用块大小 <= 4096,除非它们内部实现了从页面或缓冲区缓存读取/写入部分磁盘块的支持。

使用 ext2/3,可以改变分配的 inode 数量而不改变块大小(每个块组的 inode 更少)。

对于 UFS2,有一个明确的检查fragment_size <= 4096。我认为在 ext*fs 中也有相同的检查。

基本上,如果启用了扩展,则无需为 ext4 设置如此大的块大小。扩展非常类似于大文件的巨大块。使用扩展,您将获得更高的性能和更少的碎片,但它们在较旧的 Linux 内核或某些较旧的第三方操作系统驱动程序(如 Windows)中不受支持(不向后兼容)。

相关内容