我很想将物理 RAM 的内容转储到我的 Ubuntu 机器上的平面文件中,但是使用 dd 我得到的只是一个 1MB 的文件(这很奇怪,因为我有 4GB 的 RAM!)。
我使用的命令是dd if=/dev/mem of=/usr/dd.mem
。我也尝试使用 /dev/kmem 作为输入文件,但出现文件未找到错误(是的,该文件位于 /dev 目录中)
我知道在 Windows 中您可以使用 \.\PhysicalMemory\ 参数作为输入文件。
有人知道我如何在 Linux 中做到这一点吗?
答案1
这是一个特点。
Ubuntu 发行时带有内核选项CONFIG_STRICT_DEVMEM
。这限制了 1Mb 以上物理内存的读取。您应该在 中找到确认该限制的/dev/mem
相应条目。/var/log/messages
有几个选项可以继续。但可能最简单、最明显的就是重新编译你的内核而不使用CONFIG_STRICT_DEVMEM
。
答案2
您的机器上已启用 CONFIG_STRICT_DEVMEM,您可能会收到“操作不允许错误”(题外话:在运行命令时,复制并粘贴命令的输出是值得的,而不是仅仅描述发生了什么!)。这是一个内核参数,通常不能通过 sysctl 进行调整(尽管有补丁允许这样做)。关闭它需要重建内核。
看http://www.mail-archive.com/[电子邮件保护]/msg01549.html以获取关于如何访问内存的更多信息和解决方案。