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

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

我正在使用 Ubuntu 11.10,并且想知道是否可以转储所有物理内存和交换,因为由于一些内核限制,dd /dev/mem即使作为超级用户,我也不能这样做。

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

答案1

使用微机

以前您可以简单地dd /dev/mem返回,但是出于安全原因,现在不再这样做了(自内核 2.6 以来,IIRC)。

另一种方法是自己构建内核,并选择让 root 执行此操作(稍后将在手机上编辑名称),或者更好的方法是使用微机,一个内核模块,它创建一个/dev/fmem非常容易转储的设备。


微机在 12.04 上对我来说效果很好。只需确保使用run.shtarball 中包含的文件来加载模块即可;不要使用insmod

$./run.sh
...
----内存区域:-----
reg00:base=0x000000000(0MB),size=1024MB,count=1:写回
reg01:base=0x0c8800000(3208MB),大小=2MB,计数=1:写入合并
-----------------------
!!! 不要忘记在 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 秒,302 MB/s

相关内容