web-dev-qa-db-fra.com

Comment vider toute la mémoire physique dans un fichier?

J'utilise Ubuntu 11.10 et je veux simplement savoir si je peux vider toute la mémoire physique et la permuter car, à cause de certaines restrictions du noyau, je ne peux pas dd/dev/mem, même en tant que superutilisateur.

Existe-t-il une solution de contournement ou une option permettant à dd 'ing /dev/mem ou un outil dédié permettant de le faire correctement?

10
hexafraction

Utilisez fmem

Auparavant, vous pouviez simplement dd /dev/mem revenir dans la journée, mais plus pour des raisons de sécurité (depuis le noyau 2.6, IIRC).

L’autre solution consiste à construire le noyau vous-même avec l’option permettant à root de le faire (le modifiera avec son nom plus tard, sur le téléphone maintenant) OR mieux, utilisez fmem , un module du noyau qui crée un périphérique /dev/fmem destiné à faciliter le dumping.


fmem me convient parfaitement le 12.04. Assurez-vous simplement que vous utilisez le fichier run.sh inclus dans l'archive pour charger le module. ne pas utiliser insmodname__:

 $ ./run.sh
...
----Surface mémoire: ----- 
 reg00: base = 0x000000000 (0MB), taille = 1024 Mo, nombre = 1: réécriture 
 reg01: base = 0x0c8800000 (3208 Mo), taille = 2 Mo, nombre = 1: combinaison en écriture 
 --------- -------------- 
 !!! N'oubliez pas d'ajouter "count =" à dd !!! 
 
 
 $ Ls /dev/f*
/dev/fb0/dev/fd0/dev/fmem/dev/full/dev/Fuse[.____. Printer.Fr.. .____.] 10 + 0 enregistrements dans 
 10 + 0 enregistrements 
 10000000 octets (10 Mo) copiés, 0.0331212 s, 302 Mo/s 
7
ish

Vous ne pouvez probablement pas dd votre mémoire dans la cause des noyaux modernes ils ont réduit l'accès direct, qui est principalement utilisé pour les choses louches . Le le wiki médico-légal relie quelques outils qui pourrait être intéressant, mais rien n’a vraiment été mis à jour ces dernières années. Lime semble mis à jour bien que je ne l'aie pas encore testé.

2
Journeyman Geek