我正在使用 Ubuntu 11.10,并且想知道是否可以转储所有物理内存和交换,因为由于一些内核限制,dd
/dev/mem
即使作为超级用户,我也不能这样做。
是否有任何解决方法或选项可以允许dd
或/dev/mem
专用工具正确执行此操作?
答案1
使用微机
以前您可以简单地dd /dev/mem
返回,但是出于安全原因,现在不再这样做了(自内核 2.6 以来,IIRC)。
另一种方法是自己构建内核,并选择让 root 执行此操作(稍后将在手机上编辑名称),或者更好的方法是使用微机,一个内核模块,它创建一个/dev/fmem
非常容易转储的设备。
微机在 12.04 上对我来说效果很好。只需确保使用run.sh
tarball 中包含的文件来加载模块即可;不要使用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