私の問題の原因は、メモリモジュールの障害と、カーネルバイナリの破損です。
今、基本的に新しいハードウェアでPCを起動しました。私は以前にDebian 6.0 AMD64を実行していましたが、変更はありません(文字通り、古いマザーボードからハードディスクを取り外し、新しいマザーボードに再接続しただけです)が、奇妙なことが見つかりました。
- 物理的に4 x 8 GBのRAMをインストールしました
- UEFI / BIOSセットアップが16383 MBのRAMを報告する
- Linux
free -m
は2985 MBのRAMを報告します
2985 MBは、魔法の3 GBマークに近すぎて、まったくの偶然ではありませんが、uname -r
出力され2.6.32-5-amd64
ます。明らかに64ビットカーネルです。これは、私が使用しているシステムドライブにこれまでインストールされたものです。新しいマザーボードはAsus M5A97 Proで、4 GBのDDR3スロットがあり、8 GBモジュールをサポートすると思われます。メモリモジュール自体は同一で、4個のCorsair XMS3 PC12800 8 GBを一緒に購入しました。
私はUEFIセットアップを詳細に検討していませんが、それを参照しましたが、大量のRAMを有効にするために変更する必要があると思われるものは何もありませんでした。
編集:私が本当に64ビットを実行していることのさらなる確認:
# file `which free`
/usr/bin/free: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
#
これはどうしたのですか、どうすればよいですか?
編集2:要求に応じて、dmesg、dmidecode、およびmeminfo。私は現在、システムに物理的にアクセスできません。そのため、今夜までいくつかのモジュールを引き出して、それが何をするかを確認する必要があります。(dmidecodeは3 x 8GBと1つの空のDIMMスロットを報告することに注意してください。また、カーネルからのMTRR不一致メッセージに注意してください。これにより、少なくともマザーボード自体が報告しているものと合わせて13 GBが失われます。)
# dmidecode --type memory
# dmidecode 2.9
SMBIOS 2.7 present.
Handle 0x0026, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 32 GB
Error Information Handle: Not Provided
Number Of Devices: 4
Handle 0x0028, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM0
Bank Locator: BANK0
Type: <OUT OF SPEC>
Type Detail: Synchronous
Speed: 1333 MHz (0.8 ns)
Manufacturer: Manufacturer0
Serial Number: SerNum0
Asset Tag: AssetTagNum0
Part Number: Array1_PartNumber0
Handle 0x002A, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM1
Bank Locator: BANK1
Type: <OUT OF SPEC>
Type Detail: Synchronous
Speed: 1333 MHz (0.8 ns)
Manufacturer: Manufacturer1
Serial Number: SerNum1
Asset Tag: AssetTagNum1
Part Number: Array1_PartNumber1
Handle 0x002C, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM2
Bank Locator: BANK2
Type: <OUT OF SPEC>
Type Detail: Synchronous
Speed: 1333 MHz (0.8 ns)
Manufacturer: Manufacturer2
Serial Number: SerNum2
Asset Tag: AssetTagNum2
Part Number: Array1_PartNumber2
Handle 0x002E, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: 64 bits
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: DIMM3
Bank Locator: BANK3
Type: Unknown
Type Detail: Synchronous
Speed: Unknown
Manufacturer: Manufacturer3
Serial Number: SerNum3
Asset Tag: AssetTagNum3
Part Number: Array1_PartNumber3
#
======================================================================
# cat /proc/meminfo
MemTotal: 3056820 kB
MemFree: 1470820 kB
Buffers: 390204 kB
Cached: 194660 kB
SwapCached: 0 kB
Active: 488024 kB
Inactive: 419096 kB
Active(anon): 231112 kB
Inactive(anon): 96660 kB
Active(file): 256912 kB
Inactive(file): 322436 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 8 kB
Writeback: 0 kB
AnonPages: 322320 kB
Mapped: 33012 kB
Shmem: 5472 kB
Slab: 613952 kB
SReclaimable: 597404 kB
SUnreclaim: 16548 kB
KernelStack: 2384 kB
PageTables: 19472 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1528408 kB
Committed_AS: 621464 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 294484 kB
VmallocChunk: 34359429080 kB
HardwareCorrupted: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 9216 kB
DirectMap2M: 2054144 kB
DirectMap1G: 1048576 kB
#
======================================================================
# dmesg | grep -i memory
[ 0.000000] WARNING: BIOS bug: CPU MTRRs don't cover all of memory, losing 13295MB of RAM.
[ 0.000000] WARNING: at /tmp/buildd/linux-2.6-2.6.32/debian/build/source_amd64_none/arch/x86/kernel/cpu/mtrr/cleanup.c:1092 mtrr_trim_uncached_memory+0x2e6/0x311()
[ 0.000000] [<ffffffff814f7f1e>] ? mtrr_trim_uncached_memory+0x2e6/0x311
[ 0.000000] [<ffffffff814f7f1e>] ? mtrr_trim_uncached_memory+0x2e6/0x311
[ 0.000000] [<ffffffff814f7f1e>] ? mtrr_trim_uncached_memory+0x2e6/0x311
[ 0.000000] initial memory mapped : 0 - 20000000
[ 0.000000] init_memory_mapping: 0000000000000000-00000000bdf00000
[ 0.000000] PM: Registered nosave memory: 000000000009d000 - 000000000009e000
[ 0.000000] PM: Registered nosave memory: 000000000009e000 - 00000000000a0000
[ 0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
[ 0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
[ 0.000000] PM: Registered nosave memory: 00000000bd94d000 - 00000000bd99c000
[ 0.000000] PM: Registered nosave memory: 00000000bd99c000 - 00000000bd9a6000
[ 0.000000] PM: Registered nosave memory: 00000000bd9a6000 - 00000000bdade000
[ 0.000000] PM: Registered nosave memory: 00000000bdade000 - 00000000bdaef000
[ 0.000000] PM: Registered nosave memory: 00000000bdaef000 - 00000000bdb02000
[ 0.000000] PM: Registered nosave memory: 00000000bdb02000 - 00000000bdb04000
[ 0.000000] PM: Registered nosave memory: 00000000bdb04000 - 00000000bdb0d000
[ 0.000000] PM: Registered nosave memory: 00000000bdb0d000 - 00000000bdb13000
[ 0.000000] PM: Registered nosave memory: 00000000bdb13000 - 00000000bdb75000
[ 0.000000] PM: Registered nosave memory: 00000000bdb75000 - 00000000bdd78000
[ 0.000000] Memory: 3046732k/3111936k available (3075k kernel code, 4728k absent, 60476k reserved, 1879k data, 584k init)
[ 1.636730] Freeing initrd memory: 9501k freed
[ 1.647370] Freeing unused kernel memory: 584k freed
[ 4.876602] [TTM] Zone kernel: Available graphics memory: 1528410 kiB.
[ 4.876615] [drm] radeon: 256M of VRAM memory ready
[ 4.876617] [drm] radeon: 512M of GTT memory ready.
[ 25.571018] VBoxDrv: dbg - g_abExecMemory=ffffffffa051d6c0
#
e820のGreppingは、一連の範囲を示しますe820 update range: 00000000bdf00000 - 000000043f000000 (usable) ==> (reserved)
。43f000000は16 GiB、bdf00000は3039 MiBです。それが偶然であるとは思いません。
# dmesg | grep -i e820
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009d800 (usable)
[ 0.000000] BIOS-e820: 000000000009d800 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 00000000bd94d000 (usable)
[ 0.000000] BIOS-e820: 00000000bd94d000 - 00000000bd99c000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bd99c000 - 00000000bd9a6000 (ACPI data)
[ 0.000000] BIOS-e820: 00000000bd9a6000 - 00000000bdade000 (reserved)
[ 0.000000] BIOS-e820: 00000000bdade000 - 00000000bdaef000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bdaef000 - 00000000bdb02000 (reserved)
[ 0.000000] BIOS-e820: 00000000bdb02000 - 00000000bdb04000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bdb04000 - 00000000bdb0d000 (reserved)
[ 0.000000] BIOS-e820: 00000000bdb0d000 - 00000000bdb13000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bdb13000 - 00000000bdb75000 (reserved)
[ 0.000000] BIOS-e820: 00000000bdb75000 - 00000000bdd78000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bdd78000 - 00000000bdf00000 (usable)
[ 0.000000] BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
[ 0.000000] BIOS-e820: 00000000fec10000 - 00000000fec11000 (reserved)
[ 0.000000] BIOS-e820: 00000000fec20000 - 00000000fec21000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed00000 - 00000000fed01000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed61000 - 00000000fed71000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed80000 - 00000000fed90000 (reserved)
[ 0.000000] BIOS-e820: 00000000fef00000 - 0000000100000000 (reserved)
[ 0.000000] BIOS-e820: 0000000100001000 - 000000043f000000 (usable)
[ 0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
[ 0.000000] e820 update range: 00000000bdf00000 - 000000043f000000 (usable) ==> (reserved)
[ 0.000000] update e820 for mtrr
#
編集3/4-部分的な成功:
- UEFI BIOSをバージョンからにアップグレードし
0705 x64 08/23/2011
ても効果1007 02/10/2012
がありませんでした。まったく同じ問題が残りました。 - 1つのDIMMモジュールを取り外すと(CPUから最も遠いスロットは#4だったと思います)、BIOSは残りの24 GBを検出して使用できましたが、3枚のDIMM構成は「推奨」されていません。ユーザーズマニュアルの図。特に、スロット#4に残りのDIMMの1つを装着しても、スロットを使用できるため、スロットは問題ありません。「元の」DIMMをそのスロットに取り付け直すと、最初のポイントに戻りました。
- Debian 6.0.3 AMD64インストールCDからレスキュー環境にブートし、その
dmesg
出力を確認しても、同様のMTRRエラーは表示されません。また、その環境では、3 x 8 GBがインストールされていると、24 GB(プラスまたはマイナスのイプシロンとpiまたはその前後。正確な計算は行いませんでした)は、に従って使用可能と表示されfree
ます。 - カーネルのアップグレード/再インストール(マイナーアップグレードが利用可能でした)によって、MTRRの問題も修正されたようです。
dmesg
現在、合計26198016 KBが報告され、MTRRエラーはありません。これは、3 x 8GBがインストールされている場合の予想と一致しています。free -m
現在、合計24114 MBのRAMが報告されていますが、これは率直に言って私には十分に近い値です。
これは、barfed DIMMのようなにおいがし、さらに、何らかの理由で損傷したカーネルを嗅ぎます。後者は停電中に発生した可能性があります(ただし、カーネルが壊れるのは奇妙な方法です!)。機能していないDIMMは、私が彼らと話すとすぐに(できれば明日)リセラーに戻ります。
(うまくいけば)最終編集
2ペアのDIMMの1つをRMAしたところ、販売店は損傷していると認め、新しいペアを送ってくれましたが、問題なく動作しているようです。つまり、基本的には1か月ほど前に当初予定していた場所にあります(ただし、その時間の大部分は実際にはリセラーによるものではありませんでした)。32GBのRAMが使用可能です。free -m
合計32194 MBのメモリを報告し、カーネルは34586624k
初期化時にRAMを報告します。どちらも私の期待に沿ったものです。
dmidecode --type memory
最初の100行程度を投稿してくださいdmesg
(メモリに関するものをすべて含めてください)。
WARNING: BIOS bug: CPU MTRRs don't cover all of memory, losing 13295MB of RAM.
さて、あなたの欠けている13Gがあります。