Ubuntu 18.04 上的内存转储因 /proc/kcore/ 太大而失败

Ubuntu 18.04 上的内存转储因 /proc/kcore/ 太大而失败

有两篇关于如何使用 linpmem 在 Linux 上获取内存的很棒的文章:

SANS holdmybeersecurity

尝试以下方法holdmybeersecurity我遇到了以下问题,这似乎是一个更普遍的问题:

wget https://github.com/google/rekall/releases/download/v1.5.1/linpmem-2.1.post4 chmod +x linpmem-2.1.post4 ./linpmem-2.1.post4 -o mem.aff4r

正在直接运行并创建一个大文件(停止时大于 160GB)。linpmem仔细检查后发现它依赖于 Linux 内存映射/proc/kcore来获取数据。

sudo ls -lh /proc/kcore -r-------- 1 root root 128T Dec 12 11:32 /proc/kcore

这太重要了!如前所述这里...

.../proc/kcore是内核的 RAM 虚拟分配。在 64 位系统上,该大小的绝对限制为 128T,因为这是系统可以分配的最大容量。

这有点违背man proc

   /proc/kcore
          This file represents the physical memory of the system and  is  stored  in  the  ELF  core  file  format.   With  this  pseudo-file,  and  an  unstripped  kernel
          (/usr/src/linux/vmlinux) binary, GDB can be used to examine the current state of any kernel data structures.

          The total length of the file is the size of physical memory (RAM) plus 4 KiB.

所以最大的问题是:如何仅获取内存/交换,而不获取 HDD 内容?

相关内容