デュアルブートPCの休止状態でGRUBを再起動する方法

デュアルブートPCの休止状態でGRUBを再起動する方法

私は2つの異なるGNU / Linuxベースのオペレーティングシステムを実行するラップトップを持っています。各オペレーティングシステムには独自のルートとプライマリパーティションがありますが、ブートパーティションとスワップパーティションを共有します。 1つの問題を除いて、すべてがうまく機能します。翌日のように、コンピュータを休止状態にし、起動するたびにX OSを休止状態にしたことを忘れ、最終的にFSログがめちゃくちゃになります。今、私はスワップスペースを共有することでこれが副作用である可能性があることに気づきました。しかし、一度休止状態に入ると、GRUBはスワップスペースが使用中であることを検出し、休止状態OSで起動したという印象を受けました。解決策を書く必要があるので、これは私には当てはまりませんでした。

/etc/default/grub を編集します。

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

grub-mkconfigを実行し、休止状態のときに/boot/grub/grub.cfgのタイムアウトを任意の値から0に変更するスクリプトを作成します(/etc/pm/sleep.d/10-hibernate-script .sh):

#!/bin/sh

 case "$1" in
    hibernate)
    cat /boot/grub/grub.cfg | sed 's/timeout=10/timeout=0/g' > /boot/grub/grub.cfg~
    mv /boot/grub/grub.cfg~ /boot/grub/grub.cfg
    ;;
    thaw)
        cat /boot/grub/grub.cfg | sed 's/timeout=0/timeout=10/g' > /boot/grub/grub.cfg~
        mv /boot/grub/grub.cfg~ /boot/grub/grub.cfg
    ;;
esac

これを行うより「基本的な」方法がありますか、それともこれがこれを達成するための最良の方法ですか?

ベストアンサー1

どちらもLinuxなので、2つのOSのいずれかが保存したイメージから2つのOSのいずれかを復元できるように何かを設定できますか?休止状態イメージにすべてのカーネルメモリ(コードを含む)が含まれている場合、どのコアで再起動されるかは問題ではありません。これがどのように機能するのかよくわかりません。

また、ラップトップがACPI休止状態をサポートしている場合、Linuxはこの方法で休止状態モードを実行できます。 GRUBで起動するのではなく、起動時に常に再開したいですか?繰り返しますが、仕事がどのように機能するのかよくわかりません。

スワップパーティションにリカバリイメージがある場合は、オペレーティングシステムでスワップパーティションを無効にできます。どちらも同じスワップ以外のパーティションを読み書きでマウントする場合は役に立ちません。ログの再生を拒否するマウントオプションがあるかもしれません(休止状態を妨げる)。


これらのどれも成功しない場合は、あなたのソリューションがあなたが得ることができる最善の解決策だと思います。私の考えでは、grubがスワップパーティションを見ていて、使用しているかどうかを確認する方法がわからないようです。その場合は、grub構成にいくつかのロジックを追加して、SAVEDEFAULTエントリのみを起動できるようにすることができます。 (grubは実際には理解できないようです。どのオペレーティングシステムにSAVEDEFAULTを使用しない休止状態のイメージがあります。 )

引用:

おすすめ記事