¿Puedo hibernar Linux sin una partición de intercambio?

30

No había configurado una partición de intercambio en mi PC, porque a) tengo mucha RAM (8 GB) yb) tengo discos duros grandes que no quería cortar en pedazos pequeños, por lo que mis particiones más pequeñas son 50 GiB, y ya los estoy usando para el sistema operativo.

Ahora, para hibernar, mi Linux (Ubuntu Jaunty) requería intercambio. Tenía una partición de 100 GB de repuesto, así que lo configuré como intercambio, pero no estoy satisfecho con eso. Solo se usa para la hibernación (siempre hay mucha RAM libre y el sistema nunca se intercambia) y también es un poco grande para el intercambio. Además, eventualmente lo voy a necesitar para otra cosa.

¿Cómo puedo hibernar (suspender al disco) sin una partición de intercambio en Ubuntu Jaunty?

Hanno Fietz
fuente
3
Aquí una guía oficial de debian sobre hibernate sin intercambio: wiki.debian.org/Hibernation/Hibernate_Without_Swap_Partition
Francesco
A pesar de que tiene mucha RAM, el intercambio también puede ayudarlo a aumentar el rendimiento, cuando el espacio de código de aplicación no utilizado (y por lo tanto intercambiado) se utiliza para almacenar datos en caché.
Michael Schmid

Respuestas:

23

Idea no probada: ¿por qué no crea un contenedor s2disko cualquier utilidad que maneje la suspensión en el disco que administra un archivo de intercambio (en lugar de una partición de intercambio) y lo elimina en el currículum?

  • Cree el archivo de intercambio: dd if=/dev/zero of=/swapfile bs=1024 count=8388608(8GB)
  • Configure el archivo de intercambio: mkswap /swapfile
  • Solo cuando necesite configurar la suspensión puede activarla: swapon /swapfile
  • Cuando reanude, puede desactivarlo: swapoff /swapfile

Es posible reanudar desde archivos de intercambio, y está documentado en kernel.org

Robert Munteanu
fuente
También pensé en un archivo de intercambio, pero no sé cómo pasarlo al kernel al inicio. ¿Puedo hacer "resume = / path / to / file" como lo haría con el dispositivo de bloqueo?
Hanno Fietz
Vea mi actualización con un enlace a la documentación sobre cómo reanudar desde archivos de intercambio.
Robert Munteanu
8
Por favor, agregue el comando chmod 0600 /swapfile. Un archivo de intercambio de fácil lectura es una gran vulnerabilidad local.
user4035
2
Sé que esto es viejo, pero usaría 'truncar' en lugar de 'dd'. No es necesario escribir nada en el disco.
Guido
44
En realidad, necesitas escribir una secuencia de algo en el disco, creando el archivo con resultados truncados swapon: /swapfile: skipping - it appears to have holes..
hlovdal
9

Probablemente tengas dos maneras aquí,

  1. Considere un archivo de intercambio en lugar de una partición de intercambio
    • Usando una memoria USB pequeña (en comparación con los tamaños de sus particiones, pero lo suficientemente grande para la memoria) para la partición de intercambio

Haga lo que haga, creo que una swapoffy swapondespués la hoja de vida serían útiles.
Y, dado que realmente no necesita el intercambio, puede dejarlo swapoffdespués de reanudar.

Actualización: El comentario hace un buen punto sobre la lenta hibernación USB.
Por lo tanto, verifique en el orden numerado: el primer esquema tiene notas para la hibernación utilizando archivos de intercambio.


Por curiosidad,
me gustaría saber por qué quieres hibernar cuando linuxes como Ubuntu pueden apagarse y comenzar tan rápido.
Estoy adivinando,

  • carga su ram de 8GB con algunas aplicaciones y las deja allí
  • o, usted Wake-up-on-LAN

Pero, ¿es eso realmente? o, ¿tienes alguna otra razón para hibernar?

Yo uso un arranque USB Ubuntu y siempre apago.

nik
fuente
2
Suspender la memoria USB sería muy lenta .
Tadeusz A. Kadłubowski
66
Tiendo a abrir un montón de cosas durante el trabajo y me gusta tenerlo todo de vuelta como estaba al día siguiente. Ubuntu es rápido para iniciar (en realidad, para mí parece más rápido que reanudar), pero Eclipse, Firefox, etc. podrían no serlo, y otras aplicaciones podrían incluso no guardar su estado actual al cerrar.
Hanno Fietz
2
@Hanno, Firefox también le permite guardar sesiones hasta su posición de desplazamiento. Entonces, Save-and-Quite es genial. No estoy seguro de qué puede hacer Eclipse.
nik
3
Firefox no recuerda en qué espacio de trabajo tenía cada una de sus ventanas, por lo que está la pequeña PITA de tener que redistribuirlas de nuevo en su lugar, después de esperar a que se carguen todas. Tampoco hay forma de recuperar el estado de cosas como las ventanas de terminal.
intuido
Hibernar los 8GB completos de memoria llevaría menos de un minuto con esta memoria USB .
intuido
4

Sí, pero no sin algo de esfuerzo. Hay 2 formas diferentes de hibernar (suspender a disco) en Linux:

  1. swswap , que está incluido en el kernel
  2. tuxonice (anteriormente suspend2), que no lo es.

Tuxonice está disponible como un parche para el núcleo, y le permitirá escribir la imagen suspendida en un archivo ordinario.

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.

Dado que no está incluido en el núcleo predeterminado, desafortunadamente tendrá que recoger los parches del núcleo disponibles para Jaunty y compilar el núcleo usted mismo.

Hay algunas instrucciones detalladas aquí , pero es posible que desee probar la sugerencia de Robert antes de pasear por este camino, a menos que usted es un veterano en rodar sus propias imágenes del núcleo.

nagul
fuente
2
Bueno, he manejado varios núcleos (he sido un entusiasta de Gentoo durante algunos años), pero había una razón por la que me cambié a Ubuntu ...;)
Hanno Fietz
3

Como Joel y Jeff han discutido en el podcast , desactivar el intercambio generalmente no es una buena idea, incluso si valdría la pena (que no lo es), el espacio en disco es tan increíblemente barato hoy en día que dejarlo encendido no le cuesta cualquier cosa. ¡Puedes conseguir un concierto por menos de diez centavos (centavo euro, eso es)!

citar:

Atwood: Creo que cada geek en algún momento pasa por este proceso de pensamiento: tengo toneladas y toneladas de memoria, tal vez pueda pasar el archivo de mi página. De hecho, tengo una entrada de blog sobre esto. ... La frase clave es: nunca vale la pena.

Escuche el podcast para obtener más información sobre la conversación (comienza aproximadamente en el minuto 59) o lea la pregunta en serverfault vinculada en la página del podcast (pregunta 23621). Hablan sobre el archivo de página de Windows, pero el argumento es igualmente válido para UNIX (aunque pueden administrar la memoria de una manera diferente).

0x89
fuente
1
Bueno, no me importa tener activado, de hecho, mi configuración actual solo usa esa partición de 100 gigas de repuesto como intercambio. Sin embargo, lo que sí me importa es tener una partición de intercambio . El intercambio de 100 conciertos no tiene sentido, y no quiero tener una pequeña partición solo para el intercambio. Swapfile es excelente para mí, gracias a las respuestas de Robert y Nik, ahora también sé cómo usarlos para la hibernación, así que lo usaré.
Hanno Fietz
44
¿Cuál es el problema con tener una partición "pequeña"? Por cierto. No consideraría una partición de 8GB como algo minúsculo: he usado instalaciones de Linux durante años que vivían en una partición que era más pequeña que eso. Y la primera PC que utilicé tenía un disco duro de 20 MB ..
0x89
1
En realidad, Linux gestiona la memoria de manera completamente diferente a Windows. Incluso en mi vieja computadora portátil con 2 GB de intercambio de memoria RAM apenas se usa, 200 MB descargados es el valor máximo que vi
vava
@vava: Puede que tengas razón, adapté un poco mi respuesta. Pero el hecho de que viste 200MB descarga en su intercambio realmente apoya mi punto ..
0x89