ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

macOS High SierraでUSBインストーラーを作ろうとして困った話

macOSでISOイメージからUSBインストーラーを作る時、だいたい以下のような手順で作成していました。 普段はEasy2Bootを使っていたので、macOSインストーラーを作るのは久しぶりでした。

・デバイス番号確認 
$ diskutil list

・フォーマット
$ diskutil eraseDisk FAT32 MEMISO MBR /dev/disk2

・アンマウント
$ diskutil unmountDisk /dev/disk2

・書き込み
$ sudo dd if=CentOS-7.5-x86_64-Minimal-1804.iso of=/dev/disk2 bs=1m

そして作成したUSBメモリーからインストーラーを起動するわけですが、何らかのよくわからないエラーが表示され、うまく起動してくれませんでした。ISOイメージのダウンロードに失敗したかと思いハッシュ値を確認したのですが全く一緒です。念のためにUbuntuインストーラーも作ってみましたが出てくるエラーこそ違うものの、同じくインストーラーが起動しませんでした。ちなみにSierraまではこの方法でうまくUSBブートするディスクを作れていました。High Sierraのddのバクなのかな。

調べると、/dev/diskXのところを/dev/rdiskXと指定してもイメージを作れるらしいことを見つけました。たしかに、/dev/diskXのを指定するよりもずっと短時間で作成できます。もっと早く知っときゃ良かった。

つまり、次のコマンドでイメージを書き込みできます。

$ sudo dd if=CentOS-7.5-x86_64-Minimal-1804.iso of=/dev/rdisk2 bs=1m

作成したイメージでCentOS 7.5のインストーラーを起動でき、セットアップして正常にOSを起動できました。

ところがどっこいUbuntu Server 18.04のインストーラーは起動せず

同じ方法でUbuntu Server 18.04のインストーラーを作りますが、/dev/rdiskXを指定してもダメでした。 そこで公式のLiveインストーラーではなくdebインストーラーをイメージソースとして作ってみました。

そちらはうまく起動できました。そのあと試しにそのUSBインストーラーを使ってインストールしてみました。特に問題なく、インストール完了です。

ところがどっこいUbuntu Server 18.04は起動せず

インストールが終わって再起動しました。残念ながらカーネルのブート途中でカーネルパニックが発生してしまいました。

この問題はUbuntu Server 18.04をインストールしたいくつかのハードウェアで起こっている問題です。カーネルパニックが起動時に発生したり、シャットダウン時に正常に電源断が行われずにハードウェア強制リブートが行われてしまったりするという問題がいくつか報告されています。ちなみにUbuntu Desktop 18.04ではあまり聞いたことはない事象です。

Canonicalはなんとかしようと現在もカーネルに修正を加えているので、いずれ不具合なく動作するようになるかもしれませんし、しないかもしれません(後者の場合は詳細なログとバグ報告が必要ですね)。カーネルパニックが頻発する問題はLinuxカーネル4.14までは起きていませんでした。Linuxカーネル4.15の途中のRC版から発生するようになり、最近のLinuxカーネルUbuntu 18.04の組み合わせでも、ハードウェアによってはカーネルパニックとの死闘を繰り広げる必要があるようです。かなり深い問題のようです。

とりあえず手元の環境でうまく動かない場合はUbuntu 16.04は2021年まで利用できるので、問題が落ち着くまではUbuntu 16.04を使うといいと思います。 ちなみにUbuntu 16.04+Linuxカーネル4.15の組み合わせは概ね問題なく動くようです。