新しいスワップファイルを追加します。再起動後にfstabを編集してスワップを有効にする方法


50

パーティションの問題のため、既存のスワップパーティションを削除しました。現在スワップスペースがないので、次のようにスワップファイルを作成しました。

dd if=/dev/zero of=/root/myswapfile bs=1M count=1024

あとはswapon -s

/root/myswapfile    file    1048572    1320    -1

次に/etc/fstab、再起動後にスワップファイルを有効にするように編集します。


1
SSDでのスワップは危険です。SSDドライブの書き込み操作が激しい場合は時間がかかります。これは、貴重で高価なSSDドライブを本当に消費できることを意味します。

2
bs=1G count=1同じ結果が得られることに注意してください。他のユニットのdd マンページを見てください。
LiveWireBT 14

回答:


79

ファイルにスワップを作成する手順は次のとおりです。

次のような大きなファイルを作成します

sudo mkdir -p /var/cache/swap/   # create a directory that holds the swap file
sudo dd if=/dev/zero of=/var/cache/swap/myswap bs=1M count=4096 # for 4 GByte

もちろん、定義されたサイズのファイルを作成する他の方法でも実行できます。

システムへのスワップを発表する

sudo chmod 0600 /var/cache/swap/myswap # only root should have access
sudo mkswap /var/cache/swap/myswap # format as swap
sudo swapon /var/cache/swap/myswap # announce to system

/etc/fstab次のブートからのスワップ用に次の行を挿入します。

/var/cache/swap/myswap    none    swap    sw    0   0

注: SSDにシステムファイルがある場合は、ハードディスクの場所にスワップファイルを保持することを検討してください。

また注意:休止状態にスワップファイルを使用することはできません(Ubuntu SwapFaqを参照)

Ubuntu> = 17.04に関する追加の注意:スワップオンファイル/swapfileは、新しいインストールでデフォルトで作成されます(スワップパーティションが存在しない場合)。必要応じて、後で手動でスワップパーティションを作成できます

既存のスワップ(パーティションなど)を別のスワップ(ファイル上など)で置き換えたい場合は、次のようにして古いスワップを削除する必要があります。

sudo swapoff -a  # for all

次に、それぞれスワップエントリを削除する/etc/fstabか、新しいスワップに置き換えます。


1
どうしてSSDでもスワップしたくないのですか?
ジョセフガービン

1
@JosephGarvin:磨耗はおそらく問題ではないかもしれないので、SSDでスワップするときはまだ多くの(高価な)ディスクスペースを浪費しています。システムRAMによっては、あまり頻繁にスワップする必要がない場合があります。askubuntu.com/questions/178661/do-i-need-swap-with-new-ssd
Takkat

1
おかげで、/etc/fstab再起動せずにスワップファイルが正しくマウントされることをどのように確認できますか?私は私がしなければスワップファイルを見ることができないmount -a && mount
ドン・ジュリオ

2
@ user72464使用されているすべてのスワップを表示するには、を発行し swapon -sます。利用可能なスワップもに表示されfree -hます。
タックカット

1
@ user72464 Simple .. domount -a
heemayl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.