4GB 미만의 Debian 64비트 메모리

4GB 미만의 Debian 64비트 메모리

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

관련 정보