Linux

Debian OS 分區上的所有系統記憶體都不可用

  • August 15, 2015

我有一台裝有 Windows 7 和 Debian OS 磁碟分區的電腦。在 Windows 7 作業系統上登錄時可以看到該電腦具有 12GB 記憶體。但是,Debian 分區只能辨識不到 4GB 的記憶體。為什麼會這樣,我該如何解決?

當我執行“free”命令時,我看到 RAM 量減少了,並且當我嘗試在 Virtual Box 中創建一個虛擬機時,VM 允許的最大 RAM 以相同的低量達到頂峰。據我了解,(這沒什麼好說的……)作業系統分區只是磁碟分區而不是 RAM 分區。

編輯:

執行 Debian 6“擠壓”32 位

“免費”命令的輸出

         total      used    free       ....
Mem:    3619800     386568   3233232    ...
-/+ buffers/cache:   66944   3552856  
Swap:    497972         0    497972   

我沒有安裝 Gnome,所以我不確定如何截屏。但是在 VirtualBox 中,您有一個為 VM 分配 RAM 的設置,在這個 Linux 分區上,該選項最大為 3584MB。

4GB 的記憶體需要 32 位來儲存地址。大多數 32 位處理器架構只能處理 4GB 記憶體,較舊的 x86 CPU 也不例外。

較新的 32 位 x86 CPU 可以通過稱為PAE的處理器功能訪問超過 4GB 的物理記憶體。¹ 64 位 x86 CPU 始終具有 PAE。

PAE 需要 Linux 核心編譯選項。如果沒有這個選項,核心只能定址 4GB 的 RAM,其中一些會失去,因為它被圖形卡等外圍設備使用。但是使用此選項,核心將無法在沒有 PAE 功能的處理器上執行。

Debian 的預設核心與大多數 x86 處理器兼容,但不能使用最新(-ish)處理器的某些功能,例如 PAE。要使用超過 4GB 的 RAM,請安裝啟用 PAE 的核心並重新啟動。在 Debian Squeeze 上,您需要**linux-image-2.6-686-bigmempackage**。

如果您有 64 位 CPU,則可以改為安裝 64 位核心:linux-image-2.6-amd64。使用 64 位核心,您可以使用超過 4GB 的 RAM,並且可以執行 32 位和 64 位應用程序。或者你可以安裝一個完整的 64 位發行版(amd64架構)。要確定您的處理器是否為 64 位處理器,請執行grep -w lm /proc/cpuinfo- 如果出現一行flags : … lm …,則說明您擁有 64 位 CPU。

請注意,在 32 位系統上,虛擬記憶體的大小仍被限制為 4GB。在 Linux 上,它分為 1-3GB 用於核心和 1-3GB 用於程序。這是程序中可定址記憶體的限制;32 位系統可以使用超過 4GB 的 RAM,因為每個程序最多可以使用 1-3GB 的 RAM。所以如果你想執行一個超過 3GB RAM 的 VirtualBox VM,你需要安裝一個 64 位的發行版。

引用自:https://unix.stackexchange.com/questions/223313