はじめに
LEVEL-R037-i5-XNという、ゲーミング用PCでOSなしを買ってUbuntu16をインストールしようとしたらなかなかインストールができなかった。 プリインストールではWinsows10が入っているはずだったが、OSなしを選択した。 www.pc-koubou.jp
- 出版社/メーカー: IIYAMA
- メディア: Personal Computers
- この商品を含むブログを見る
マシン: LEVEL-R037-i5-XN OS: Ubuntu16.04 Desktop マザボ: Z370-S01 BIOS Version: E7B48IM0.1L4
ACPIエラーでインストーラが起動しない
症状
いつも通りディスクを入れてUbuntuをインストールしようとしたら、インストーラが起動しなかった。 画面には、"ACPI Error"なるエラーが表示されていた。
ACPIエラー
ACPIとは、Advanced Configuration and Power Interface、つまり、"PC/AT互換機等の電源制御と構成要素に関する公開された統一規格"、らしい。 詳しくはWikipediaを参考(Advanced Configuration and Power Interface - Wikipedia)
そしてさらにACPIエラーでググると、先人の知恵が出てきた。 Turn Off ACPI while Booting Ubuntu via Grub2 - Ubuntu Sharing
処置
- 電源投入後、shiftキー連打でgrubを起動させる
- grub menuで、1:without installation, 2:install ubuntu みたいになっているところで、2にカーソルを合わせてeを押し、カーネルの起動オプション設定画面にする
- ~splash"という記述を見つけ、~splash acpi=off apm=on"に変更する
- めでたくインストーラが起動する!!
さて、Ubuntuを無事にインストールできて、終わったーと思うがつかの間。 インストールの最後でシステムリブートがかかるが、コンソールは返ってこなかった。
インストールしたUbuntuが起動しない
いろいろ考えたが、インストーラが起動しない問題で対応した上記の対策は、grubを直接書き換える一時的なものであった。そのため、再起動時には編集前の状態(~~splash")のまま起動オプションが選択されていたと考えられたので、再度同様の対応をすることにした。
処置
- 無理やりハードウェアで電源を落とし、そして電源ボタンを押して起動させる
- 電源投入後、shiftキー連打でgrubを起動させる
- grub menuで、1:without installation, 2:install ubuntu みたいになっているところで、2にカーソルを合わせてeを押し、カーネルの起動オプション設定画面にする
-
splash"という記述を見つけ、splash acpi=off apm=on"に変更する - めでたくUbuntuが起動する!!
- Ubuntuにログインしたら、上記の設定をデフォルト設定に反映させるために、/etc/default/grubを編集する(grub の設定ファイルは/etc/grubにもあるが、そこを直接書き換えてはだめ)
- 下記の2つの変数をgrubファイルから探し、下記の値に変更する
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=off apm=on" GRUB_CMDLINE_LINUX="reboot=pci" # おまじない。こちらは検証していないのでやらなくてもいいかもしれない)
- $ sudo update-grub # defaultの設定が、grubの設定に上書きされる
- めでたく起動はできるようになった!
- マザボはデフォルトでACPIをサポートしていない
- UbuntuはデフォルトでACPIを使おうとしてしまう
- acpid.socket
- acpid.path
- $ sudo systemctl stop acpid.socket
- $ sudo systemctl disable acpid.socket
- $ sudo systemctl stop acpid.path
- $ sudo systemctl disable acpid.socket
- $ sudo systemctl stop acpid.service
- $ sudo systemctl disable acpid.service
- $ sudo reboot
- めでたくrebootができるようになった!!!!うれしい!!!
- 出版社/メーカー: IIYAMA
- メディア: Personal Computers
- この商品を含むブログを見る
が、まだシャットダウンするとエラーする
シャットダウン時のエラーの解消
今回の問題を通して、マザボとUbuntuの設定をいろいろ調べたら、下記のことが分かった。
これらの矛盾がシステム内でコンフリクトを起こしていると考え、無理やり起動したUbuntu上でACPIをdisableにしてしまおうと考えた!
ACPIの無効化
Ubuntuの中ではACPIは ACPI event daemon (acpid.service)となっており、init.dで管理されている。これを無効化すれば話は早いのだが、ACPIはほかのサービスと依存関係があり、ACPIだけを無効化しても他のサービスがACPIを無理やり起動させてしまう。なので今回は依存関係にあるサービスも無効化してみることにした。 対象となるサービスは以下の2つであり、これらを無効化した後にacpid.serviceを無効化することで、正常にシャットダウンができるようになる
処置
最後に
これでもダメだったら、BIOSの設定かもしれない。正直BIOSの設定は詰まったときにいじりすぎてよくわからないが、たぶん関係ないと信じている。最初にいろいろ調べていたらsecure bootをBIOSで変更できたら終わるみたいなことが書いてあったのだが、BIOSでsecure bootに相当する部分が変更不可能になっており、悲しみを感じていた。まさかUbuntuごときのインストールでこんなに悩まされることになるとは微塵も思っていなかった。
追記
上記を試してもまだ色々不思議な挙動をする部分があったので、BIOSの項目を全部見てみたら凶悪なオプションが存在した。もともとGPU付きのマシンなので、ディープラーニングとか重めの計算とか回したいなぁと思っていたのだが、そもそもなかなかNVIDIAのイケてるGPUのドライバインストールすらうまく行かなくて本当に辛かった。
この記事の一番最初に書いたとおり、今回購入したPCはWindowsをインストールすることを前提に作られているものである。おそらく、だからだと思うが、BIOSにWindows専用の設定が存在した。前提がWindowsインストールなので、今回のようにOSなしで購入しても、Windows専用オプションがenableになっており、どうやらこいつが邪魔していたらしい。悔しい。悔しすぎる。
boot optionに関しても、UEFIから変更ができない設定になっていたのはWindowsでは変更が不要だったからである。UbuntuをインストールするにはLegacy+UEFIにしたいができなかったのは憎きWindowsオプションenableのせいであった。
その後さまざまな予期せぬ挙動は、このWindowsオプションをdisableにすることで解決した。boot optionも変更できた。何度トライしても失敗していたGPUのドライバインストールも成功した。GPUもCLIから確認できるようになった。そしてなぜか解像度も上がった。なかなかに辛かったが、MSIのBIOSはWindowsを前提にしてあるという教訓を得た。
まとめ
MSI製のBIOSでWindows以外のOSをインストールしようとしていて詰まった人は、最初にBIOSの設定でWindowsに関するオプションがないか必ず調べましょう。MSIはWindowsのことしか考えていません。