スリープモードから起きた直後のSIGSEGVアドレス境界エラー

スリープモードから起きた直後のSIGSEGVアドレス境界エラー

で再起動してhybrid-sleepログインできます()、最初は大丈夫です。swaylock期待どおりに機能し、スリープモードに切り替えても、シェルはまだ開いています。pwdjournalctl -xe

しかし、しばらくして数十秒後にシャットダウンするとjournalctl(実際にスリープ状態であることを確認したかっただけ)、CPU負荷が増え、ファンが回転する音が聞こえます。同時に、同じシェルで実行しようとしているすべてのタスクも一緒に聞こえます(pwdもう一度)。例)SIGSEGV - アドレス境界エラーが発生します。

そのため、終了コマンドも下げられず、電源ボタンを使って強制終了する必要があります。再起動journalctl --boot=-1後、スリープ状態になってもアイテムがなく、目が覚めていないようです。私はそれらがRAMにのみ保存され、シャットダウン時に同じセグポートでディスクに書き込めないと仮定します。

動作は非常に不規則です。上記のドラフトを作成した後、もう一度テストしてswaylockパスワード全体の代わりに単一のキーを入力して「ログイン」(バイパス)できましたが、オープン(回復)シェルで実行しようとしました。コマンドがターミナルエミュレータと競合し、以前と同様にコマンドを再度開くことはできません(キーバインディングが実行するコマンドもsegfaultになる可能性があります)。

原因が何であるか、どんな考えがありますか?それとも、システムが安定していてもログにアクセスせずにどのようにデバッグできますか?


関連性がある可能性のある情報。関連性のある人や疑わしい情報を提案できる人がいる場合は、さらに編集します。

# /etc/systemd/system/swapfile.swap
[Unit]
Description=providing a swapfile

[Swap]
What=/swapfile
Priority=20

[Install]
WantedBy=multi-user.target
# /etc/systemd/system/swapfile-creation.service
[Unit]
Description=creating a swap file at /swapfile
ConditionPathExists=!/swapfile
Before=swapfile.swap

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'dd if=/dev/zero of=/swapfile bs=1M count="$(expr "$(cat /sys/power/image_size)" / 1024 / 1024)" status=progress'
ExecStart=/usr/bin/chmod 600 /swapfile
ExecStart=/usr/bin/mkswap /swapfile

[Install]
RequiredBy=swapfile.swap

私はそのエントリ(またはそれを生成するために使用したスクリプト)を含めようとしましたが、systemd-boot実際にはRAMから復元したときに発生する停電シナリオをテストしていないことに気づきました。 (使用されていない)ディスクの停止が原因であることを再確認します。通常から復元すると機能しませんsystemctl suspend

ベストアンサー1

正確な理由はわかりませんが、問題の根本的な原因は、resume&bootresume_offsetカーネルパラメータを使用して起動しなかったことです。私はこれが休止状態ブートではなく再開ブートにのみ必要だと思いました。そうではないようです。

おすすめ記事