
java 在普通 chroot 中運作良好。
然而,在 grsec 強化的 chroot 中,它抱怨沒有足夠的記憶體來建構 VM。
關於如何讓它運行的任何想法,因為我真的需要一個強化的 chroot。
謝謝。
答案1
一般來說,Java 與 grsec 配合得很好。
然而 grsec 中有一個選項會破壞 Java 的壞處。
看來您在核心中啟用了該選項。
檢查它:
[*] Grsecurity
Customize Configuration --->
PaX --->
Miscellaneous hardening features --->
[ ] Sanitize all freed memory
確保Sanitize all freed memory
該選項已停用,重新編譯核心(IMO 它無法透過 sysctl 進行管理)並重試。
答案2
您應該提供更多詳細資訊:錯誤訊息的確切文字、您正在使用的 JVM 等。
我在 32 位元 Gentoo Hardened 上執行 java 時遇到了類似的問題(也是 grsec,但沒有 chroot):https://bugs.gentoo.org/show_bug.cgi?id=344135
您可以嘗試透過更改 jvm.cfg 以使用“客戶端”而不是“伺服器”來解決此問題,例如:
[jvm.cfg.patch]
--client IF_SERVER_CLASS -server
--server KNOWN
+-client KNOWN
您也可以嘗試使用 -client 和/或 -Xmx256m 選項來執行 java。