VirtualBox verwendet keinen "cached memory"

N

nighT

Hallo zusammen,

ich habe mal wieder ein Problem, bei dem ich nicht weiter komme.;(

Ich habe hier ein Debian Squeeze Server, auf dem ich VirtualBox installiert habe. Die Installation selbst verlief problemlos. Eine virtuelle Maschine habe ich anschließend über "VBoxManage" erstellt und testweise mit 512MB RAM konfiguriert.
Beim Starten der VM kommt nun allerdings folgender Fehler:
Code:
$ VBoxHeadless --startvm "Debian Test"
Oracle VM VirtualBox Headless Interface 4.2.6
(C) 2008-2012 Oracle Corporation
All rights reserved.


VRDE server is listening on port 3389.
Error: failed to start machine. Error message: Memory allocation failed. (VERR_NO_MEMORY)

In der entsprechenden Log-File steht dann unter anderem:
Code:
00:00:00.520139 Host RAM: 7878MB total, 70MB available

Soweit macht es auch Sinn: Es sind angeblich 70MB frei, 512MB braucht die VM, also kann sie nicht starten.
Allerdings zeigt ein "free" folgendes:
Code:
$ free -m
             total       used       free     shared    buffers     cached
Mem:          7878       7801         77          0        127       6998
-/+ buffers/cache:        675       7203
Swap:          497          0        497
Es sind also nur 77MB wirklich "frei", allerdings 6998MB gecached. Diese knapp 7GB sollten ja eigentlich zur Verfügung gestellt werden, sobald sie benötigt werden?!:think:

Warum beachtet VirtualBox also nur die wirklich freien 77MB? Kann ich testweise einen bestimmten Bereich des Rams leeren? :hilfe2:

Für Ideen wäre ich dankbar!

mfg nighT
 
Hallo nochmal,

nach langem hin und her und viel ausprobieren habe ich es nun geschafft! 8)

Der installierte Kernel (ist nicht der default Debian-Kernel) hat zusätzlich das grsec-Modul mit dabei.
Entsprechend werden spezielle Aufrufe (unter anderem mprotect()) erstmal verboten. Das Programm selbst wirft dabei immer irgend ein Fehler bezüglich RAM.

Um nun die benötigten executables die passenden Rechte zu geben muss man folgende Befehle auf diese anwenden:
Code:
paxctl -c <Datei>
paxctl -m <Datei>
Dadurch wird zuerst ein neuer Dateiheader (PT_PAX_FLAGS) hinzugefügt und anschließend die Rechte für "mprotect()" gesetzt. :rtfm:

Nun funktioniert alles wie gewünscht!
 

Ähnliche Themen

Hilfe bei Interpretation des RAM-Speicherverbrauchs

Rollei Mini Wifi Camcorder

Festplatte stirbt, dd funktioniert nicht

OpenSuse 12.3 / Tiefschlaf funktioniert nicht

VMware Ram Zuteilungsproblem

Zurück
Oben