スワップを無効にするにはどうすればよいですか?


83

RAMには、ディスクに保存したくない機密データがいくつかあります。スワップを無効にするにはどうすればよいですか?十分なRAMがあります。RAMが高すぎる場合、プロセスが終了しても問題はありません。スワップを無効にするにはどうすればよいですか?

注:スワップパーティションはありません。これはVM(VMWare)で実行されています

swap 

2
RAMがたくさんある場合でも、スワップなしで完全に動作するのは最善のアイデアではありません(例えばalexonlinux.com/swap-vs-no-swapを参照)。要件に応じて、dm-cryptで保護されたデバイスにスワップパーティションを配置して、そこに書き込まれるすべてのものが暗号化されるようにすることを検討できます。このような場合、暗号化されたボリュームが利用可能になった後にスワップが有効になり、デバイスマッピングが無効になる前に無効になることを確認する必要があります(Ubuntuではデフォルトだと思いますが、わかりません)。Webで「暗号化されたスワップ」を検索して、多数のガイドを見つけてください。
soulsource

1
Apropos:askubuntu.com/questions/248158/…必要になるまでスワップは必要ありません。そして、あなたは本当にそれを必要とします。

cryptswapはどうですか?/ dev / mapper / cryptswap1

回答:


121

を使用して

sudo swapoff -a  

スワップをオフにする通常の方法であり、swapon -aコマンドを使用してスワップをオンに戻します。man swapoff 明示的なデバイスのスワップをオフにする方法の詳細については、を参照してください。


7
これは再起動後も持続しないようですか?
ebyrob

19
スワップへの永続的な変更は、通常/ etc / fstabで行われます。
ubfan1

私たちはただの/ etc / fstabファイルにこれをコピーしてください
最大

6
いいえ。代わりに、/ etc / fstabのスワップ行をコメントアウトします。
トーステンブロンガー

コメントアウトする方法を他の回答で読むことができます。
カロルス

25

/etc/fstabファイル内のスワップエントリをコメントアウト(行の先頭に#を追加)するだけで、再起動後にスワップを無効にできます。再起動後にスワップパーティションが自動的にマウントされるのを防ぎます。単一のコマンドでこれを行うには:

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

文字「x」の代わりに固有の数字と小文字を使用します。


2
引用されたUUIDに具体的な数字があるのはなぜですか?それらはすべてのUUIDで同一である必要がありますか?私のパーティションのUUIDは、指定した数字と一致しません。
ルスラン

フィールドがタブ(スペースではない)で区切られている場合、sedコマンドは機能しません。sed -ri '/\sswap\s/s/^#?/#/' /etc/fstabPS として書かれた方が良い:#?行が既に無効になっているときに/ etc / fstabに追加の変更が加えられないようにするためにも追加しました。
-Alek_A

4

スワップの内容が心配な場合は、通常の方法で指定された方法で常にオフにしてから、sudo swapoff -addを使用してゼロまたはランダムデータでスワップデバイスを埋めることができます。

最初にfstabのコンテンツを使用して、スワップファイルまたはデバイスを見つけます(less /etc/fstab

それを見つけ、ダブルとトリプルをチェックして、たとえばsda5または/swapfile (スワップパーティションは17.04以降ではデフォルトでスワップファイルに置き換えられました)にあることを確認しました

スワップパーティションまたはドライブの場合:(/ devで始まる)「disk destroyer」コマンドを発行します(軽く使用しないでください)

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

システムは再び喜んで使用します。十分なRAMがあれば、スワップはまったく必要ないかもしれません。コマンドを発行する

free システムに高負荷がかかっている場合、この決定を行うために使用されている量を確認します。

(ハイバネーションやその他の目的で)永久にスワップを必要としないと判断した場合は、ここで提案されているようにfstabでその行をコメントアウトするだけです。

自由


3

不十分なソリューションかもしれませんが、私はそれを頻繁に使用しました。単純に入力できます

sudo -s
crontab -e

そして追加

@reboot sudo swapoff -a  

そのため、起動時に自動的に無効になります。


4
言うまでもなく、これは非常に貧弱な方法です。なぜするには、起動時のタスクを作成するオフにそれが最初の場所でオンにされて停止するように編集することができ、別のファイルがあるとき、別のオプションを
underscore_d

おそらく、見た目が美しいほどではありませんが、それについて悪いことは何もありません。すでにcrontabの使用に非常に慣れている場合、このソリューションは、SEの他のユーザーが/ etc / fstabに指示したことを盲目的にコピーするよりも、簡単に指を転がし、より理にかなっています。そして、あなたはまだグーグルに走らなくても新しいコンピューターでそれをする方法を覚えています。私はたまたまcrontabが何であるかさえ知らず、とにかくディスクパーティションにはるかに精通していますが、ロジックはまだ立っています。
ニコラス・ピピトン

実際には、これがより良いソリューションかもしれません。/ etc / fstabの提案は、スワップパーティションに対してのみ機能するためです。このソリューションは、パーティションまたはスワップファイルを使用するかどうかに関係なく、Linuxセットアップに適用されます。
ニコラス・ピピトーネ

2
sudo swapoff -a

上記のコマンドは、現在のセッションのみスワップを無効にします。/ 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. スワップパーティションの行の先頭にハッシュ(#)を追加するだけで、行は次のようになります。

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

  1. PCを再起動します

0

ターミナルに移動して、次のコマンドを実行しますgnome-disks。すべてのディストリビューションにインストールされているわけではありません。その場合は、印刷された指示に従ってインストールし、再試行してください。左側のペインで「スワップ」という言葉が付いているデバイスを探します。通常、物理メモリと同じサイズです。四角いボタンをクリックして無効にします。rootパスワードでこの変更を認証します。

スクリーンショット:http : //imgur.com/Og6igqb

システムモニターアプリケーション(gnome-system-monitor)では、スワップ領域が「使用不可」として報告されます。スワップ領域は無効になっていますが、削除されていません。将来的には簡単に再び有効にできます。スワップスペースを削除してもシステムに害はありませんが、将来的に元に戻す(休止状態にする)ことを決めた場合は、より多くの作業を作成できます。

編集:起動時にマウントしないようにするには、gnome-disksの[マウントオプションの編集...]に移動し、[起動時にマウント]のチェックを外します。


1
これは、スワップパーティションに機密データがあるというユーザーの懸念に答えると思いますか?理由を教えてください。
オタク長老

1
ユーザーの主なポイントは、スワップを無効にする方法を尋ねることでした。機密データがある場合は、ブート前暗号化を理想的に使用する必要があります。
user170544

1
私は丁重に同意しません。質問を読んだとき、最初に出くわした文は、「RAMには機密データがありますが、ディスク上には置かないほうがいい」というものです。これが彼の主な関心事であり、それが彼がそれから始めた理由だと思います。とにかく、私は彼の質問のあらゆる側面を私の答えでカバーしたと信じています。役に立つ例と考えてください。
オタク長老

0

ファイル内のスワップエントリで構成される行のdefaultswith 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**
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.