GNU/Linux >> Linux の 問題 >  >> Debian

Ubuntu で休止状態を有効にする方法 (ページング ファイルを使用する場合)

この記事では、systemd を使用して、新しいバージョンの Ubuntu でページング ファイル (少なくともバージョン 18.04 以降の Ubuntu の標準) を使用して休止状態を有効にする方法について説明します。

ラップトップのバッテリーは、スリープ中にすぐに消耗します。ここにあるようないくつかの解決策/回避策を試しました (私を除いて、ラップトップが一晩で電力の半分を失ったのではなく、すべてがわずか数時間で失われたことが問題でした)、役に立ちませんでした.そのため、Suspend to Disk オプションを有効にして、標準の Suspend to RAM オプションの代わりにそれを使用することにしました。使用していないときにラップトップのバッテリーが消耗しないようにするためです。スリープ状態よりも冬眠状態からの起床。

以下の手順は他の Linux ディストリビューションでも機能する可能性がありますが、私はこれを Ubuntu でのみテストしました (Pop! _OS などを含むすべての Debian ベースおよび Ubuntu ベースの Linux ディストリビューションで同じように機能するはずです)。 Debian 以外の Linux ディストリビューションでは、GRUB 2 の更新 (手順 4) と initramfs の更新 (手順 6) に別のコマンドを使用する必要がある場合があります。これらは Debian 固有のコマンドであるためです。

一部のコンピューターで問題が発生するため、Ubuntu では休止状態が無効になっていることに注意することも重要です。 バージョン 20.10 で Ubuntu の休止状態を再訪することについては少しおしゃべりでしたが、デフォルトでは無効のままでした。

要件

少なくともコンピュータのメモリと同じ大きさのページング ファイルが必要です (コンピュータのページング ファイルがシステムのメモリより少ない場合、ハイバネーションが成功する場合と失敗する場合があります)。この記事では、スワップ パーティションからスワップ ファイルに切り替える方法について説明します。これらの手順を使用して、より大きなスワップ ファイルを作成することもできます。

また、スワップを特別に暗号化した場合、これらの手順は機能しません .私のラップトップのスワップは暗号化されていないため、暗号化されたスワップでこれを試みることはできません。したがって、以下の手順は暗号化されていないスワップ ファイルにのみ適用されます。ただし、暗号化されたルート ファイル システムが既にある場合は、その中のすべてのファイル (ページング ファイルを含む) も暗号化されることを知っておく必要があります。この場合、次の手順が機能します。

お使いのコンピュータのスワップのサイズと、それがスワップ ファイルまたはパーティションを使用しているかどうか (後で知る必要があります) を確認するには、次のコマンドを使用できます。

cat /proc/swaps

これは私のラップトップからの出力の例です:

$ cat /proc/swaps
Filename	Type	Size		Used		Priority
/swapfile	file	8388604		3213700		-2

以下に示すように 02 10 と表示されます 、つまり、私のコンピューターはページング ファイルを使用しています (そのパスは 29 です) )、そのサイズは 38 です キロバイト (8.3 GB)。

デフォルトでは、Ubuntu は一定期間 (少なくとも Ubuntu 18.04 以降) ページング ファイルを使用するため、以下の手順では、ページング ファイルを使用していることを前提としています。スワップ パーティションを使用している場合、次の手順では、スワップ ファイルが配置されているパーティションの UUID の代わりにスワップ パーティションの UUID を使用し、スワップ ファイルのオフセット (41 パラメータ) どこでも。これらは、スワップ パーティションとスワップ ファイルによるハイバネーションの違いです。

こちらもご覧ください:Linux ノートパソコンのバッテリー情報をコマンド ラインから表示する 3 つのツール

Ubuntu で休止状態を有効にする方法 (ページング ファイルを使用する場合)

1.スワップ ファイルがあるパーティションの UUID を特定します。

これを GRUB ファイルと initramfs 再開ファイルに追加する必要があります。

ページング ファイルが配置されているパーティションの UUID を確認するには、次のコマンドを使用できます:

findmnt -no UUID -T /swapfile

(51 スワップ ファイルへのパスであり、コンピューターによって異なる場合があります。 65 から返された正確なパスを使用します コマンド)

私のコンピューターからの例 (出力付き):

$ findmnt -no UUID -T /swapfile

4a59c6a7-ca54-4e24-a362-3eac83bfe226

2.ページング ファイルのオフセットを調べます。

次に、ページング ファイルのオフセットを調べる必要があります。 UUID と同様に、これを GRUB ファイルと initramfs 再開ファイルに追加する必要があります。

これは、次のコマンドを実行することで実行できます:

sudo filefrag -v /swapfile

このコマンドの出力では、「physical_offset」列の最初の数字ブロックがスワップ ファイルのオフセットであり、後で必要になります。数字パッドに続くドットではなく、数字のみをコピーしてください。

たとえば、私の場合、これは 79 の出力です コマンド:

$ sudo filefrag -v /swapfile
Filesystem type is: ef53
File size of /swapfile is 8589934592 (2097152 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..    6143:    4974592..   4980735:   6144:
   1:     6144..    8191:    4982784..   4984831:   2048:    4980736:
   2:     8192..   10239:    4988928..   4990975:   2048:    4984832:
   3:    10240..   12287:    4997120..   4999167:   2048:    4990976:
........................................

この例では、オフセットはページング ファイル 84 です。 (これは 95 の最初の数字ブロックです 柱)

3. 105 を編集します カーネル パラメータ「resume」と「resume offset」で起動するファイル。

このファイルへの編集が正しいことを確認することが非常に重要です。そうしないと、コンピューターが起動しない可能性があります!

その 117 を開きます テキストエディタをルートとして持つファイル。次のコマンドを使用して、Nano コマンド ライン テキスト エディターで開きます。

sudo nano /etc/default/grub

このファイルの 127 の最後に 行、末尾 130 の前 、次を追加します:144 .値をステップ 1 で取得した UUID とステップ 2 で取得したスワップ再開オフセットに置き換えます。

ファイルを保存して Nano を終了するには、155 を押します 、次に 166 、そして 178 .

例。これが 187 のやり方です 私のコンピューターでは、スワップ UUID とスワップ オフセットを追加した後の行は次のようになります。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=4a59c6a7-ca54-4e24-a362-3eac83bfe226 resume_offset=4974592"

4. GRUB 構成を更新します。

Debian ベースの Linux ディストリビューションで GRUB 2 をアップグレードするには、次のコマンドを実行するだけです:

sudo update-grub

5. 193 を作成 (既にある場合は編集) スワップ UUID とレジューム オフセットを使用します。

次に、ファイルを編集する必要があります (存在しない場合は作成します)。 206 テキスト エディタをルートとして使用するファイル。次のコマンドを使用して、Nano コマンド ライン エディターでこのファイルを開きます:

sudo nano /etc/initramfs-tools/conf.d/resume

このファイルに「RESUME」で始まる行がある場合は、その行を編集するか、そのような行がない (またはファイルが完全に空白である) 場合は、次のように行を追加します。

RESUME=UUID=UUID_FROM_STEP_1 resume_offset=SWAP_OFFSET_FROM_STEP_2

ファイルを保存して Nano を終了するには、210 を押します。 、次に 224 、そして 237 .

246 の内容の例 私のラップトップからのファイル:

RESUME=UUID=4a59c6a7-ca54-4e24-a362-3eac83bfe226 resume_offset=4974592

6. initramfs を更新します。

次に、次のコマンドで initramfs を再生成する必要があります:

sudo update-initramfs -c -k all

7.コンピュータを再起動してください。

コンピューターを再起動したら、次のコマンドを使用してコンピューターをスリープ状態にします:

sudo systemctl hibernate

今のところ、スリープ状態にするにはパスワードを入力する必要があり、コンピューターをスリープ状態にするメニュー オプションはないため、これらすべてをコマンド ラインから実行する必要があります。パスワードを入力せずにシステムをスリープ状態にする (およびデスクトップの電源オプション (コントロール パネルのアプレットなど) でコンピューターを休止状態にするオプションを使用する) には、次の 2 つの手順を参照してください。

休止状態から再開するには、コンピュータの電源ボタンを押してください。

このコマンドを実行したときに、logind を介してシステムを休止状態にすることができませんでした:休止状態にするのに十分なスワップ スペースがないというエラー メッセージが表示された場合は、記事の冒頭に記載されている注意事項を見落としている可能性があります。コンピュータのメモリと少なくとも同じ大きさのページング ファイルを用意してください。この記事では、スワップ パーティションからスワップ ファイルに切り替える方法について説明します。これらの手順を使用して、より大きなスワップ ファイルを作成することもできます。

systemd Hibernate サービスに関連するエラーは、次の方法で確認できます。

systemctl status systemd-hibernate.service

8.オプション。パスワードを入力せずに休止状態を許可します (次のステップで必要)。一部のデスクトップ環境では、これにより「休止状態」と「ハイブリッド スリープ」の電源メニュー オプションが再び有効になります。

コンピュータをスリープ状態にするには、デフォルトでパスワードを入力する必要があります。パスワードなしで休止状態を許可するには、254 を作成 / 開きます root としてテキスト エディタを使用します。

次のコマンドは 260 を開きます nano コマンドライン エディターを使用して root として:

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.desktop.pkla

このファイルに、次を貼り付けます:

[Enable hibernate in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Enable hibernate in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

ファイルを保存して Nano を終了します (272 を押します)。 、次に 282 、そして 292 ).

一部のデスクトップ環境では、(ログアウト/再度ログインした後) 電源オプションの休止状態とハイブリッド スリープが表示されます。この手順を実行した後の Xfce 電源オプションの例を次に示します。

ただし、これは次のような Ubuntu を使用する一部のデスクトップ環境では機能しません。B. GNOME シェルを使用する。この場合、追加の手順が必要です (以下を参照)。

AskUbuntu を超える

9.オプション。アプリケーションを休止状態にするためのメニュー項目を追加するか、GNOME シェルの休止状態ボタンを使用します。

GNOME シェルを使用している場合は、スリープ ボタンと呼ばれる、トップ バーのシステム電源メニューにコンピュータをスリープ状態にするオプションを追加する拡張機能を使用できます。

この拡張機能を有効にした GNOME シェルの電源オフ / ログアウト メニューは次のとおりです。

GNOME シェルを使用していないが、デスクトップ環境に休止状態の電源オプションが表示されない場合、または上記の GNOME シェル拡張機能を使用したくない場合は、アプリケーション メニューにエントリを作成できます。休止状態と呼ばれるファイル。 303 のデスクトップ 、例えばこのファイルで Nano コマンド ライン テキスト エディタを開きます:

nano ~/.local/share/applications/hibernate.desktop

そして、そのファイルに以下を追加します:

[Desktop Entry]
Type=Application
Name=Hibernate desktop
GenericName=Hibernate desktop
Comment=Enter hibernation
NoDisplay=false
Icon=drive-multidisk
Exec=systemctl hibernate
Terminal=true
Categories=System;Utility;Settings;

デスクトップのアプリケーション メニューに移動し、310 をクリックします。 システムをスリープ状態にするアイコン。これを機能させるには、上記のオプションの手順 9 に従って、パスワードを入力せずにスリープ状態にする必要があります。

ハイブリッド スリープ オプションについても明確にする必要があります .スリープ/サスペンド (RAM へのサスペンド) と休止状態 (ディスクへのサスペンド) に加えて、コンピュータを休止状態にし、一定時間後に休止状態にするハイブリッド スリープ (ハイブリッド サスペンドとも呼ばれる) オプションもあります。 . 328 を使用して、サスペンドとハイバネーションの間のハイブリッド スリープ時間を (他のオプションと共に) 設定できます。 ファイルを作成してから、システムを再起動します。詳細については、Arch Wiki を参照してください。

おすすめ:Debian、Ubuntu、または Linux Mint 上の Google Chrome、Brave、Vivaldi、および Opera ブラウザでハードウェア アクセラレーション ビデオ デコーディングを有効にする方法


Debian
  1. Ubuntuでスワップファイルを追加する方法

  2. UbuntuLinuxでスワップサイズを増やす方法

  3. g++ を Ubuntu にインストールする方法

  1. Ubuntu 20.04 – Hweを有効にする方法は?

  2. .htaccessファイルを使用してerror-log.txtログを有効にする方法は?

  3. Ubuntu Linux を使用して FTP 経由でファイルをコピーするにはどうすればよいですか?

  1. Ubuntu18.04でSSHを有効にする方法

  2. Ubuntu18.04でスワップスペースを追加する方法

  3. Ubuntu20.04でスワップスペースを追加する方法