FedoraをOEMインストール(プリインストール)してみる

Ubuntuなどのディストリビューションは、OEMインストールという機能を供えている。
これは、主にPCベンダー向けに用意された機能で、OSを使用するユーザのセットアップは行わず、OSをインストールし、ベンダー固有のパッケージをインストールするなどカスタムを行ない、OEMインストール後は出荷先でユーザを作成してもらう、OSをプリインストールするための機能である。
この機能によって、WindowsがプリインストールされたPCと同じように、ユーザ側はタイムゾーンや使用するユーザーの設定などの、最小限の設定を行なうだけで、OSのインストールといった面倒な作業をする事なくUbuntuなどを使用することができる。
もしかすると、将来Fedoraをプリインストールしたパソコンを販売する事業をするかもしないし、Fedoraが好きた友達のためにパソコンをプレゼントするかもしれない。
無いとは思うが、とにかくFedoraをプリインストールして、エンドユーザ側でセットアップを済ませて使用できるようにする方法が気になったので調査した。
インストーラの起動
まずは、通常のインストール同様、https://getfedora.org/から、FedoraインストールISOを取得する。
僕個人的な意見としては、Fedora Workstationよりも、Fedora Server NetInstallのISOを取得した方が良いと思う。
と言うのも、Server NetInstall版であれば、インターネットに接続さえ出来れば常に最新のパッケージがインストールされる上に、デスクトップ環境や追加パッケージなどを、ニーズに合わせてその場で柔軟に調整できるからだ。一方で、Workstation版であれば、基本的にそのインストーラが提供開始された時点でのパッケージがインストールされる上、Server NetInstall版ほど自由にオプションを調節できない。
Serverと付いているが、実際にはサーバーのみならずあらゆる使用が出来る万能インストーラなのだ。
なので、今回はhttps://alt.fedoraproject.org/から、「Network Installer」部分にある「Fedora サーバ」を取得する。たったの600MB程なので、Torrentなどを使用せずともすぐに取得できるだろう。
ダウンロードが終わり次第、実機インストールであればUSBやCDに焼く作業を行なう。やり方はどこにでも転がっているし、こんなニッチな記事にまで辿り付いてしまったあなたであればおそらく知っているか、仮想マシンにインストールしたいであろうから、ここでは割愛する。
今回は、説明のために仮想マシン上でインストール作業を行なう。
インストール作業
インストーラを起動したら、ユーザのセットアップまでは通常通りFedoraをインストールする時と同じようにセットアップしていく。
先程NetInstaller版を選択した場合は、「ソフトウェアの選択画面」において、デスクトップ環境などの基本的なソフトウェアを選択するのを忘れずに。選択しない場合、Fedora Serverがそのままインストールされてしまう。
諸々の設定については、こんなニッチな記事にまで辿りついてしまったあなたであればおそらくやった事があって、慣れているであろうからここでは割愛する。(2回目)
ユーザーの設定
Fedoraをプリインストールする上で重要になるのが、このユーザー設定だ。
ユーザー設定項目で、[rootアカウント」を押し、「rootアカウントを有効化」を選択する。

ここで、パスワードを入力する必要があるが、実を言うと、今作成したrootアカウントは後に無効化するので、パスワードは適当でよい。最悪「Password」とかみたいな、実環境では絶対に許されないパスワードでも構わない。尚、簡単なパスワードにした場合は、「完了」ボタンを2回押す必要がある。
rootアカウントの設定が終わったら、通常ユーザを作成せずにインストールを開始する。
Fedoraのプリインストールにおいて、この通常ユーザを作成しない事が鍵になっている。通常ユーザを作成しなかった場合、インストール後の初回起動時に、ユーザを作成する画面が表示されるようになるのだ。

おそらく、このような感じになるだろう。設定に問題が無い事を確認したら、右下の「インストールの開始」を押してインストールを開始する。
インストール後の作業
インストールが完了すると、次のような画面になるはずだ。

ここで、「システムの再起動」を押さずに、Ctrl + Alt + F2を押して、コンソールに入る。
rootアカウントの無効化
コンソールに入った後、インストール先のシステムで、先程作成したrootアカウントを無効化する作業を行なう。
インストール先のシステムは、「/mnt/sysroot/」下にマウントされるので、そこにcdする。
そうしたら、etc/shadowファイルを編集する。デフォルトでは、書き込みが出来ないようアクセス権が設定されているので、書き込みが出来るように変更する。
chmod 700 etc/shadow
インストーラにはnanoエディタが付属しているので、それを使用して編集する。
nano etc/shadow
ちなみに、絶対パスで指定する場合は以下の通り。
nano /mnt/sysroot/etc/shadow

このように、ユーザの諸々の設定が保存されている。
ここで、最も最上段にある「root」の項目を編集する。
「root:」とその次の「:」の間にある、$y$j…から始まる文字列が、暗号化されたパスワードである。この暗号化されたパスワードを全て消去し、「!」に書き換える。
「!」に変更する事で、そのアカウントはロックされ、パスワードでのログインが不能になる。
編集後は、次のようになる。

これで、先程設定したrootアカウントがロックされた。もうあの貧弱なパスワードでログインされる事もない。
shadowファイルの編集が終わったので、再度書き換え出来ないように権限を変更する。
chmod 400 etc/shadow
これで、rootアカウントの無効化作業は終わりだ。
追加のパッケージなどのインストール
OSをプリインストールする場合、そのコンピュータ独自のドライバを入れたり、ベンダーなりにカスタムしておきたいだろう。
インストール先の環境をカスタマイズするために、chrootを使用して擬似的にインストール先環境で作業する。
まずは、独自のパッケージを使用したり、独自のファイルを追加する場合は、/mnt/sysroot/下のどこかにそれらのファイルを入れておく。
そうしたら、/mnt/sysroot/ディレクトリにcdし、
chroot .
で、chrootする。
このchroot環境下では、なんとネットワークも使えるので、dnfコマンドでパッケージをインストールするなど、この時点で様々なカスタマイズが可能だ。
今回は例として、IMEのMozcをインストールしてみる。
Fedoraでは何故かデフォルトIMEにAnthyが採用されている。なんで…。Anthyじゃ何かと不便であろうから、Mozcを入れてあげるのだ。
chroot後の環境で、普通に「dnf install ibus-mozc」をする。
割とあっさりインストールできてしまう。
この要領で、自分の好みや相手のニーズに合わせてカスタマイズしていけばよい。
終わったら、「exit」と入力してchroot環境を出て、再度exitしてコンソールを出る。
電源を切る。
諸々のカスタマイズが終わったら、電源ボタンを押してシャットダウンする。
実際に使ってみる
今度は、プリインストールされたFedoraを起動して、実際に初期設定をしてみる。
起動すると、このような少し見慣れない画面が表示される。

「ユーザーの作成」を押して、普段使用するユーザーを設定する。

例えば、僕の場合はこのようになる。
管理者権限の付与に関するチェックマークは、外さないように。先程rootを無効化したので、外すと管理が出来なくなってしまう。
終わったら、左上の「完了」を押し、右下の「設定の完了」を押して、初期設定は終了だ。

すると、ログイン画面が表示される。先程作成したユーザも正常に表示されている。
あとは、先程設定したパスワードでログインすればよい。

カスタマイズ時にインストールしたMozcも正常に表示される。
終わりに
Fedoraをコンピュータにプリインストールする方法について解説した。
Fedoraを実機にプリインストールするなんて事はおそらくそうそうないだろうが、仮想マシンであれば、予めこのプリインストール機能でベースとなる仮想マシンイメージを生成しておき、必要に応じて使い回すなどの用途も考えられる。
さほど沢山使う機能という訳でもないが、一応覚えておくと面白いかもしれない。