LIVAにCoreOSを突っ込んでdocker専用マシンにする

  • 9
    Like
  • 1
    Comment
More than 1 year has passed since last update.

前置き

LIVAのOSレスモデル[liva-c0-2g-64g-w]に、CoreOSを入れてDocker専用の静音マシンにします
無線LANもHDMIも音声出力も無視する贅沢仕様です

LIVAは見た目通り、物理マシンですのでCoreOSのBareMetalインストールを選択します

Installing CoreOS to Disk

しかしながら、CoreOSが配布するisoイメージでは、LIVAはCDブート出来ませんでした。(2014.12.30現在)

また、先日までLIVAが内蔵するeMMCモジュールがCoreOSシステムで認識出来ませんでした。

年末なのでチャレンジを再開しようとしたところ、CoreOSのIssueが上がっていて、問題が解決していました。
https://github.com/coreos/bugs/issues/209

そこで、CoreOSのAlpha Channelのイメージを使ってインストールを行います。

たぶんチャレンジする人がほぼ居ないか、ちょっと情報があれば分かる特異な方だと想うので記事の内容は自分メモです

何かありましたら、コメント頂ければ分かる範囲でお答えします

インストール

まず、LIVAがboot出来るubuntu 14.10 desktopを使ってOSブートします

CoreOSのインストールには公式に配布されているスクリプトを使います
https://raw.githubusercontent.com/coreos/init/master/bin/coreos-install

wget https://raw.githubusercontent.com/coreos/init/master/bin/coreos-install
chmod 755 coreos-install
sudo ./coreos-install -d /dev/mmcblk0 -C alpha

CoreOSのインストールの説明を見ると、カスタマイズのためのcloud-config.ymlを引数に設定出来ますが
インストールに使っているubuntuには、cloud-initが入ってないが入っていないため設定処理がスキップされます。

そこで、インストール後に個別にcloud-config.ymlを突っ込みます

突っ込む先は、/dev/mmcblk0p6 です。適当にマウントしてファイルを書き込みます。
これは、CoreOSの/usr/share/oemにファイルを書き込むのと同等の処理ですが、
事前に行わないと、ブートは出来てもログイン出来ないCoreOSがブートするだけになります。
/dev/mmcblk0p6がブートすると、/usr/share/oemにマウントされます

レスキューログイン

通常は、Bypass Authenticationを使い自動ログインにしてしまうところですが
LIVAの場合、UEFIのせいかgrubのパラメータがうまく食えません。

仕方ないので、ubuntuを使ってbootし、UEFIパーテション(/dev/mmcblk0p1)をマウントし、
grub.confの中のefi boot用のパラメータに、'console=tty1 coreos.autologin=tty1'を追加しておくことで、
常時ログイン状態に出来ます。
あとは、ブート後のシステムで、/usr/share/oem/にcloud-config.ymlを置けばOKです