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


10

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

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


Answers:


7

使用fmem

您过去曾经可以简单地dd /dev/mem回到过去,但出于安全原因(因为内核2.6,IIRC)而不再。

替代方法是使用可以让root用户执行此操作的选项自己构建内核(稍后将在名称上进行编辑,现在在电话上),或者更好的方法是使用fmem,这是一个内核模块,该模块创建的/dev/fmem设备非常易于转储。


fmem在12.04上对我非常有用。只要确保使用run.sh压缩包中包含的文件来加载模块即可;不要使用insmod

$ ./run.sh
...
----存储区域:-----
reg00:base = 0x000000000(0MB),size = 1024MB,count = 1:写回
reg01:base = 0x0c8800000(3208MB),size = 2MB,count = 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 s,302 MB / s

奇迹般有效。重新启动后是否需要再次运行make?
nanofarad 2012年

不,仅当您更改内核时:)
ish

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.