Como posso despejar toda a memória física em um arquivo?

10

Estou usando o Ubuntu 11.10 e desejo simplesmente saber se posso despejar toda a memória física e trocar, pois devido a algumas restrições do kernel, não posso dd /dev/mem, mesmo como superusuário.

Existe alguma solução alternativa ou opção para permitir que dd'ing /dev/memou uma ferramenta dedicada feito para fazer isso corretamente?

nanofarad
fonte
1
O wiki.ubuntu.com/Security/Features diz que o kmem está desativado e /dev/memrestrito.
Ciro Santilli escreveu:

Respostas:

7

Use fmem

Você costumava simplesmente dd /dev/memvoltar no dia, mas não por mais motivos de segurança (desde o kernel 2.6, IIRC).

A alternativa é construir o kernel você mesmo com a opção de deixar o root fazer isso (será editado com o nome mais tarde, agora no telefone) OU melhor, use o fmem , um módulo do kernel que cria um /dev/fmemdispositivo praticamente destinado a descarte fácil.


O fmem funciona muito bem para mim em 12.04. Apenas certifique-se de usar o run.sharquivo incluído no tarball para carregar o módulo; não use insmod:

$ ./run.sh
...
---- Áreas de memória: -----
reg00: base = 0x000000000 (0MB), tamanho = 1024MB, contagem = 1: write-back
reg01: base = 0x0c8800000 (3208MB), tamanho = 2MB, contagem = 1: combinação de gravação
-----------------------
!!! Não se esqueça de adicionar "count =" ao dd !!!


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


$ sudo dd se = / dev / fmem de = / tmp / fmem_dump.dd bs = contagem de 1 MB = 10
10 + 0 registros em
10 + 0 registros lançados
10000000 bytes (10 MB) copiados, 0,0331212 s, 302 MB / s
ish
fonte
Funciona como um encanto. Preciso executar o make novamente se eu reiniciar?
Nano
Não, somente quando você alterar kernels :)
ish