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に変更すると、かなりの爆発が発生し、東京が破壊される可能性があります。たぶん今晩遅くにやってみようと思います。
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を見つけるのが最善の策のようです。
カーネルのページサイズを変更する必要があります。お勧めはしませんが、可能だと思います。
しかし、それはあなたのアーキテクチャとは何の関係もありません。 (つまり、可能であれば、それはあなたのアーキテクチャで行うことができ、それがあなたのアーキテクチャのためにできない場合)