¿Cómo desactivo el intercambio?

83

Tengo algunos datos confidenciales en RAM que prefiero no estar en el disco. ¿Cómo deshabilito el intercambio? Tengo más de suficiente carnero. Si ram se eleva demasiado, no tengo problemas con los procesos que se terminan. ¿Cómo desactivo el intercambio?

Nota: No tengo una partición de intercambio y esto se está ejecutando en una VM (VMWare)


fuente
2
Incluso si tiene mucha RAM, no es la mejor idea trabajar completamente sin intercambio (consulte, por ejemplo, alexonlinux.com/swap-vs-no-swap ). Dependiendo de sus requisitos, puede considerar colocar la partición de intercambio en un dispositivo protegido con dm-crypt, de modo que todo lo escrito en él se cifre. En ese caso, debe asegurarse de que el intercambio esté habilitado después de que los volúmenes cifrados estén disponibles, y deshabilitado antes de que el mapeo del dispositivo esté deshabilitado, por supuesto (creo que eso es predeterminado en Ubuntu, pero no estoy seguro). Simplemente busque en la web "intercambio cifrado" para encontrar numerosas guías.
soulsource
1
A propósito : askubuntu.com/questions/248158/… No necesita intercambiar hasta que lo necesite. Y entonces realmente lo necesitas.
¿Qué pasa con un intercambio de cifrado? / dev / mapper / cryptswap1

Respuestas:

121

Utilizando

sudo swapoff -a  

es la forma habitual de desactivar el intercambio, con el swapon -acomando utilizado para volver a activarlo. Consulte man swapoff para obtener más información sobre cómo desactivar el intercambio para dispositivos explícitos.

ubfan1
fuente
77
¿Esto no parece persistir durante un reinicio?
ebyrob
19
Los cambios permanentes al intercambio generalmente se realizan en / etc / fstab.
ubfan1
¿Simplemente copiamos esto en / etc / fstab
Max
66
No. En su lugar, comenta la línea de intercambio en / etc / fstab.
Torsten Bronger
Puedes leer en otras respuestas cómo comentarlo.
Carolus
25

Puede deshabilitar el intercambio después de reiniciar simplemente comentando (agregue # delante de la línea) la entrada de intercambio en el /etc/fstabarchivo. Evitará que la partición de intercambio se monte automáticamente después de un reinicio. Para hacer esto en un solo comando:

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

o simplemente:

sudo sed -i '/ swap / s/^/#/' /etc/fstab

Ahora su entrada de intercambio /etc/fstabse verá similar a esto:

#UUID=xxxxxxxx-xxxx-xxxxx-xxx-xxxxxxxxxxx none            swap    sw              0       0

Con sus propios números específicos y letras minúsculas en lugar de las letras "x".

Avinash Raj
fuente
2
¿Por qué su UUID citado tiene algunos dígitos concretos? ¿Deberían ser idénticos para todos los UUID? Los UUID de mis particiones no coinciden con los dígitos especificados.
Ruslan
Sus comandos sed no funcionan en caso de que los campos estén separados por pestañas (no espacios). Está mejor escrito como sed -ri '/\sswap\s/s/^#?/#/' /etc/fstabPS: también agregué #?para evitar cambios adicionales en / etc / fstab cuando la línea ya está deshabilitada.
Alek_A
4

Si le preocupa el contenido del intercambio, siempre puede apagarlo como se especifica de la manera habitual sudo swapoff -ay luego llenar el dispositivo de intercambio con ceros o datos aleatorios usando dd.

Primero use el contenido de fstab para encontrar su swapfile o dispositivo ( less /etc/fstab)

Habiendo localizado y verificado doble y triplemente su ubicación, por ejemplo, en sda5 o /swapfile (las particiones de intercambio fueron reemplazadas por defecto con un archivo de intercambio en 17.04 y posteriores) .

En el caso de una partición o unidad de intercambio: (precedido por / dev) emita el comando "destructor de disco" (no debe usarse a la ligera)

sudo dd if=/dev/zero of=swapreemplazar el intercambio de palabras con el dispositivo de intercambio o el archivo en el que se encuentra/etc/fstab

para estallar lleno de ceros o

sudo dd if=/dev/random of=swapreemplazando nuevamente el intercambio de palabras con el dispositivo de intercambio o el archivo que localizó en/etc/fstab

para explotarlo lleno de datos aleatorios.

En el caso de un archivo de intercambio (precedido solo por una ruta): simplemente puede eliminar el archivo conrm /path/to/swapfile

La próxima vez que encienda el intercambio con

swapon -a

El sistema lo usará feliz nuevamente. Si tiene mucha RAM, es posible que no necesite cambiar nada. Emita el comando

free cuando el sistema está bajo una carga pesada y vea cuánto se usa para hacer esta determinación.

Si determina que no necesita un intercambio permanente (para hibernación o cualquier otra cosa), simplemente puede comentar esa línea en fstab como se sugiere aquí

gratis

Elder Geek
fuente
3

Puede ser una solución pobre, pero la usé a menudo. Puedes simplemente escribir

sudo -s
crontab -e

Y añadir

@reboot sudo swapoff -a  

Por lo tanto, se deshabilitará automáticamente en el arranque.

usuario10635
fuente
44
Espero que sea evidente que este es un método muy pobre. ¿Por qué crear una tarea de tiempo de arranque para desactivar otra opción, cuando hay otro archivo que puede ser editado para impedir que se enciende en el primer lugar
underscore_d
Quizás no sea tan estéticamente agradable, pero no tiene nada de malo. Si ya está acostumbrado a usar crontab, esta solución hará que los dedos se muevan un poco más fácilmente y tenga más sentido que simplemente copiar a ciegas lo que otro usuario en SE le dijo que hiciera en / etc / fstab. Y, aún así, recordará cómo hacerlo en una computadora nueva sin tener que ejecutar Google nuevamente. Resulta que apenas sé qué es crontab y de todos modos estoy mucho más familiarizado con las particiones de disco, pero la lógica sigue en pie.
Nicholas Pipitone
En realidad, esta podría ser la mejor solución. Porque las sugerencias / etc / fstab solo funcionan para particiones de intercambio. Esta solución se aplica a las configuraciones de Linux independientemente de si usan o no una partición o un archivo de intercambio.
Nicholas Pipitone
2
sudo swapoff -a

El comando anterior deshabilita el intercambio solo para una sesión actual , debe comentar la partición de intercambio en el archivo / etc / fstab . Para hacer esto solo necesita agregar "#" (línea de comentario) al comienzo de la línea de intercambio. Los pasos son como:

  1. Abra el archivo fstab, escriba sudo gedit /etc/fstabterminal.

El contenido del archivo se vería así:

proc            /proc           proc    nodev,noexec,nosuid 0       0
/host/ubuntu/disks/root.disk /               ext4    loop,errors=remount-ro 0       1
/host/ubuntu/disks/swap.disk none            swap    loop,sw         0       0
#/dev/sda10 /media/ASD  vfat    defaults    0   0
#/dev/sda1  /media/98   vfat    defaults    0   0
  1. Simplemente agregue hash (#) al comienzo de la línea de partición de intercambio, para que la línea se vea como:

#/host/ubuntu/disks/swap.disk none swap loop,sw 0 0

  1. Reinicia tu PC
Sohail xIN3N
fuente
0

Ir en el terminal y ejecutar este comando: gnome-disks. No está instalado en todas las distribuciones. Si es así, siga las instrucciones impresas para instalarlo e intente nuevamente. Busque un dispositivo con la palabra 'intercambiar' en el panel izquierdo. Por lo general, tiene el mismo tamaño que su memoria física. Haga clic en el botón cuadrado para deshabilitarlo. Autentique este cambio con su contraseña de root.

Captura de pantalla: http://imgur.com/Og6igqb

En la aplicación System Monitor (gnome-system-monitor), verá que informa el área de intercambio como 'no disponible'. El área de intercambio está deshabilitada pero no eliminada. Puede habilitarlo fácilmente nuevamente en el futuro. Eliminar el espacio de intercambio no ha causado ningún daño a mi sistema, pero creará más trabajo para usted si decide que quiere recuperarlo (hibernación) en el futuro.

editar: para evitar que se monte al inicio, debe ir a "Editar opciones de montaje ..." en gnome-disks y desmarcar "Montar al inicio".

usuario170544
fuente
1
¿Crees que esto responde a la preocupación de los usuarios sobre tener datos confidenciales en la partición de intercambio? ¿Puedes decirnos por qué?
Élder Geek
1
El punto principal del usuario era preguntar cómo deshabilitar el intercambio. Si tiene datos confidenciales, debería utilizar el cifrado previo al arranque idealmente.
user170544
1
Respetuosamente no estoy de acuerdo. Cuando leo la pregunta, la primera oración que encuentro es "Tengo algunos datos confidenciales en RAM que prefiero no tener en el disco". Creo que esta era su principal preocupación y por eso comenzó con ella. De todos modos, creo que he cubierto todos los aspectos de su pregunta en mi respuesta. Considéralo un ejemplo útil.
Élder Geek
0

Reemplace defaultscon sw,noautoen la línea que consiste en la entrada de intercambio en el archivo /etc/fstab:

/dev/mapper/centos-swap swap  swap    sw,noauto        0 0

(El camino /dev/mapper/centos-swapes probablemente diferente para ti).

Ahora revise la salida después de reiniciar, su intercambio nunca se monta:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3791         100        3408           8         282        3483
**Swap:             0           0           0**
askb
fuente