web-dev-qa-db-ja.com

Ubuntu 16.10がMSI GP72ラップトップで起動に失敗する

基本的に、Ubuntu 16.10 AMD64(Linux 4.8.0-22-generic kernel)を使用してシステムを正常に起動し、実際に使用できるようにする方法を見つけるのに、基本的に助けが必要です。 16.04 LTSから起動することも受け入れられるソリューションです。

以下に、システムに関する追加情報、私が試した事柄、および得られた結果を含む部品を見つけます。あなたが提供できる助けを事前に感謝します。今後の詳細:O!

概要

今年7月にこのMSIラップトップを購入し、lotのトラブルシューティングを行った後、Ubuntu 16.04 LTS AMD64をインストールして、問題なく数か月間使用できました。 (デュアルブートシステムとして、Windows 10を反対側に持っています。)

数日前に16.04-> 16.10から更新しましたが、ラップトップを起動できなくなりました。さらに悪いことに、元々ライブUSBドライブから持っていた同じ16.04 LTSを起動することさえできません。 (ただし、Windowsは引き続き起動します。)初めて実装したソリューション(下記参照)はnotであり、今回は違いがありますが、なぜそうなったのかはわかりません。

アップグレードプロセスが正常に完了するように見えることに注意してください。ここでは、以前のUbuntuバージョン(14.04など)について同様の質問をいくつか行ってきましたが、機能していないか、私の状況に当てはまりません。私はすでにこれに数日を費やしました...


現在の動作とエラーメッセージ

これは、どのブートオプションを選択するかによって異なりますが、現在のアップグレードされた16.10インストール(ブートコマンドが含まれています)をブートしようとすることの概要は次のとおりです。

基本的なコマンドはlinux /vmlinuz-4.8.0-22-generic root=UUID... ro_quiet splash $vt_handoffなので、読みやすさのためにオプション間の違いのみをリストします。

  1. デフォルトのブートオプション:上記のコマンド(もちろん完全なUUIDを使用)。
    • Ubuntuロゴを表示した直後にシステムがハングします。
    • ハングする前にコンソールを表示するためのキーを押すと、メッセージがまったく書き込まれていないことがわかります。
  2. アップグレード前のブートコマンド:acpi_osi="Linux" pci=nomsi引数を追加しました。
    • 上記と同じ動作
    • これらの引数は、7月に16.04のインストールで動作するようにするためのソリューションの一部でした。
  3. リカバリモード1:これにより、ro recovery nomodesetカーネル引数が追加されます
    • サービスの開始を示す大量の出力
    • 最後のメッセージは[OK] Started Light Display Manager.(つまりlightdmサービス)です
    • ここで画面が真っ暗になり、応答しなくなります。
    • 表示されるエラーメッセージのみが下にあります。
  4. リカバリモード2:#3と同じリカバリ引数ですが、acpi_osi="Linux" pci=nomsiが手動で追加されます
    • 基本的に#3と同じ結果

オプション3および4にログインしているのは、次のエラーのみです。

[FAILED] Failed to start NVIDIA Persistence Daemon.
See 'systemctl status nvidia-percistenced.service' for details

ブートプロセスはnotを実行し、この障害でハングします。ブートプロセスは、LightDMサービスが開始されるまで、ただし実際にグリーターが表示されるまで続きます。

また、systemctlコマンドを試しますが、

  1. ハングしたシステムはコマンドを受け入れません。
  2. 公式ページの最新バージョンを優先して、以前の復旧試行中にnvidia-367ドライバー/パッケージを実際にパージしました(apt-get purge nvidia\*)。

いずれにせよ、ドライバーに問題がある場合(たとえば、LKMとしてロードできない場合)でも、グリーターとグラフィカルUIがnotになることを(多くても)期待します。場合は、ログインして解決する端末が必要です。しかし、私はそこまで到達することはできません。

事前のトラブルシューティングの試行と結果

これらのエラーのいくつかを以前に見た(そして解決した)ので、ここ数日を過ごして、ここに投稿する前に手順を実行して問題を解決しようとしました。残念ながら、似たような問題に対して以前に機能していたものは(わかりません)助けにはなりません。

元々成功したソリューション(今回は動作しません)

7月にトラブルシューティングを行ったとき、これらは、ブートとログインの問題を解決するのに役立ちました。

  1. acpi_osi="Linux"カーネル引数を追加して、ACPIテーブルのバグを回避します
    • これらは通常、BIOSによってWindowsシステム用に構築され、Linuxで問題を引き起こす可能性があります。
  2. このラップトップの回避策の問題にpci=nomsiカーネル引数を追加します
    • このオプションを使用しないと、カーネルはメッセージad-infinitumのログを記録し続け、パーティション内の使用可能なスペースを使い果たし、このオプションでその問題が修正されました。
  3. ドライバーのインストール後にログインを許可するには、セキュアブートを無効にします
    • 基本的に、作業中のプロジェクトにNouveauドライバーを使用することはできません。署名されていない(インストール中にローカルでビルドされる)NVIDIAドライバーを使用する必要があり、セキュアブートの世界では、信頼できないカーネルモジュールです。
    • セキュアブート環境では、nsignedカーネルモジュールを期待どおりにロード/動作することはできません。NVIDIAドライバーをビルド/インストールするとログイン画面が表示されますが、すべてのログイン試行は失敗しますデスクトップにアクセスします(ログイン画面に戻ります)。
    • この点を超えるにはセキュアブートを無効にする必要があります(またはMicrosoftがカスタムビルドドライバーに署名する方法を見つける(幸運)、または自分で行う(幸運をもう一度))...

今回、16.10の再インストールのためにこれらのことを試しましたが、同じ結果は見ていません。謎は、私が7月に働いていた16.04を取得することさえできず、当時と同じように動作するようになったことです。これについては説明がありません。

以前のHPラップトップでpci=offを使用してブートの問題を回避していましたが、MSIでそれを試してみてもどこにも行きませんでした。

ライブUSBからの起動が失敗する

現在、デフォルトのオプション¹を使用して、ライブUSBから16.04 LTSまたは16.10を起動しようとすると、コンソールに次のメッセージが表示されてハングします。

...
lvm2-monitor.service
tmp.mount
systemd-tmpfiles-setup.service
resolvconf.service
[ kernel-time] nouveau 0000:01:00.0: pci: failed to adjust lnkctl speed
[ kernel-time] iwlwifi 0000:02:00.0: Unsuported splx structure
[ kernel-time] NMI watchdog: BUG: soft lockup - CPU#4 stuck for 22s! [plymouthd:314]
[ kernel-time] NMI watchdog: BUG: soft lockup - CPU#4 stuck for 23s! [plymouthd:314]
[ kernel-time] ...<same message>...
[ kernel-time] INFO: task systemd:1 blocked for more than 120 seconds.
[ kernel-time]       Tainted: G             L 4.8.0-22-generic #24-Ubuntu
...
[ kernel-time] INFO: rcu_sched self-detected stall on CPU
[ kernel-time] NMI watchdog: ...<same message>...

ライブUSBコマンドにacpi_osi="Linux" pci=nomsiを追加すると、pci_enable_msi failed - -22に関するエラー行が追加され、わずかに異なる出力が生成されます

...
lvm2-monitor.service
tmp.mount
systemd-tmpfiles-setup.service
systemd-update-utmp.service
[ kernel-time] nouveau 0000:01:00.0: pci: failed to adjust lnkctl speed
[ kernel-time] pci_enable_msi failed - -22
[ kernel-time] iwlwifi 0000:02:00.0: Unsuported splx structure
[ kernel-time] NMI watchdog: BUG: soft lockup - CPU#4 stuck for 23s! [plymouthd:314]
[ kernel-time] INFO: rcu_sched self-detected stall on CPU

以前に(HPラップトップで)ソフトロックアップメッセージを見たことがあり、always BIOSでdisabledであるVT-dおよびCPU仮想化オプションにトレースバックできました。それらを有効にすると、その問題はすぐに解決します。 7月にこれらのCPUストールがあったかどうかはすぐには覚えていませんが、もしあれば、同じ方法で解決できたでしょう。 (とにかく仮想マシンを実行したい場合は、仮想化が必要です-例:仮想ボックス)

サイトに関する他の回答を読んだところ、いくつかは無効化 CPU Cの状態を示唆していましたが、それはnot私にとっても機能しました。


関連するBIOS設定

これは、タブごとに以前関連していた設定と、16.04-> 16.10アップグレード前に機能していたcurrent値です。いくつかのオプション(ハイパースレッディングの無効化、c状態など)で既に有効/無効の異なる組み合わせを試しましたが、成功していません。

詳細設定タブ

  1. Intel Virtualization Technology:有効
  2. VT-d:有効
  3. ハイパースレッディング:有効
  4. CPU Cの状態:有効

ブートタブ

  1. 高速ブート:有効
  2. ブートモード選択: UEFI

セキュリティタブ->セキュアブートメニュー

  1. セキュアブート:無効
  2. セキュアブートモード:標準

脚注

  1. ライブUSBのデフォルトブートコマンド:linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash ---
4
code_dredd

質問を投稿した直後に問題を修正することができましたが、回答を投稿する前に確認したかったのです。 no BIOS/UEFI設定への追加の変更が必要であったことに注意してください-OPで既に指定したものは別として。


修正する手順

プロセスは基本的に次のとおりです。

  1. カーネル引数を追加します:nomodeset acpi_osi=ブートを続行できるようにします
    • 最初はacpi_osi="Linux"を使用しても機能しませんでした。上記のように空である必要がありました¹
    • を押して、ブートコマンドを編集できます。 e GRUBメニュー内
  2. これにより、ライブUSBから16.10を正常に起動できます。
    • 私の場合、再インストールに行きました²
  3. 再インストール後、カーネル引数をpci=nomsi acpi_osi="Linux"に戻しました

システムをブートするためにnomodeset³が必要な理由はわかりません最初ですが、実際には必要ありません事後。私はおそらく、元の16.04 LTSインストールのトラブルシューティングを行った7月にこれを行っていたと思われます。いずれにせよ、これが同様の問題に遭遇する可能性のある他の人に役立つことを願っています。


永続的な変更を行う

現在、毎回bootコマンドを編集する必要があり、それはすぐに古くなります。ブートコマンドpermanentlyを更新するには、次の手順を実行します。

  1. root として、/etc/default/grubを編集用に開きます。
    • Sudo vim /etc/default/grubターミナルから
    • お気に入りのエディターのvimを変更します(例:nano
  2. この行を次のように編集し、変更を保存します
    • デフォルト:GRUB_CMDLINE_LINUX=""
    • 編集済み:GRUB_CMDLINE_LINUX="pci=nomsi acpi_osi=\"Linux\""
  3. Sudo update-grub2コマンドを実行して、更新された/boot/grub/grub.cfgファイルを生成します
    • 忘れずにnot/boot/grub/grub.cfgを直接編集してください

pci=nomsi引数について疑問に思っている場合、これによりカーネルがドライブ(つまり/var/log/syslog)に大量の偽のメッセージでいっぱいになるのを防ぎます。私のデスクトップと以前のHPラップトップはこの回避策を必要としなかったため、これはMSIラップトップに固有のようです。


脚注

  1. acpi_osi=acpi_osi="Linux"に戻さず、nvidiaドライバーパッケージをインストールした場合、ログイン試行は失敗し、グリーターが再表示されます。パスワードが正しい(つまり、パスワードの不一致に関するエラーメッセージがない)ため、これを特定できます。 Ctrl + Alt + F1 ターミナルにログインすると、そこから正常にログインできます。
  2. /homeディレクトリが独自のパーティションにある場合(必要に応じて、IMHO)、同じファイルシステム(ext4など)とマウントポイント(つまり/home)、しかしwithoutフォーマットします。また、インストール中に同じアカウント資格情報を再入力しました。古いアカウントは/homeディレクトリに残りますが、/etc/passwdから読み取るため、[設定] >> [ユーザー]を使用すると表示されない場合があります。それらを正しく表示するには、Sudo adduser ...が必要になる場合があります。
  3. nomodesetは何をしますか? を参照してください
5
code_dredd

私は同じラップトップ、GP72-6qfを持っています。今、Ubuntuを実行しています。

  1. 最新のBIOSとファームウェアのアップデートがあることを確認してください。 10月に新しいリリースがありました。
  2. 設定CPU Cの状態:無効&高速ブート:無効
  3. ファイル/etc/default/grubを編集して変更します

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi= acpi_backlight=none acpi=ht pci=nomsi"
    

    次にSudo update-grubを実行します

  4. Ubuntu(Sudo apt update && Sudo apt upgrade)を更新します。

2
user608037

私の場合、Nvidia DriversをUbuntu 16.04で実行するのに問題がありました

私の修正:

add-apt-repository ppa:xorg-edgers/ppa
apt-get update
apt-get install nvidia-375
reboot
0
Eduardo