红联Linux门户
Linux帮助

Debian系统更新内核支持bigmem版本解决认不到4G内存

发布时间:2014-12-13 15:26:31来源:linux网站作者:viong

最近安装了Debian 6.0.1a i3却发现内核没有自动加载上PAE
以下命令得知系统装了两条2G的内存条,硬件最大支持64G内存


dmidecode -t memory
# dmidecode 2.9
SMBIOS 2.5 present.
 
Handle 0x1000, DMI type 16, 15 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 65280 MB
Error Information Handle: Not Provided
Number Of Devices: 8
 
Handle 0x1100, DMI type 17, 28 bytes
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: FB-DIMM
Set: 1
Locator: DIMM1
Bank Locator: Not Specified
Type: DDR2 FB-DIMM
Type Detail: Synchronous
Speed: 667 MHz (1.5 ns)
Manufacturer: 80CE808980CE
Serial Number: 501A024B
Asset Tag: 010908
Part Number: M395T5663QZ4-CE65
 
Handle 0x1101, DMI type 17, 28 bytes
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: FB-DIMM
Set: 1
Locator: DIMM2
Bank Locator: Not Specified
Type: DDR2 FB-DIMM
Type Detail: Synchronous
Speed: 667 MHz (1.5 ns)
Manufacturer: 80CE808980CE
Serial Number: 501A01C2
Asset Tag: 010908
Part Number: M395T5663QZ4-CE65

 
但是通过free命令得到只有3.3G

再去之前几台装了Debian 5.0.4 upd 查看free命令得到只有3G

对应的内核不一样,得到内存总数也不一样,针对这个问题只能安装个支持4G(bigmem)对应内核版本

由于要安装对应内核版本,所以先查看内核版本
root@debian:~/soft# uname -a
Linux debian 2.6.32-5-686 #1 SMP Tue Mar 8 21:36:00 UTC 2011 i686 GNU/Linux
2.6.32-5-686这个有32-31与32-35 请注意

 
为了能搜索更多安装包,先更新一下更新debian源
 
#Vi /etc/apt/sources.list
deb http://mirrors.163.com/debian lenny main non-free contrib
deb http://mirrors.163.com/debian lenny-proposed-updates main contrib non-free
deb http://mirrors.163.com/debian-security lenny/updates main contrib non-free
deb-src http://mirrors.163.com/debian lenny main non-free contrib
deb-src http://mirrors.163.com/debian lenny-proposed-updates main contrib non-free
deb-src http://mirrors.163.com/debian-security lenny/updates main contrib non-free

 
再执行以下几个命令
#apt-get update
#apt-get upgrade
#apt-get dist-upgrade
 
apt-cache search -t squeeze-backports linux-image

linux-headers-2.6.26-1-openvz-686 - Header files for Linux 2.6.26-1-openvz-686
linux-headers-2.6.26-1-vserver-686-bigmem - Header files for Linux 2.6.26-1-vserver-686-bigmem
linux-headers-2.6.26-1-vserver-686 - Header files for Linux 2.6.26-1-vserver-686
linux-headers-2.6.26-1-xen-686 - Header files for Linux 2.6.26-1-xen-686
linux-image-2.6.26-1-486 - Linux 2.6.26 image on x86
linux-image-2.6.26-1-686-bigmem - Linux 2.6.26 image on PPro/Celeron/PII/PIII/P4
linux-image-2.6.26-1-686 - Linux 2.6.26 image on PPro/Celeron/PII/PIII/P4
linux-image-2.6.26-1-amd64 - Linux 2.6.26 image on AMD64
linux-image-2.6.26-1-openvz-686 - Linux 2.6.26 image on PPro/Celeron/PII/PIII/P4, OpenVZ support
linux-image-2.6.26-1-vserver-686-bigmem - Linux 2.6.26 image on PPro/Celeron/PII/PIII/P4, Linux-VServer support
linux-image-2.6.26-1-vserver-686 - Linux 2.6.26 image on PPro/Celeron/PII/PIII/P4, Linux-VServer support
linux-image-2.6.26-1-xen-686 - Linux 2.6.26 image on i686, oldstyle Xen support
linux-image-2.6.32-5-686 - Linux 2.6.32 for modern PCs
linux-image-2.6.32-5-686-bigmem - Linux 2.6.32 for PCs with 4GB+ RAM
linux-image-2.6-686 - Linux 2.6 for modern PCs (meta-package)
 

一直搜索不到以下版本,挺蛋疼的
linux-image-2.6.32-5-686-bigmem_2.6.32-31_i386.deb
只找到这个版本 linux-image-2.6.32-5-686-bigmem_2.6.32-35_i386.deb
而这个版本,系统本身的linux-base (>= 2.6.32-35),所以无奈之下升级到linux-base_2.6.32-35,再安装linux-image-2.6.32-5-686-bigmem_2.6.32-35_i386.deb,之前为什么没想直接升级linux-base,因为升级这个会可能导致一些设备驱动无法兼容导致没加载成功

 
用root用户安装
wget http://ftp.cn.debian.org/debian/pool/main/l/linux-2.6/linux-base_2.6.32-35_all.deb
dpkg -i linux-base_2.6.32-35_all.deb
wget http://ftp.cn.debian.org/debian/pool/main/l/linux-2.6/linux-image-2.6.32-5-686-bigmem_2.6.32-35_i386.deb
dpkg -i linux-image-2.6.32-5-686-bigmem_2.6.32-35_i386.deb
 
或者aptitude install linux-image-2.6.32-5-686-bigmem


新内核加到开机启动菜单
root@debian:/etc# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-5-686-bigmem
Found initrd image: /boot/initrd.img-2.6.32-5-686-bigmem
Found linux image: /boot/vmlinuz-2.6.32-5-686
Found initrd image: /boot/initrd.img-2.6.32-5-686
done


最后重新启动系统

再次检查一下系统版本
root@debian:/etc# uname -a
Linux debian 2.6.32-5-686-bigmem #1 SMP Mon Jun 13 05:03:09 UTC 2011 i686 GNU/Linux
 
再查看
root@debian:/etc# free
 total       used       free     shared    buffers     cached
Mem:       4144028     132564    4011464 0       3696      81800
-/+ buffers/cache:      47068    4096960
Swap:      5840888 0    5840888

说明成功了。