A cópia do arquivo de troca completo está vazia

1

Eu uso um arquivo de troca (/ mnt / swap). A troca funciona corretamente. Preciso ter acesso aos dados armazenados. Quando estão cheios de dados em alguma parte (que posso ver digitando "grátis" no terminal), copio o arquivo para outro local e o abro no editor hexadecimal. A troca está cheia de "00" como se estivesse vazia (ou é realmente?). Não sou usuário avançado do Linux e provavelmente estou fazendo algo errado, mas tudo funciona quando faço o mesmo com / proc / kcore - posso ver os dados na cópia que foram armazenados no ram durante a cópia.

Além disso, posso tentar abrir meu arquivo de troca no editor hexadecimal quando a troca estiver funcionando (apenas para leitura)? Não é perigoso?

user49847
fonte
Por que você precisa acessar dados no arquivo de troca? Como você realmente não sabe quais blocos foram paginados, talvez todos os blocos cheios de zero tenham sido paginados (embora eu esteja surpreso por você não ver nenhum dado diferente de zero, como ponteiros de bloco ou outras estruturas de dados). Acessar o arquivo de troca somente leitura não deve ser um problema.
Johnny
Obrigado pela sua resposta! O navegador da Web que estou usando atualmente armazena o histórico de navegação não em arquivo, mas na memória RAM, estou procurando, então acho que devo procurar também no arquivo de troca, que está quase cheio de dados. Um pouco mais você pode ler aqui, este é exatamente o que eu quero acessar swap para: unix.stackexchange.com/questions/97421/...
user49847
Normalmente, apenas os blocos de memória usados ​​menos recentemente são paginados para o arquivo de troca - a menos que seu computador tenha muita memória, isso provavelmente não incluirá o histórico do navegador (que é acessado com bastante frequência pelo navegador) - seu arquivo de troca provavelmente contém blocos alocados por daemons de longa execução que não são lidos há muito tempo.
Johnny
Ok, mas existe alguma maneira de exocar a troca como eu faço com a RAM? Eu preciso verificar a troca também para ter certeza.
user49847
Claro, o arquivo de troca é apenas um arquivo normal, então você pode copiá-lo ou abri-lo e lê-lo exatamente como você descreveu. Tente executar "strings" nele para escanear rapidamente o arquivo inteiro para strings imprimíveis: sudo strings /mnt/swap- você simplesmente não pode ter certeza de onde vieram os blocos no arquivo de troca.
Johnny

Respostas:

0
swapoff -a
cp /proc/kcore backup

Não dependa dos dados que estão em troca ou não. Ou mesmo nesse swap em particular (você pode ter uma partição de swap com maior prioridade em outro lugar.) A maneira como o sistema decide o que está no swap e o que está na RAM é bastante não determinista do ponto de vista do usuário.

Simplesmente verifique se NÃO está no swap (desativando o swap) e, em seguida, procure na RAM.

SF.
fonte