如何将所有物理内存转储到文件中?

我正在使用Ubuntu 11.10,并希望简单地知道我是否可以转储所有物理内存和交换,因为由于某些内核限制,我不能dd /dev/mem ,即使是超级用户。

是否有任何解决方法或选项允许dd’ing /dev/mem或专用工具正确执行此操作?

使用fmem

您曾经能够在当天简单地使用dd /dev/mem ,但不再出于安全原因(因为内核2.6,IIRC)。

另一种方法是自己构建内核,让root用户选择(稍后将在手机上编辑名称)或者更好,使用fmem ,一个创建/dev/fmem设备的内核模块非常容易倾倒。


fmem在12.04对我很有用。 只需确保使用tarball中包含的run.sh文件来加载模块; 不要使用insmod

 $ ./run.sh
 ...
 ----记忆区:-----
 reg00:base = 0x000000000(0MB),size = 1024MB,count = 1:回写
 reg01:base = 0x0c8800000(3208MB),size = 2MB,count = 1:write-combining
 -----------------------
 ! 别忘了给dd添加“count =”!!!


 $ ls / dev / f *
 / dev / fb0 / dev / fd0 / dev / fmem / dev / full / dev / fuse


 $ sudo dd if = / dev / fmem of = / tmp / fmem_dump.dd bs = 1MB count = 10
 10 + 0记录
 10 + 0记录了
复制10000000字节(10 MB),0.0331212 s,302 MB / s

你可能无法在现代内核中记住你的记忆因为他们一直在减少直接访问,这主要用于狡猾的事情 。 取证维基链接了一些可能感兴趣的工具 ,但在过去的几年中没有任何真正的更新。 LiME似乎已更新,但我还没有测试过。