最近、私は自分の研究所のいくつかのノードにMintをインストールしようとしていました。時々、インストールできず、画面に「PCIeバス」エラーがたくさん表示されました。 Ubuntu18.04でも同様の問題が発生しています。
多くの解決策と観察を使用した後(解決策は同じですが、観察と治療が異なる場合があります)、1か月以上それに固執しましたが、私にとって役立つものを見つけました。他のUbuntuやLinuxMintユーザー。
PCIeバスエラーの重大度に関する所見が修正されました
これは私のHPシステムで発生し、HPハードウェアとの互換性の問題があるようです。 PCIeバスエラーは基本的に、ハードウェアの問題を報告するLinuxカーネルです。
このエラー報告は、システムによって生成されるエラーメッセージの頻度が高いため、悪夢になります。さまざまなLinuxフォーラムで、多くのHPユーザーがこのエラーに遭遇していることに気づきました。おそらく、HPはハードウェアのLinuxサポートを改善する必要があります。
これは、必ずしもHPシステムでLinuxを使用できないことを意味するわけではないことに注意してください。 Linuxは他の人と同じように使えるかもしれません。起動するたびにこのメッセージが画面に点滅するのを見るのは煩わしく、時には大きな問題につながる可能性があります。
システムがレポートを続けると、ログサイズが大きくなります。ルート用のスペースが限られている場合は、システムが黒い画面で動かなくなり、PCIeエラーメッセージが表示され、システムが起動できなくなる可能性があります。
いくつかのことがわかったので、このエラーに対処する方法を見てみましょう。
Linuxシステムを起動できる場合のPCIeバスエラーメッセージの処理
起動中に画面にPCIeバスエラーメッセージが表示されてもログインできる場合は、この煩わしさを回避することができます。
ハードウェア互換性の面ではほとんど何もできません。つまり、(おそらく)ハードウェアのドライバーのコーディングを開始したり、既存のドライバーコードを修正したりすることはできません。システムが正常に動作している場合、主な懸念事項は、エラー報告が多すぎてもディスク容量を消費しないことです。
その点で、Linuxカーネルパラメータを変更して、PCIeエラーの報告を停止するように依頼できます。これを行うには、grub構成を編集する必要があります。
基本的には、ファイルを編集するためにテキストエディタを使用する必要があります。
まず最初に、grub構成ファイルのバックアップを作成して、変更した内容がわからない場合に元に戻せるようにします。ターミナルを開き、次のコマンドを使用します。
cp /etc/default/grub ~/grub.back
次に、Geditでファイルを開いて編集します:
sudo gedit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT =”quietsplash”のある行を探します
この行にpci=noaerを追加します。 AERはAdvancedErrorReportingの略で、「noaer」はカーネルにAdvancedErrorReportingを使用/ログに記録しないように要求します。変更された行は次のようになります:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=noaer"
ファイルを保存したら、次のコマンドを使用してgrubを更新する必要があります。
sudo update-grub
Ubuntuを再起動すると、「PCIeバスエラーの重大度が修正されたメッセージ」が表示されなくなります。
これで問題が解決しない場合は、他のカーネルパラメータを変更してみてください。
さらなるトラブルシューティング:MSIを無効にする
今、あなたはヒットとトライアルに頼っています。 MSIを無効にしてみてください。 Linuxカーネルは数年前からMSIをサポートしていますが、一部のハードウェアメーカーによるMSIの実装が間違っていると、PCIeエラーが発生する可能性があります。
ドリルは、前のセクションで見たものと実質的に同じです。 grub構成を編集し、GRUB_CMDLINE_LINUX_DEFAULT行を次のようにします。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=nomsi"
grubを更新し、システムを再起動します:
sudo update-grub
さらにトラブルシューティング:mmconfを無効にする
繰り返し発生していることは承知していますが、それでも問題が解決しない場合は、これを最後に試す価値があるかもしれません。今回は、Linuxカーネルでmmconfパラメータを無効にします。
mmconfはメモリマップド構成を意味し、古いコンピュータを使用している場合、バグのあるBIOSがこの問題を引き起こす可能性があります。
手順は同じです。 grub構成の行GRUB_CMDLINE_LINUX_DEFAULTを変更して、次のようにします。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=nommconf"
起動できません! grub configを今すぐ編集するにはどうすればよいですか?
場合によっては、まったく起動できない場合は、ルートのスペースが不足している可能性があります。ここでのアイデアは、古いログファイルを削除して、今すぐ起動できるかどうかを確認し、実行できる場合はgrub構成を変更することです。
再起動時に、画面にログが表示されたままハードブートを実行した場合(電源ボタンを使用してオフにしてから再度オンにします)。電源を入れたら、grub画面からリカバリモードに入ることを選択します。 [詳細オプション]の下にあるはずです。
システムにGrub画面が表示されない場合は、起動時にShiftキーを押したままにします。一部のシステムでは、Escキーを押すとgrub画面が表示されます。
詳細オプション->リカバリモードの場合:
ルートシェルにドロップします:
lsコマンドを使用して大きなファイルを検索すると、sys.logとkern.logが膨大なスペースを占めることがわかります。
ls -s -S /var/log
Linuxコマンドラインでログファイルを空にするには、次のようにします。
$ > syslog
$ > kern.log
それが完了したら、システムを再起動します。ログインできるはずです。上記のように、grubパラメータをすばやく変更する必要があります。この場合、pci=noaerを追加すると役立ちます。
解決策というよりは回避策だと思います。しかし、これは私を長い間悩ませ、エラーを回避するのに役立ったものです。それ以外の場合は、システムを再インストールする必要がありました。
私はここのコミュニティと私のために働いたことを共有したかっただけです。お役に立てば幸いです。
この記事はArunShrimaliによって書かれました。 Arunは、インドのResonance InstituteのIT責任者であり、組織全体にオープンソースソフトウェアを実装しようとしています。
この記事はAbhishekPrakashによって編集されました。