Dopo aver avviato VirtualBox, il computer è diventato lento e si è bloccato completamente a causa di OOM. Di solito, OOM dovrebbe iniziare a uccidere i processi per liberare spazio, ma ciò non è accaduto (questa era la seconda volta che l'ho sperimentato).
Avevo un lavoro importante non salvato in un editor di testo, quindi speravo di ritrovarlo nella RAM del sistema dopo aver ucciso tutti i processi nella console corrente usando SysRq+ K. La macchina in questione è un laptop con 8 GB di RAM con Linux x86_64 3.7.5 con un SSD come disco di destinazione.
Il mio primo tentativo è stato dd if=/dev/mem of=memory
, ma questo non è riuscito dopo aver letto 1 MiB di dati. Successivamente, ho provato dd if=/dev/fmem of=memory bs=1M
, ma questo si è fermato dopo aver letto 3010461696 byte (esattamente 2871 MiB). Dopo aver guardato /proc/mtrr
(vedi sotto), ho deciso di provare ad aggiungere skip=4096
. Questo alla fine ha rallentato, leggendo a una velocità di soli 3 MiB / sec, quindi l'ho interrotto (producendo un file di 5,8 GiB). (almeno gli ultimi 100 MiB del file contengono FF
s)
reg01: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back
reg02: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg03: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back
reg04: base=0x200000000 ( 8192MB), size= 1024MB, count=1: write-back
reg05: base=0x23c000000 ( 9152MB), size= 64MB, count=1: uncachable
reg06: base=0x0b4000000 ( 2880MB), size= 64MB, count=1: uncachable
reg07: base=0x0b8000000 ( 2944MB), size= 128MB, count=1: uncachable
Non sono riuscito a trovare i dati che avevo aperto per alcune ore nell'editor di testo, quindi credo di aver saltato un po 'di memoria mentre eseguivo un dump. Quindi, dato il mio obiettivo (recupero dei dati dai programmi di userspace), qual è il metodo più efficiente per scaricare la memoria di sistema in un file? Quali sono alcuni punti che devono essere considerati mentre si fa una tale discarica?
CONFIG_DEVKMEM
è disabilitato, guardando nel codice sorgente sembra consentire l'accesso senza restrizioni, ma non sono ancora convinto che questo sia il modo migliore per farlo (accesso IO mem?)