web-dev-qa-db-ja.com

> 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に変更すると、かなりの爆発が発生し、東京が破壊される可能性があります。たぶん今晩遅くにやってみようと思います。

2

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。ですから、古いPPCMacを見つけるのが最善の策のようです。

1

カーネルのページサイズを変更する必要があります。お勧めはしませんが、可能だと思います。

しかし、それはあなたのアーキテクチャとは何の関係もありません。 (つまり、可能であれば、それはあなたのアーキテクチャで行うことができ、それがあなたのアーキテクチャのためにできない場合)

0
soandos