現象:伺服器 BIOS 明確顯示 48GB 實體記憶體,但進入 Red Hat Enterprise Linux AS 5 Update 4 x64 系統後,free -g 僅顯示 32GB。硬體無故障、記憶體插槽全滿、BIOS 設定正確,問題出在哪?
經排查,該系統啟動的是 Xen 虛擬化核心。在 Xen 架構下,宿主作業系統(Dom0)本質上運行於一個特權虛擬機中。RHEL 5 時代的 Xen 核心對 Dom0 可見記憶體設有 32GB 硬性上限,超出部分雖被 Hypervisor 管理,但不可直接由 Dom0 定址使用。這是設計權衡,非 Bug。
/boot/grub/grub.conf,將 default 參數指向非 Xen 核心條目(通常標題不含 "xen" 字樣)。free -g 應顯示完整 48GB。grub.conf,確保可回滾;驗證所有驅動程式(RAID 卡、HBA、網卡)在標準核心下正常載入。核心選擇直接決定記憶體可見上限。遇到「BIOS 看得到、OS 看不到」的大容量記憶體問題,優先檢查是否啟動了受限的虛擬化核心。