limit pamięci wirtualnego 3584MB?

3

Używam Oracle VM VirtualBox Manager 4.1.12_Ubuntu na 32-bitowym laptopie Ubuntu z 8 GB pamięci RAM, a 64-bitowy Ubuntu VM działa tylko z 3584 MB pamięci RAM (z ustawieniem „Enable PAE / NX” aktywowanym w Virtualbox, który określa powinien działać na hoście). Jak mogę pokonać to ograniczenie pamięci i uruchomić 64-bitową maszynę wirtualną z większą ilością pamięci?

Edycja: PAE powinno być włączone w laptopie, ponieważ podczas uruchamiania widzę 8 GB pamięci RAM dla 32-bitowego systemu Ubuntu 12.04 top:

Mem:   7785228k total,  1319304k used,  6465924k free,   103668k buffers
719016
źródło
Czy PAE jest włączone w systemie operacyjnym lub systemie gościa?
David Schwartz
Włączyłem PAE za pomocą ustawienia „Enable PAE / NX”, które określa, czy możliwości PAE i NX procesora hosta będą widoczne dla maszyny wirtualnej.
719016
1
Tak, to nie pomoże w zwiększeniu pamięci VM. System operacyjny nadal nie może uzyskać dostępu do tej pamięci, więc nie może przekazać jej do maszyny wirtualnej. Potrzebujesz 64-bitowego systemu operacyjnego.
David Schwartz
System operacyjny ma dostęp do 8 GB pamięci, ale Virtualbox wydaje się ograniczony przez konfigurację do 3584 MB.
719016
1
Zastanawiam się, czy to dlatego, że sama powłoka aplikacji wirtualnej skrzynki ma 32 bity. Aplikacja 32-bitowa jest ograniczona do 4 GB pamięci wirtualnej. Nie ma to nic wspólnego z PAE fizyczny limity pamięci, a nie limity pamięci wirtualnej.
David Schwartz

Odpowiedzi:

13

Możesz pokonać to ograniczenie, aktualizując system operacyjny hosta do wersji 64-bitowej.

[Zaktualizowano, ponieważ teraz jest jasne, że zarówno host, jak i maszyna wirtualna mają włączoną funkcję PEA]

To ty jesteś systemem operacyjnym (Ubuntu 32-bitowym), który zarządza pamięcią. Twój system operacyjny ma włączoną funkcję PAE, co oznacza, że ​​(system operacyjny hosta) może adresować pamięć fizyczną do 36 bitów. Jednak aplikacje są nadal ograniczone do 32-bitowej przestrzeni adresowej.

Możesz uruchomić wiele aplikacji i (np. Dwa programy używające 3½ GB pamięci RAM) na hoście, ale nie pojedynczej aplikacji, która używa więcej niż 4 GB.

Twoja wirtualna skrzynka jest pojedynczą aplikacją.

Hennes
źródło
Włączenie PAE na hoście mogłoby jednak zakładać, że system BIOS obsługuje włączanie pamięci.
David Schwartz
Tak, ale przeczytałem (i nadal czytam) pytanie jako PEA w maszynie wirtualnej. Może OP wyjaśni to rano.
Hennes
Teraz oznacza to, że VM ma dostęp do PAE / NX. Więc to nie pomoże w wykorzystaniu większej ilości pamięci.
David Schwartz
Najwyraźniej Ubuntu (12) ma teraz włączoną funkcję PAE jako domyślną. Tak więc zarówno host (32-bitowy), jak i VM (64-bitowy) powinny go zobaczyć. Jednak PAE w 64-bitowej maszynie wirtualnej nie ma sensu. Ale 8 GB jest dostępne dla wirtualnej skrzynki. Muszę to przemyśleć. (Zauważ, że uaktualnienie hosta do 64-bitowego nadal powinno rozwiązać ten problem i doda inne funkcje, takie jak zezwolenie na użycie większej liczby rejestrów w CPU. Nadal uważam, że jest to „właściwy” sposób na jego rozwiązanie, ale teraz to, o co pytał OP .)
Hennes
PAE ma sens w 64-bitowej maszynie wirtualnej, ponieważ bez włączonego PAE nie można używać NX, którego 64-bitowe systemy operacyjne zdecydowanie używają.
David Schwartz
0

To tylko błąd w kodzie VirtualBox. Zakłada, że ​​32-bitowy host nie może wykorzystać więcej niż 4 GB pamięci RAM ignorując technologię PAE.

Można go prześcignąć przez łatanie VBoxSVC.exe w sposób opisany tutaj https://deadfishsw.wordpress.com/2016/07/30/virtualbox-32bit-host-64bit-guest-surpassing-the-3584mb-limit/

Możesz też tymczasowo naprawić ustawienie maszyny wirtualnej za pomocą VBoxManage modifyvm polecenie konsoli

ZAB
źródło