GNU/Linux >> Linux Esercitazione >  >> Linux

La macchina virtuale con sistema operativo CentOS 5 a 32 bit non indirizza la memoria fisica superiore a 3 GB

Di recente ci siamo imbattuti in un problema molto strano in cui la macchina virtuale Linux con Sistema operativo Centos 5.X a 32 bit non è stato in grado di riconoscere più di 3 GB di RAM. Dopo alcune ricerche potremmo trovare i seguenti fatti.


Per impostazione predefinita, il sistema operativo Centos 5.5 a 32 bit viene fornito con Linux 2.4.x Kernel che supporta più di 4 GB di memoria fisica. Un tipico kernel Linux a 32 bit utilizza 1 GB di memoria fisica per uso personale come Spazio kernel e il resto della memoria fisica verrà utilizzato come Spazio utente . Quindi, mentre sei su una macchina con sistema operativo Centos 5.X a 32 bit senza supporto PAE, lo spazio utente e la divisione dello spazio del kernel sarebbero come 3 GB/1 GB. Ciò significa che, se aggiungi memoria fisica superiore a 3 GB nella tua macchina, la tua macchina non lo risolse. Questo problema può essere risolto aggiungendo il supporto PAE nel kernel.

Che cos'è l'estensione dell'indirizzo fisico (PAE)?

Estensione indirizzo fisico (PAE) noto anche come Estensione indirizzo di pagina , è una funzionalità di gestione della memoria per l'architettura IE-32 (i386) introdotta con i processori Pentium Pro. Page Address Extension definisce una gerarchia di tabelle di pagine a tre livelli con voci di tabella a 64 bit anziché 32. Ciò consente alle CPU con PAE di accedere a uno spazio di indirizzi fisico maggiore di 4 GB. L'estensione PAE consente un massimo di 64 GB di memoria fisica che la CPU (non un processo) può indirizzare. Sebbene PAE non sia compilato nel kernel, il sistema operativo può indirizzare un massimo di 4 GB di RAM. Se ti trovi in ​​una situazione simile e desideri ottenere il kernel con supporto PAE. Esegui il seguente comando dal terminale.

yum install kernel-PAE


Una volta installato il kernel, modifica grub.conf file (di solito situato in /etc/grub.conf o /boot/grub/grub.conf ) con un editor a tua scelta. Individua il parametro timeout e impostalo su 10 o più secondi, in modo da avere più tempo per selezionare il kernel dall'elenco. Salva grub.conf file e riavvia il tuo VPS.

Quando la tua VM si avvia dopo il riavvio, otterrai un elenco di kernel attualmente installati nella tua macchina. Seleziona il kernel che desideri caricare (kernel con supporto PAE). Se la tua VM si avvia correttamente con il kernel supportato da PAE, imposta il nuovo kernel come predefinito come segue.

Modifica di nuovo grub.conf file (sarebbe come il seguente), sotto titolo parametro vedresti l'elenco di tutti i kernel installati. Conta la posizione del kernel di tua scelta e imposta il suo valore nel parametro predefinito . Salva il grub.conf file e riavvia la tua VM

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


Quando la tua VM si accende dopo il riavvio, attiva free -m comando per verificare se indirizza o meno la memoria fisica a più di 3 GB.


Linux
  1. Come verificare se un sistema Linux è una macchina fisica o virtuale

  2. Comandi Linux:esplorare la memoria virtuale con vmstat

  3. Linux:perché Linux mostra sia più che meno memoria di quella che ho installato fisicamente?

  4. Il comando Rm nello script Bash non funziona con la variabile?

  5. Linux:cosa implica il layout della memoria del kernel virtuale in Dmesg?

Comprensione del supporto degli indirizzi virtuali a 52 bit nel kernel Arm64

Come accedere alla macchina virtuale Proxmox con il client SPICE

Come trovare l'indirizzo IP di una macchina virtuale KVM

Posso creare una macchina virtuale da una macchina fisica Windows XP?

Come fa la CPU a sapere quale indirizzo fisico è mappato a quale indirizzo virtuale?

Perché il mio nome host appare con l'indirizzo 127.0.1.1 anziché 127.0.0.1 in /etc/hosts?