GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Virtuelle Maschine mit CentOS 5 32-Bit-Betriebssystem adressiert keinen physischen Speicher von mehr als 3 GB

Kürzlich sind wir auf ein sehr seltsames Problem gestoßen, bei dem eine virtuelle Linux-Maschine mit Centos 5.X 32-Bit-Betriebssystem konnte nicht mehr als 3 GB RAM erkennen. Nach einiger Recherche konnten wir folgende Fakten finden.


Standardmäßig wird das 32-Bit-Betriebssystem Centos 5.5 mit Linux 2.4.x geliefert Kernel, der mehr als 4 GB physischen Speicher unterstützt. Ein typischer 32-Bit-Linux-Kernel verwendet 1 GB physischen Speicher für seine eigene Verwendung als Kernel Space und der Rest des physischen Speichers wird als User Space verwendet . Wenn Sie sich also auf einem Centos 5.X 32-Bit-Betriebssystem ohne PAE-Unterstützung befinden, beträgt die Aufteilung des Benutzerspeicherplatzes und des Kernelspeicherplatzes etwa 3 GB/1 GB. Das heißt, wenn Sie Ihrem Computer mehr als 3 GB physischen Speicher hinzufügen, würde Ihr Computer ihn nicht ansprechen. Dieses Problem kann durch Hinzufügen der PAE-Unterstützung im Kernel behoben werden.

Was ist Physical Address Extension (PAE)?

Physische Adresserweiterung (PAE) auch bekannt als Seitenadressenerweiterung , ist eine Speicherverwaltungsfunktion für die IE-32 (i386)-Architektur, die mit Pentium Pro-Prozessoren eingeführt wurde. Page Address Extension definiert eine dreistufige Seitentabellenhierarchie mit 64-Bit-Tabelleneinträgen anstelle von 32. Dies ermöglicht CPUs mit PAE den Zugriff auf einen physischen Adressraum von mehr als 4 GB. Die PAE-Erweiterung erlaubt maximal 64 GB physischen Speicher, den die CPU (kein Prozess) adressieren kann. Während PAE nicht in den Kernel kompiliert ist, kann das Betriebssystem maximal 4 GB RAM adressieren. Wenn Sie sich in einer ähnlichen Situation befinden und Kernel mit PAE-Unterstützung erhalten möchten. Führen Sie den folgenden Befehl vom Terminal aus.

yum install kernel-PAE


Sobald Kernel installiert ist, bearbeiten Sie grub.conf Datei (normalerweise unter /etc/grub.conf oder /boot/grub/grub.conf ) mit einem Editor Ihrer Wahl. Suchen Sie den Parameter timeout und setzen Sie es auf 10 oder mehr Sekunden, damit Sie mehr Zeit haben, den Kernel aus der Liste auszuwählen. Speichern Sie grub.conf Datei und starten Sie Ihren VPS neu.

Wenn Ihre VM nach dem Neustart gestartet wird, erhalten Sie eine Liste der derzeit auf Ihrem Computer installierten Kernel. Wählen Sie den Kernel aus, den Sie laden möchten (Kernel mit PAE-Unterstützung). Wenn Ihre VM erfolgreich mit einem von PAE unterstützten Kernel bootet, setzen Sie den neuen Kernel wie folgt auf den Standardwert.

Bearbeiten Sie grub.conf erneut Datei (sie würde wie folgt aussehen) unter Titel Parameter würden Sie eine Liste aller installierten Kernel sehen. Zählen Sie die Position des Kernels Ihrer Wahl und legen Sie seinen Wert im Parameter default fest . Speichern Sie die grub.conf Datei und starten Sie Ihre VM neu

default=3  // default holds the value of position of Kernel
timeout=10  
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Enterprise Linux ES (2.4.21-37.EL) // Kernel in 1st position 
root (hd0,0)
kernel /vmlinuz-2.4.21-37.EL ro root=/dev/hda3
initrd /initrd-2.4.21-37.EL.img
title Red Hat Enterprise Linux ES (2.4.21-32.0.1.EL) // Kernel in 2nd position 
root (hd0,0)
kernel /vmlinuz-2.4.21-32.0.1.EL ro root=/dev/hda3
initrd /initrd-2.4.21-32.0.1.EL.img
title Red Hat Enterprise Linux ES (2.4.21-27.0.4.EL) // Kernel in 3rd position 
root (hd0,0)
kernel /vmlinuz-2.4.21-27.0.4.EL ro root=/dev/hda3
initrd /initrd-2.4.21-27.0.4.EL.img
title Red Hat Enterprise Linux ES (2.4.21-27.0.2.EL) // Kernel in 4th position 
root (hd0,0)
kernel /vmlinuz-2.4.21-27.0.2.EL ro root=/dev/hda3
initrd /initrd-2.4.21-27.0.2.EL.img


Sobald Ihre VM nach dem Neustart gestartet wird, geben Sie free -m ein Befehl, um zu prüfen, ob der physische Speicher mehr als 3 GB adressiert oder nicht.


Linux
  1. So überprüfen Sie, ob ein Linux-System eine physische oder virtuelle Maschine ist

  2. Rm-Befehl im Bash-Skript funktioniert nicht mit Variablen?

  3. malloc gibt Arbeitsspeicher oder virtuellen Adressraum zurück

  4. Kann ich aus einer physischen Windows XP-Maschine eine virtuelle Maschine machen?

  5. Warum Centos immer noch nicht den neuesten Kernel verwendet

Verstehen der Unterstützung für virtuelle 52-Bit-Adressen im Arm64-Kernel

So greifen Sie mit dem SPICE-Client auf die virtuelle Maschine von Proxmox zu

So finden Sie die IP-Adresse einer virtuellen KVM-Maschine

Der Adressraum des 32-Bit-Prozesses unter 64-Bit-Linux

Behält realloc die Speicherausrichtung von posix_memalign bei?

Linux Centos mit dmesg-Zeitstempel