Як відключити swap?


83

У мене в оперативній пам'яті є деякі чутливі дані, які я вважаю за краще не бути на диску. Як відключити своп? У мене більше, ніж достатньо барана. Якщо баран стає занадто високим, у мене немає проблем із припиненням процесів. Як відключити swap?

Примітка: у мене немає розділу swap, і він працює у VM (VMWare)

swap 

2
Навіть якщо у вас багато оперативної пам’яті, це не найкраща ідея повністю працювати без свопу (див., Наприклад, alexonlinux.com/swap-vs-no-swap ). Залежно від ваших вимог, ви можете розмістити розділ swap на захищеному пристроєм dm-crypt, щоб все, що написано на ньому, було зашифровано. У такому випадку ви повинні переконатися, що заміна ввімкнена після отримання зашифрованих томів і відключена до того, як відображення пристрою буде відключено, звичайно (я думаю, що це Ubuntu за замовчуванням, але я не впевнений). Просто пошукайте в Інтернеті "зашифрований своп", щоб знайти численні посібники.
soulsource

1
Apropos : askubuntu.com/questions/248158/… Вам не потрібен своп, поки не знадобиться. І тоді вам це справді потрібно.

Що з криптовалютою? / dev / mapper / cryptswap1

Відповіді:


121

Використання

sudo swapoff -a  

- це звичайний спосіб вимкнути swap, swapon -aкоманда використовується для його ввімкнення. Докладнішу man swapoff інформацію про вимкнення swap для явних пристроїв див.


7
Схоже, це не зберігається під час перезавантаження?
ebyrob

19
Постійні зміни до swap, як правило, вносяться в / etc / fstab.
ubfan1

Ми просто скопіюємо це в / etc / fstab
Max

6
Ні. Натомість ви коментуєте рядок swap у / etc / fstab.
Торстен Бронгер

Ви можете прочитати в інших відповідях, як це коментувати.
Каролюс

25

Ви можете відключити swap після перезавантаження, просто прокоментувавши (додати # перед рядком) запис swap у /etc/fstabфайлі. Це запобіжить автоматичному монтажу розділу swap після перезавантаження. Для цього в одній команді:

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

або просто:

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

Тепер ваш запис на заміну /etc/fstabбуде виглядати приблизно так:

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

З власними конкретними цифрами та малими літерами замість букв "х".


2
Чому ваш цитуваний UUID має деякі конкретні цифри? Чи повинні вони бути однаковими для всіх UUID? UUID моїх розділів не збігаються з вашими вказаними цифрами.
Руслан

Ваші команди sed не працюють у випадку, якщо поля розділені вкладками (а не пробілами). Краще писати як sed -ri '/\sswap\s/s/^#?/#/' /etc/fstabPS: Я також додав, #?щоб запобігти додатковим змінам в / etc / fstab, коли рядок уже відключений.
Alek_A

4

Якщо ви стурбовані вмістом свопу, ви завжди можете вимкнути його, як зазначено звичайним способом, sudo swapoff -aа потім заповнити пристрій swap нулями або випадковими даними, використовуючи dd.

Спершу використовуйте вміст fstab, щоб знайти свій swapfile або пристрій ( less /etc/fstab)

Розмістивши його та двічі та потрійно перевіривши його місце розташування у скажімо sda5 або /swapfile (swap-розділи були замінені за замовчуванням на swapfile у 17.04 та далі) .

У разі заміни розділу або накопичувача: (попередньо / dev) видайте команду "знищувач диска" (не слід використовувати легко)

sudo dd if=/dev/zero of=swapзаміна слова swap пристроєм або файлом, який ви перебуваєте в ньому/etc/fstab

підірвати його повним нулями або

sudo dd if=/dev/random of=swapзнову замінити слово своп з пристроєм підкачування або файл, розташований в/etc/fstab

підривати його повними випадковими даними.

Що стосується свопфілів (попередньо лише шлях): ви можете просто видалити файл за допомогоюrm /path/to/swapfile

Наступного разу увімкніть своп на

swapon -a

Система із задоволенням знову використовуватиме її. Якщо у вас багато оперативної пам’яті, можливо, вам взагалі не знадобиться своп. Видайте команду

free коли система перебуває під великим навантаженням і дивіться, скільки використовується для прийняття цього визначення.

Якщо ви визначите, що вам постійно не потрібен своп (для сплячки або чогось іншого), ви можете просто прокоментувати цей рядок у fstab, як тут запропоновано.

безкоштовно


3

Це може бути кульгавим рішенням, але я його часто використовував. Ви можете просто ввести

sudo -s
crontab -e

І додайте

@reboot sudo swapoff -a  

Отже, він буде відключений автоматично при завантаженні.


4
Я сподіваюся, що само собою зрозуміло, що це дуже поганий метод. Навіщо створювати завдання для завантаження, щоб вимкнути інший параметр, коли є ще один файл, який можна редагувати, щоб зупинити його в першу чергу
underscore_d

Можливо, не так естетично, але в цьому немає нічого поганого. Якщо ви вже дуже звикли користуватися crontab, тоді це рішення трохи простіше закрутить пальці і матиме більше сенсу, ніж просто сліпо копіювати те, що інший користувач SE попросив вас зробити до / etc / fstab. І ви все ще запам’ятаєте, як це зробити на новому комп’ютері без повторного запуску в Google. Мені здається, я ледве навіть знаю, що таке crontab, і я набагато більше знайомий з дисковими розділами, але логіка все ще існує.
Микола Піпітон

Насправді це може бути кращим рішенням. Оскільки пропозиції / etc / fstab працюють лише для swap-розділів. Це рішення застосовується до налаштувань Linux, незалежно від того, використовують вони розділ чи swapfile.
Микола Піпітон

2
sudo swapoff -a

Вищенаведена команда вимикає swap лише для поточного сеансу , вам потрібно прокоментувати розділ swap у файлі / etc / fstab . Для цього вам просто потрібно додати "#" (рядок коментарів) до початку рядка свопу. Кроки такі:

  1. Відкрийте файл fstab, наберіть sudo gedit /etc/fstabтермінал.

Вміст файлу виглядатиме так:

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. Просто додайте хеш (#) на початок рядка розділу swap, щоб лінія виглядала так:

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

  1. Перезавантажте комп'ютер

0

Перейти в термінал і виконати наступну команду: gnome-disks. Він встановлений не у всіх дистрибутивах. Якщо так, дотримуйтесь інструкцій, роздрукованих для його встановлення, і спробуйте ще раз. Шукайте пристрій зі словом "swap" на лівій панелі. Зазвичай він має такий самий розмір, як і фізична пам'ять. Клацніть на квадратній кнопці, щоб відключити її. Підтвердьте цю зміну за допомогою пароля root.

Знімок екрана: http://imgur.com/Og6igqb

У додатку System Monitor (gnome-system-monitor) ви побачите, що він повідомляє про область заміни як "недоступна". Область підкачки відключена, але не видалена. Ви можете легко це знову ввімкнути в майбутньому. Видалення місця заміни не заподіяло моїй системі ніякої шкоди, але ви створите більше роботи для себе, якщо вирішите, що хочете його повернути (сплячку) у майбутньому.

редагувати: щоб запобігти його монтажу при запуску, слід зайти в "Редагувати параметри кріплення ..." в gnome-дисках і зняти прапорець "Монтувати при запуску".


1
Чи вважаєте ви, що це відповідає на занепокоєння користувачів щодо наявності конфіденційних даних про swap-розділі? Чи можете ви сказати нам, чому?
Старійшина Гік

1
Основний пункт користувача запитував, як відключити своп. Якщо у вас є конфіденційні дані, вам в ідеалі слід використовувати шифрування перед завантаженням.
user170544

1
Я з повагою не згоден. Коли я читаю питання, перше речення, на яке я стикаюсь, - "У мене є деякі чутливі дані в операційній пам'яті, які я вважаю за краще не бути на диску". Я вважаю, що це його головне питання, і саме тому він почав з цього. Незважаючи на те, я вважаю, що я висвітлив усі аспекти його питання у своїй відповіді. Розглянемо це корисним прикладом.
Старійшина Гік

0

Замінити defaultsз sw,noautoв лінії , яка складається із запису підкачки в файлі /etc/fstab:

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

(Шлях /dev/mapper/centos-swap, мабуть, для вас інший).

Тепер перевіряйте вихід після перезавантаження, ваш своп ніколи не встановлюється:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3791         100        3408           8         282        3483
**Swap:             0           0           0**
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.