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

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

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

桑斯 保持我的啤酒安全

尝试从保持我的啤酒安全我遇到了以下问题,这似乎是一个更普遍的问题:

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.

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

相关内容