挂载块大小 >4KiB 的 ext4 分区

挂载块大小 >4KiB 的 ext4 分区

我正在尝试从 NAS 挂载一个分区,其块大小为 65536 字节,这超过了我的发行版预编译内核内存分页大小 4KiB,因此我无法正常挂载它。

我需要更改哪些内核编译参数才能获得足够大的内存分页大小?在 x86-64 架构下可行吗?

make xconfig编辑:除非我错过了它,否则似乎没有它的选项。

page_types.h下面arch\x86\include\asm

/* PAGE_SHIFT determines the page size */
#define PAGE_SHIFT  12
#define PAGE_SIZE   (_AC(1,UL) << PAGE_SHIFT)
#define PAGE_MASK   (~(PAGE_SIZE-1))`

它看起来不可配置。我可以直接将这个数字改为 16,它可能会发出漂亮的爆炸声并摧毁东京。我可能会在今晚晚些时候尝试一下。

答案1

page_types.h下面arch\x86\include\asm

/* PAGE_SHIFT determines the page size */
#define PAGE_SHIFT  12
#define PAGE_SIZE   (_AC(1,UL) << PAGE_SHIFT)
#define PAGE_MASK   (~(PAGE_SIZE-1))

将 12 改为 16 会导致

arch/x86/kernel/head64.c: In function ‘x86_64_start_kernel’:
arch/x86/kernel/head64.c:71: error: negative width in bit-field ‘<anonymous>’
make[2]: *** [arch/x86/kernel/head64.o] Error 1

因为这只是模块偏移的健全性检查代码,所以更改内存分页大小似乎会产生很多意想不到的副作用,这将使事情变得不那么简单。我想我只能寻找另一个可以运行的架构了。:(

以下是支持 64KiB 或更大页面大小的架构列表:ia64、mips、pa-risc、powerpc、sh、sparc64。因此,我最好的选择似乎是找到一台旧的 PPC Mac。

答案2

您需要更改内核页面大小。不建议这么做,但我认为是可行的。

但这与您的架构无关。(即,如果可能的话,可以用您的架构来完成,如果不能,那不是因为您的架构)

相关内容