システムのインストール後にスワップを追加するにはどうすればよいですか?


153

Ubuntuのインストール中にスワップパーティションを作成しませんでした。その後、スペースを解放して、スワップパーティションを作成しました。起動するたびに、手動でgpartedスワップパーティションを右クリックして開き、「swapon」オプションをオンにします。

ブート時にスワップパーティションを自動的に有効にするにはどうすればよいですか?

また、スワップパーティションを作成していない場合、他のオプションは何ですか?


回答:


132

/etc/fstab新しいスワップパーティションを編集して追加する必要があります。

sudo nano /etc/fstab

次のような行を追加する必要があります

UUID=735b3be3-779c-4d21-a944-b033225f3ab4 none   swap    sw      0       0

コマンドを使用してUUIDを取得します

sudo blkid /dev/sda3

/dev/sda3適切なデバイス名に置き換えてください)。

関連する:


bashの- ::の/ etc / iの出力を取得ミリアンペアfstanのためにお困りの/ etc / fstabに:アクセス許可が拒否されました
Ashu_FalcoN

sudo geditのは/ etc / fstabを使用してください

3
適切なデバイス名を見つけるには:sudo fdisk -l(from:askubuntu.com/questions/182446/…)そしてType:Linux swapを探します。
-NumesSanguis

1
sudo blkid /dev/sda4私には何も出力しません(sda4はコード82hで新しく作成されたパーティションで、fdiskは「Linuxスワップ/ Solaris」パーティションだと言います)。
エゴールスクリプチュノフ

1
@ elvis.dukajデバイス名も使用してもまったく問題ありません。基本的に、2つの異なることを表します。1つは正確にそのUUID(別のmkswap実行で変更されるもの)でボリュームを使用し、もう1つはdiskのプライマリパーティション番号3を使用するように言い/dev/sdaます。デバイス名の割り当てが変わってもUUIDは変わらないため、UUIDを好む人もいます。それが違いが重要な理由です。ただし、ドライブのパーティションを再分割しないことが確実な場合は、/dev/sda3同様に安全に使用できます。
0xC0000022L

106

インストール後にスワップパーティションを作成するには、空のパーティションを作成します。穴がないはずです。次に、このパーティションを次の方法でフォーマットできます。

sudo mkswap /dev/sdX

交換/dev/sdXあなたのパーティション。このパーティションをスワップとしてマウントします

sudo swapon -U UUID

ここで、UUIDは、これから/dev/sdX読み取ったユーザーのUUIDです。

blkid /dev/sdX

/etc/fstab次の行を追加して、新しいスワップをバインドします。

UUID=xxx    none    swap    sw      0   0

休止状態にスワップを使用する場合は/etc/initramfs-tools/conf.d/resume、このコンテンツでUUIDを更新する必要がありますRESUME=UUID=xxx。することを忘れないでください$ sudo update-initramfs -u

物事を完了するには予備のパーティションがない場合は、スワップファイルを作成することもできます。この回答により、スワップファイルを作成し、起動時にそれを有効にする方法がわかります。


今のところ、2つのパーティションを持つSSDがありますが、3つ目のパーティションを作成したいと思います。OSとファイルを保持するプライマリext4パーティションがある場合、これを使用して2GBを新しいパーティションに切り離すことができますか?このプライマリパーティションには十分な空き領域があるため、問題にはなりません。
ダスティン

2
見てgparted、あなたのパーティションのサイズを変更するため。
-NumesSanguis

54

スワップパーティションを作成したくない場合や作成方法がわからない場合は、パーティションと同じように機能するスワップファイルを作成できます。手順は次のとおりです(ターミナルを使用):

  1. 空のファイルを作成します(1K * 4M = 4 GiB)。

    sudo mkdir -v /var/cache/swap
    cd /var/cache/swap
    sudo dd if=/dev/zero of=swapfile bs=1K count=4M
    sudo chmod 600 swapfile
    
  2. 新しく作成されたファイルをスワップスペースファイルに変換します。

    sudo mkswap swapfile
    
  3. ファイルのページングとスワッピングを有効にします。

    sudo swapon swapfile
    

    検証者:swapon -sまたはtop

    top -bn1 | grep -i swap
    

    次のような行を表示する必要があります。 KiB Swap: 4194300 total, 4194300 free

    無効にするには、sudo swapoff swapfileコマンドを使用します。

  4. fstabファイルに追加して、次回のシステム起動時に永続的にします。

    echo "/var/cache/swap/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
    
  5. 起動時にスワップファイルを再テストします。

    sudo swapoff swapfile
    sudo swapon -va
    

    注:上記のコマンドは、fstabファイルの構文を再チェックします。そうしないと、Linuxが正常に起動できません。


13
スワップパーティションではなくスワップファイルを使用する唯一の答えをありがとう。この場合、パーティションを作成できませんでした。コマンドは素晴らしく機能しました。
サレルボサ

2
より大きなサイズのスワップスペースが必要な場合は、X GiBスワップスペースのcount = 4MをXMに増やします。誰かがそれを見逃した場合に備えて。
saurabheights

手順5が不明です。テストのためにスワップをオフにするのはなぜですか?
ラフィカッチャドゥリアン

最後に@RaffiKhatchadourianを再テストすると、fstabファイルの構文を(すべてのタイプミスに対して)再確認できます。そうしないと、Linuxが正しく起動せず、特にリモートサーバーで大きな起動の問題が発生する可能性があります。
ケノーブ

1
ああ、わかりました。再起動する前にそれを行う必要があります。起動時にスローオフされました。
ラフィカチャドリアン

13

gpartedを使用してこれを行うグラフィカルな方法があります。

Gpartedを実行します:

sudo gparted

インストールしていない場合は、次を使用してインストールできます。

sudo apt-get install gparted

gpartedが実行されたら:

  1. 割り当てられていないブロックを右クリックしてクリックし、パーティションを割り当てます new
  2. パーティションを次のようにフォーマットします linux-swap
  3. パーティションを右クリックしてクリックしますswapon

完了したら、パーティション名の横に鍵のアイコンがあるはずです


最も簡単な答え
Shobi

1
永続的にするには、@ user4124
Madura Pradeep

1
質問はすでにそうしていると言っています。
チャイT.レックス

1
これは質問にまったく答えません。
mook765

@ mook765、質問は「システムのインストール後にスワップを追加するにはどうすればよいですか?」です。これはその質問に完全に答えます。
テイラー

3

linux.comからは、スワップファイルを作成するだけです。これはより柔軟であり、スワップストレージの数とサイズを動的に調整できるためです。また、スワップパーティションをシステムディスクから遠ざけることができるため、システムが高速になります。また、複数のスワップスペースを使用する場合は、使用の優先順位を同じ値に調整します。そのため、ラウンドロビンを使用して書き込みが行われるため、さらに速度が向上します。

ps iはデバイス名の代わりにUUIDを使用します。誤ってUSBストレージをUSBスロット内に残し、sataケーブルを取り外して差し戻すだけでデバイスの順序を簡単に変更できるため、接続されているドライブをあまり心配する必要がありませんどこ。


これは、ドライブの再パーティション化を必要としないため、最も有用な応答でした。Ubuntuが新しいマシンにインストールしても、デフォルトではスワップが作成されません。
アーニー

2

/ etc / fstabでスワップファイルシステムを定義する必要があります。次のような行が含まれている必要があります

UUID=67682d1b-a1d8-4377-a3dd-67340c141619 none            swap    sw              0       0

もちろん、UUIDの値をデバイスの識別子に置き換える必要があります。


どうすれば入手できますか?

3
代わりに、/ dev / sda1(UUIDなし)などのデバイス名を使用できます。
アダムByrtek

2

(sdaxの「x」をスワップパーティション番号に置き換えます。例:sda5)

「xxx」をUUID番号に置き換えます。例:67682d1b-a1d8-4377-a3dd-67340c141619)


su(パスワードを与えてルート権限を取得)

blkid / dev / sdax(UUIDを取得)mkswap / dev / sdax(スワップパーティションをフォーマット)swapon -U xxx

nano / etc / fstab(fstabを編集)UUID = xxx none swap sw 0 0(このテキストを入力して保存し、スワップを永続的にします)(その後fsantabを閉じます)


nano /etc/initramfs-tools/conf.d/resume(「再開」ファイルを作成し、このテキストを保存してhibernate / resumeを使用)RESUME = UUID = xxx(ctrl + xでnanoを閉じる)->(yで保存)

マシンを再起動する

ログインすると、休止状態/再開をテストできます


2

これは、Ubuntu用のRamドライブの作成方法に関する包括的なチュートリアルです。残念ながら、スクリーンショットはカットアンドペーストで表示されません。後で追加しますが、必要ありません。

最初に行う必要があるのは、RAMドライブ用のスペースを作成することです。32 GBのハードドライブのみのデュアルブートシステムがあります。私のUbuntuは実際にSDカードにインストールされています(はい、実際のインストールであり、Live Casperのものではありません)。私のスワップもSD上にあり、すぐに使い古される可能性があります。スワップの変更方法を調べてこの記事を見つけましたが、答えが気に入らなかったので、変更を加えながらチュートリアルを作成しました。

単にスワップパーティションを増減したい場合は、お気に入りのパーティションマネージャでパーティションを増減するだけです。Ubuntuはすでにどこに行くべきかを知っており、サイズに依存しません。場所を変更するか、新しいスワップを作成する場合は、先に進んでください。最初に行う必要があるのは、ハードドライブを縮小してスワップ用のスペースを確保することです。Windowsシステムがインストールされているディスクを縮小する場合は、Windowsを使用してディスクを縮小することをお勧めします(ディスク自体は知っています)。純粋なUbuntuを使用している場合は、ライブUbuntu USBを使用してサイズ変更を試してください。

Windowsのサイズ変更手順:

  1. システムをバックアップし、ドライブを最適化します。
  2. スタートバーを右クリックします。
  3. ディスク管理を選択
  4. 正しいドライブを右クリックします
  5. 縮小を選択します。
  6. 正しい金額を入力してください。

Ubuntuを使用している場合。必ずUbuntuツールを使用してください。割り当てを完了するには、GPartedを含むUbuntuの起動可能なライブUSBを使用します。ライブUSBは、何らかの理由でGpartedを使用する最良の方法です。最初のインストールからUSBを用意するか、使いやすくするためにUSBを作成する必要があります。

ドライブを「最適化」したにもかかわらず、それを行うための十分なスペースがなかったため、2000年の入力は許可されませんでした(Windowsが実際に最適化したとは思わない)。いくつかの実験により、私は1000を許可されました。私は小学校の数学の先生に、MS Windowsのプログラマーよりも感謝しなければなりません。これにより、小学校の数学に十分な1.95gbが残った。

パーティションをフォーマットする

これで、gpartedでそのスペースを適切なスワップドライブとしてフォーマットする準備が整いました。Windowsを使用していて、UbuntuとWindowsを切り替える場合は、[電源]および[シャットダウン]をクリックするときにShiftキーを押したままにしてください。これは非常に重要です。特に、別のオペレーティングシステムで「C」ドライブの詳細をいじる場合は重要です。デュアルブートを使用している場合、通常の状況ではWindowsが偽のシャットダウンを行うことを既に知っている必要があります。一部の人々は「高速ブート」を無効にしました。私のシステム(Windows 10)にはその選択がありません。友人のGoogleのおかげでシフトキーを使用する必要があります。ライブUSBで起動し、「C」ドライブをマウントできない場合(クリックすることで)、完全にシャットダウンしませんでした。ウィンドウをリロードし、Shiftキーを使用して再度シャットダウンします。

これでUbuntu Liveモードになり、以下をお読みください:

あなたが純粋なUbuntuであり、Windowsで縮小しなかった場合。gPartedでサイズ変更オプションを使用します。ドライブをすでに縮小している場合は、サイズ変更手順を実行しないでください。ダッシュバーにGPartedと入力すると、アプリケーションを非常にすばやく取得できます。サイズを変更するドライブを右クリックします。

ここで、未割り当て領域をパーティションドライブとしてフォーマットします。

前:

どうすればいいかわからなかったので、SDで以前のRamドライブを調べました。Linuxスワップとしてフォーマットされています。そこで、最近割り当てたフォーマットをLinux Swapとして縮小しました。
プライマリパーティションと警告通知に対してOKと言ったところ、うまくいきました!

パーティションのフォーマット

フォーマットと新しいパーティションの後

これは、上の古いスワップパーティションという偶然の一致であるsdと呼ばれていたmmblk1p5、新しいものでもあるp5mmblk0フロントインチ あなたのものはp6またはp7です。心配しないで。

mmblk0物理ディスクであり、pはその物理ディスク上のパーティションです。またmmblk01、別の物理ディスクなどです(これが私のSDです)これ以上作業を行う前に、Windowsを再度開いて、Windowsがまだ起動していることを確認しました。あなたが怠けている場合や純粋なubuntuマシン上でこのステップを実行する必要はありません。Windowsが壊れた場合、WindowsでそのディスクにUbuntuを新規インストールします(スワップも行います)。システムを破壊した場合、新しいインストールでスワップを割り当てることができるため、これ以上の手順を実行する必要はありません。すべてが順調に進み、Windowsが起動しました。これで、Windowsのディスクマネージャーに新しいパーティションが表示されます(スタートバーを右クリックして、ディスクの管理を取得します)。

次に、スワップをブートルーチンにアタッチします

この質問に対する以前の回答には、実際にはスワップオン/オフコマンドがありましたが、これらは不要であり、複雑になる可能性があります。必要なのは、正しいファイルを見つけて、新しいパーティションを指すようにスワップすることだけです。繰り返しますが、パーティションのサイズを変更するだけであれば、何もする必要はありません。パーティションを見つけるためのセットアップは既に完了しています。サイズは自動的に行われます。

パーティションを変更した場合、または初めてスワップを行う場合は、以下をお読みください。

教えてください、これは私がこれをするのは初めてです。私はUNIXオタクではなく、GUIツールを好みます。このチュートリアルを作成するときに、私は学び、指を交差させています。これまでのところ、すべて順調に進んでいます。システムのルートにあるのはetcなどのディレクトリです。そのディレクトリ内には、fstab(拡張子なしの)ファイルがあります。スーパーユーザー「su」権限でこのファイルを編集する必要があります。それを行う前に、ライブUSBで作成した新しいスワップパーティションのUUIDが必要です。sudo suと入力します。これで、スーパーユーザーモードになりました。あなたは何でもすることができます(あなた自身の存在を一掃することを含む)。

blkid新しいスワップパーティションのuuidを入力して探します。私は下に私のものを見、それを強調しました:

PartUIDには注意しないでください。

今、他の人はタイプを言うでしょう:

sudo gedit /etc/fstab

しかし、私はそれを試してみましたが、正しいファイルが見つかりませんでした(コメントをお願いします)。

そこで、geditと入力して、GUIのように(成功!)開いてみました。なぜなら、私はすでにスーパーユーザーモード(sudo su)になっていたので、変更後にファイルを保存するなど、Geditで任意の操作を行うためのルート権限を持っています。素晴らしい!何かを変更または破損する前に、fstabを「...」というバックアップとして保存しますfstab.bak

風変わりなGUIの方法を使用してバックアップを作成し、使い慣れた「名前を付けて保存」を選択し、ファイルに「bak」を追加しますfstab.bak。.bak拡張子が付いていることを確認してください。Geeksはterminal cpコマンドを使用するように指示しますが、私たちの初心者は最初にこれを取得するために端末でファイルを見つけることができません。他のワードプロセッサと同様に、「名前を付けて保存」コマンドの後、現在のファイルはになりfstab.bakます。以前持っていた実際のファイルを開き、バックアップファイルを閉じます。fstab拡張機能なしで実際に編集していることを確認してください。バックアップファイルを編集した場合、再起動しても何も起こりません。さらに、バックアップコピーは元のファイルの実際のバックアップではありません。

私の元のfstabファイルは次のようになります。

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/mmcblk1p6 during installation
UUID=a611601a-6ea8-4e34-9859-42a2470cac29 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/mmcblk0p1 during installation
UUID=00F2-C0CE  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/mmcblk1p5 during installation
UUID=8fb20159-62e4-41a3-8550-791c7a66c328 none            swap    sw              0       0

最後の行(私はあなたのために赤にしました)には、おそらく起動時に使用される元のスワップ情報があります。前のblkidコマンドから、新しいドライブのUUIDを確認できました。ターミナル内のテキストを強調表示し、右クリックしてコピーを選択することにより、そのフレーズをコピーします。そのフレーズをsuスクラッチパッドとしての権利なしで別の別のエディターに貼り付けます(Libre Officeを使用でき、ギークはを使用できますnano)。この手順により、引用符なしで適切なテキストを簡単に取得できるので、fstabファイルに簡単に貼り付けることができます。このファイルはできるだけ変更しないでください。

New UUID
UUID="709ea197-e6fb-428b-9c1f-4b258452b10c"

したがって、私の新しいUUIDは上記の赤でリストされています。行う必要があるのは、スワップのuuidを変更することだけです。スワップドライブがない場合は、上記のfstabファイルに自分の行をコピーし、前のblkidコマンドから適切なuuidを追加します。(正しいuuidを選択してください!)
これが最初のスワップ行である場合は、余分なものを含む完全な行を含めるようにしてください。

none            swap    sw              0       0

それほど正確な間隔を気にしないでください。

私の新しいファイルは次のようになります:私も自分の変更の上にコメントを追加したことに注意してください#文字はコメントであることを意味します。

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/mmcblk1p6 during installation
UUID=a611601a-6ea8-4e34-9859-42a2470cac29 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/mmcblk0p1 during installation
UUID=00F2-C0CE  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/mmcblk1p5 during installation  NOW changed to mmcblk0p5
UUID= 709ea197-e6fb-428b-9c1f-4b258452b10c  none            swap    sw              0       0

引用符を貼り付けないでください。=記号の後にスペースを入れないでください。

ファイルを保存します。

変更を保存するために、もう一度開きます。suオタクがあなたをdangerousる危険な権利でgeditとターミナルを閉じてください(簡単な作業であり、物事を破壊するのも簡単だからです)。

再起動し、指をクロスします!

再起動し、システムパフォーマンスアプリを見て、スワップが機能しているかどうかを確認しました。まだスワップドライブがありました!しかし、それは新しいものですか、古いものですか?新しいドライブは古いドライブと同じサイズであるため、新しいドライブが実際にロードされたことを確認できませんでした。したがって、私は次のように入力しました:swapon(SWAPON以外は何も入力しないでください。それはあなたのためにスワップのみをリストします:safe)。今、私は私mmblk0p5がやったUUIDの仕事に一致する私の新しいドライブを見るfstab。私のスリムな32GBメインドライブが有効になりました:


これで、これまでにこれを行ったことのない初心者ユーザーによるこのチュートリアルは終了です。このチュートリアルを作成した理由の半分は、私たちを助けてくれる(そしてありがとう)オタクが初心者ユーザーを助ける方法を理解できるようにするためです。以前の回答は誤解を招くものであると疑われ、作業を進めながらチュートリアルを作成することにしました。有用な他の回答から推測することで、私がする必要があるのは、fstabファイルを編集して再起動するだけであると結論付けました。すべてうまくいきましたが、私はまだWindows 10を使用しており、まだシステムを消去していません。Windows pagefile.sysをLinuxスワップファイルとして共有する方法を知っている人がいれば、Windowsでは2 GBが使用され、32 GBマシンではhdスペースが非常に高価になるため、興味があります。

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