it-swarm-pt.tech

Posso hibernar o Linux sem uma partição swap?

Eu não havia configurado uma partição de swap no meu PC, porque a) tenho bastante RAM (8 GB) eb)) tenho discos rígidos grandes nos quais não queria entrar pedaços pequenos, então minhas partições menores são 50 GiB e eu já as estou usando para os sistemas operacionais.

Agora, para hibernar, meu Linux (Ubuntu Jaunty) exigia troca. Eu tinha uma partição sobressalente de 100 GB, então configurei isso como swap, mas não estou satisfeito com isso. Ele só é usado para hibernação (sempre há bastante RAM grátis e o sistema nunca é trocado) e também é um pouco grande para troca. Além disso, eu vou precisar disso para algo mais.

Como posso hibernar (suspender no disco) sem uma partição swap no Ubuntu Jaunty?

30
Hanno Fietz

Ideia não testada: por que você não cria um wrapper para s2disk ou qualquer utilitário que lida com a suspensão no disco, que gerencia um arquivo de troca (em oposição a uma partição de troca) e o exclui no currículo?

  • Crie o arquivo de troca: dd if=/dev/zero of=/swapfile bs=1024 count=8388608 (8 GB)
  • Configure o arquivo de troca: mkswap /swapfile
  • Somente quando você precisar definir a suspensão, poderá ativá-lo: swapon /swapfile
  • Quando você retomar, pode desativá-lo: swapoff /swapfile

É possível retomar a partir de arquivos de troca e é documentado em kernel.org

23
Robert Munteanu

Você provavelmente tem duas maneiras aqui,

  1. Considere um arquivo de troca em vez de uma partição de swap
    • Usando um pequeno dispositivo USB (em comparação com o tamanho das suas partições, mas grande o suficiente para memória) para partição swap

Faça o que fizer, acho que um swapoff e swapon após o currículo seriam úteis.
E, como você realmente não precisa da troca, você pode deixá-la swapoff após o resumo.

Atualização: O comentário faz um bom argumento sobre a hibernação lenta do USB.
Portanto, verifique na ordem numerada - o primeiro esquema possui notas para hibernação usando arquivos de troca.


Por curiosidade,
Gostaria de saber por que você deseja hibernar quando linuxes como o Ubuntu podem desligar e iniciar tão rápido.
Estou supondo,

  • você carrega sua RAM de 8GB com alguns aplicativos e os deixa lá
  • ou, você acorda na LAN

Mas isso é realmente verdade? ou você tem algum outro motivo para hibernar?

Eu uso um inicialização USB do Ubunt e sempre desligo.

9
nik

Sim, mas não sem algum esforço. Existem 2 maneiras diferentes de hibernar (suspender para o disco) no linux:

  1. swswap , incluído no kernel
  2. tuxonice (anteriormente suspend2), o que não é.

O Tuxonice está disponível como um patch para o kernel e permite gravar a imagem de suspensão em um arquivo comum.

De Wikipedia :

TuxOnIce (formerly known as Suspend2) is an implementation of the suspend-to-disk (or hibernate) feature which is available as patches for the 2.6 Linux kernel. It was formerly known as 'swsusp'. During the 2.5 kernel era, Pavel Machek forked the original out-of-tree version of swsusp (then at approximately beta 10) and got it merged into the Vanilla kernel, while development continued in the swsusp/Suspend2/TuxOnIce line. TuxOnIce includes support for SMP, highmem and preemption. Its major advantages over swsusp are:

    * It has an extensible architecture that allows for arbitrary transformations on the image and arbitrary backends for writing the image;
    * It prepares the image and allocates storage prior to doing any storage and accounts for memory and storage usage very carefully, thereby becoming more reliable;
    * Its current modules for writing the image have been designed for speed, combining asynchronous I/O, multithreading and readahead with LZF compression in its default configuration to read and write the image as fast as hardware is able;
    * It has an active community supporting it via a wiki, mailing lists and irc channel (see the TuxOnIce website);
    * It is more flexible and configurable (via a /sys/power/tuxonice interface);
    * Whereas the current swsusp (and uswsusp) implementations support writing the image to one swap device only, TuxOnIce supports multiple devices in any combination of swap files and swap partitions. It can also write the image to an ordinary file, thereby avoiding potential race issues in freeing memory when preparing to suspend.
    * It supports encryption by various methods;
    * It can store a full image of memory (resulting in a more responsive system post-resume), while uswsusp and swsusp write at most half the amount of RAM.

Como ele não está incluído no kernel padrão, você infelizmente precisará pegar os patches do kernel disponíveis para o Jaunty e compilar você mesmo o kernel.

Existem algumas instruções estendidas aqui , mas você pode tentar a sugestão de Robert antes de andar por esse caminho, a menos que você seja um veterano em rolar suas próprias imagens de kernel.

4
user4358

Como Joel e Jeff têm discutido no podcast , desativar o swap geralmente não é uma boa ideia - mesmo que valha a pena (o que não vale) - o espaço em disco é tão incrivelmente barato hoje em dia que deixá-lo ligado não custa nada. Você pode conseguir um show por menos de dez centavos (centavos de euro)!

citar:

Atwood: Eu acho que todo geek, em algum momento, passa por esse processo de pensamento: eu tenho toneladas e toneladas de memória, talvez eu possa virar meu arquivo de paginação. Na verdade, tenho uma entrada de blog sobre isso. ... O ponto principal é: nunca vale a pena.

Ouça o podcast para obter mais conversas (ele começa aproximadamente aos 59 minutos) ou leia a pergunta em serverfault vinculada à página do podcast (pergunta 23621). Eles falam sobre o arquivo de paginação do Windows, mas o argumento é igualmente válido para o UNIX (embora eles possam gerenciar a memória de uma maneira diferente).

3
0x89