AMD A10-5700 프로세서가 장착된 Win7 x64 호스트의 VirtualBox 4.3.10에서 실행되는 Debian wheezy(7.4) amd64 가상 머신이 있습니다. 가상 머신은 16GB의 메모리로 구성되어 있습니다(호스트에는 32GB의 물리적 RAM이 있으며 모두 올바르게 인식되는 것 같습니다). 다른 가상 머신은 실행되고 있지 않습니다. 그럼에도 불구하고 Debian VM에는 할당된 것보다 훨씬 적은 RAM이 표시됩니다.
$ uname -a
Linux debian3 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64 GNU/Linux
$ free
total used free shared buffers cached
Mem: 3610656 958788 2651868 0 181072 379744
-/+ buffers/cache: 397972 3212684
Swap: 3668988 0 3668988
$ dmesg | grep BIOS-e820
[ 0.000000] BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
[ 0.000000] BIOS-e820: 0000000000100000 - 00000000de9df000 (usable)
[ 0.000000] BIOS-e820: 00000000de9df000 - 00000000de9ec000 (reserved)
[ 0.000000] BIOS-e820: 00000000de9ec000 - 00000000dfb6c000 (usable)
[ 0.000000] BIOS-e820: 00000000dfb6c000 - 00000000dfbc4000 (reserved)
[ 0.000000] BIOS-e820: 00000000dfbc4000 - 00000000dfbcc000 (ACPI data)
[ 0.000000] BIOS-e820: 00000000dfbcc000 - 00000000dfbd0000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000dfbd0000 - 00000000dffd0000 (usable)
[ 0.000000] BIOS-e820: 00000000dffd0000 - 00000000dfff0000 (reserved)
이 가상 머신에서 EFI를 사용하도록 VirtualBox를 설정했으므로 관련이 있을 수 있는 몇 가지 메시지는 다음과 같습니다.
$ dmesg | grep EFI
[ 0.000000] EFI v2.31 by EDK II
[ 0.000000] Kernel-defined memdesc doesn't match the one from EFI!
[ 0.000000] EFI: mem00: type=7, attr=0xf, range=[0x0000000000000000-0x00000000000a0000) (0MB)
[ 0.000000] EFI: mem01: type=2, attr=0xf, range=[0x0000000000100000-0x00000000003b1000) (2MB)
[ 0.000000] EFI: mem02: type=7, attr=0xf, range=[0x00000000003b1000-0x0000000002000000) (28MB)
[ 0.000000] EFI: mem03: type=4, attr=0xf, range=[0x0000000002000000-0x0000000002600000) (6MB)
[ 0.000000] EFI: mem04: type=7, attr=0xf, range=[0x0000000002600000-0x0000000036bf8000) (837MB)
[ 0.000000] EFI: mem05: type=2, attr=0xf, range=[0x0000000036bf8000-0x00000000375f4000) (9MB)
[ 0.000000] EFI: mem06: type=7, attr=0xf, range=[0x00000000375f4000-0x00000000a49a4000) (1747MB)
[ 0.000000] EFI: mem07: type=2, attr=0xf, range=[0x00000000a49a4000-0x00000000dc000000) (886MB)
[ 0.000000] EFI: mem08: type=4, attr=0xf, range=[0x00000000dc000000-0x00000000dc020000) (0MB)
[ 0.000000] EFI: mem09: type=7, attr=0xf, range=[0x00000000dc020000-0x00000000dddc3000) (29MB)
[ 0.000000] EFI: mem10: type=4, attr=0xf, range=[0x00000000dddc3000-0x00000000de1a6000) (3MB)
[ 0.000000] EFI: mem11: type=7, attr=0xf, range=[0x00000000de1a6000-0x00000000de440000) (2MB)
[ 0.000000] EFI: mem12: type=1, attr=0xf, range=[0x00000000de440000-0x00000000de45d000) (0MB)
[ 0.000000] EFI: mem13: type=4, attr=0xf, range=[0x00000000de45d000-0x00000000de9df000) (5MB)
[ 0.000000] EFI: mem14: type=5, attr=0x800000000000000f, range=[0x00000000de9df000-0x00000000de9ec000) (0MB)
[ 0.000000] EFI: mem15: type=4, attr=0xf, range=[0x00000000de9ec000-0x00000000deaec000) (1MB)
[ 0.000000] EFI: mem16: type=7, attr=0xf, range=[0x00000000deaec000-0x00000000deb1f000) (0MB)
[ 0.000000] EFI: mem17: type=2, attr=0xf, range=[0x00000000deb1f000-0x00000000deb25000) (0MB)
[ 0.000000] EFI: mem18: type=4, attr=0xf, range=[0x00000000deb25000-0x00000000df9ec000) (14MB)
[ 0.000000] EFI: mem19: type=7, attr=0xf, range=[0x00000000df9ec000-0x00000000df9ef000) (0MB)
[ 0.000000] EFI: mem20: type=3, attr=0xf, range=[0x00000000df9ef000-0x00000000dfb6c000) (1MB)
[ 0.000000] EFI: mem21: type=5, attr=0x800000000000000f, range=[0x00000000dfb6c000-0x00000000dfb9c000) (0MB)
[ 0.000000] EFI: mem22: type=6, attr=0x800000000000000f, range=[0x00000000dfb9c000-0x00000000dfbc0000) (0MB)
[ 0.000000] EFI: mem23: type=0, attr=0xf, range=[0x00000000dfbc0000-0x00000000dfbc4000) (0MB)
[ 0.000000] EFI: mem24: type=9, attr=0xf, range=[0x00000000dfbc4000-0x00000000dfbcc000) (0MB)
[ 0.000000] EFI: mem25: type=10, attr=0xf, range=[0x00000000dfbcc000-0x00000000dfbd0000) (0MB)
[ 0.000000] EFI: mem26: type=4, attr=0xf, range=[0x00000000dfbd0000-0x00000000dffd0000) (4MB)
[ 0.000000] EFI: mem27: type=6, attr=0x800000000000000f, range=[0x00000000dffd0000-0x00000000dfff0000) (0MB)
[ 1.204229] fb0: EFI VGA frame buffer device
[ 6.734371] EFI Variables Facility v0.08 2004-May-17
여기에 있어서는 안 될 것으로 확신하는 또 다른 메시지(iommu 관련)가 있습니다.
$ dmesg | grep Calgary
[ 0.000000] Calgary: detecting Calgary via BIOS EBDA area
[ 0.000000] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
부트로더는 입니다 grub-efi-amd64
. 위의 모든 출력은 다음 구성으로 부팅한 결과입니다 /boot/grub/grub.cfg
.
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64' --class debian --class gnu-linux --class gnu --class os {
load_video
insmod gzio
insmod part_gpt
insmod ext2
set root='(hd0,gpt2)'
search --no-floppy --fs-uuid --set=root 7d58d543-5c40-4e8d-bbfa-f3773dc7ca15
echo 'Loading Linux 3.2.0-4-amd64 ...'
linux /boot/vmlinuz-3.2.0-4-amd64 root=UUID=7d58d543-5c40-4e8d-bbfa-f3773dc7ca15 ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.2.0-4-amd64
}
답을 찾기 위해 커널 소스 코드와 문서, VirtualBox 문서 등 다양한 부분을 살펴보았습니다. mem=16G
, iommu=soft
, swiotlb=force
, allowdac
, 추가 및 제거의 다양한 조합을 시도했지만 실제로 작동하는 것은 없습니다 noefi
. add_efi_memmap
예상한 대로 이 iommu=soft
매개변수는 "Calgary" 관련 메시지를 제거하지만 보고된 메모리에는 영향을 미치지 않습니다. 재미삼아 구성 메모리를 8GB로 줄여보았지만 역시 눈에 띄는 효과는 없었습니다. 중요한 경우에는 스톡 커널을 실행하고 있습니다.
또 무엇이 효과가 있을까요?
편집하다:
출력은 다음과 같습니다 dmidecode
.
# dmidecode 2.11
# SMBIOS entry point at 0xdfbce000
SMBIOS 2.5 present.
10 structures occupying 449 bytes.
Table at 0xDFBCE020.
Handle 0x0000, DMI type 0, 20 bytes
BIOS Information
Vendor: innotek GmbH
Version: VirtualBox
Release Date: 12/01/2006
Address: 0xE0000
Runtime Size: 128 kB
ROM Size: 128 kB
Characteristics:
ISA is supported
PCI is supported
Boot from CD is supported
Selectable boot is supported
8042 keyboard services are supported (int 9h)
CGA/mono video services are supported (int 10h)
ACPI is supported
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: innotek GmbH
Product Name: VirtualBox
Version: 1.2
Serial Number: 0
UUID: 0B1BEC54-20D1-4809-A92D-22EE66339AA8
Wake-up Type: Power Switch
SKU Number: Not Specified
Family: Virtual Machine
Handle 0x0008, DMI type 2, 15 bytes
Base Board Information
Manufacturer: Oracle Corporation
Product Name: VirtualBox
Version: 1.2
Serial Number: 0
Asset Tag: Not Specified
Features:
Board is a hosting board
Location In Chassis: Not Specified
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
Handle 0x0003, DMI type 3, 13 bytes
Chassis Information
Manufacturer: Oracle Corporation
Type: Other
Lock: Not Present
Version: Not Specified
Serial Number: Not Specified
Asset Tag: Not Specified
Boot-up State: Safe
Power Supply State: Safe
Thermal State: Safe
Security Status: None
Handle 0x0007, DMI type 126, 42 bytes
Inactive
Handle 0x0005, DMI type 126, 15 bytes
Inactive
Handle 0x0006, DMI type 126, 28 bytes
Inactive
Handle 0x0002, DMI type 11, 7 bytes
OEM Strings
String 1: vboxVer_4.3.10
String 2: vboxRev_93012
Handle 0x0008, DMI type 128, 8 bytes
OEM-specific Type
Header and Data:
80 08 08 00 35 C7 31 00
Handle 0xFEFF, DMI type 127, 4 bytes
End Of Table