【2019年版】Ubuntu系のOSを自作しよう ~カスタマイズ編~

BodhiBuilderを用いてオリジナルのOSを作成します。

自分の好きなデスクトップ環境やソフトウェアを入れてオリジナルのOSを作成しましょう。

実際に開発中のOS『SereneLinux』の実例を挙げながらわかりやすく解説していきます。

こちらでサイト新しく作り直してます。このサイトの情報は古いのでよければどうぞ。

カスタマイズしよう

実際にBasixをカスタマイズしていきましょう。

基本的なカスタマイズは以下のとおりです

非常に長くなるので頑張って読んでください...

カスタマイズくらいできるわ!って人は9から読んでください

8以降はOS作成だけのカスタマイズなので知らない人もいるかもしれません

目次

  1. デスクトップ環境の選択
  2. ディスプレイマネージャの選択
  3. テーマのインストール、設定
  4. アイコンのインストール、設定
  5. マウスカーソルのインストール、設定
  6. パッケージの削除
  7. パッケージのインストール
  8. デスクトップのカスタマイズ
  9. 設定ファイルの保存
  10. インストールスライドの変更
  11. インストーラーアイコンの変更
  12. OS名の変更
  13. Basix設定ファイルの削除

1.デスクトップ環境の選択

まずはデスクトップ環境を決めます

デスクトップ環境を決める上で重要になるのが「ターゲットにするユーザー」です

準備編で決めたことがここで重要になってきます

以下にそれぞれのデスクトップ環境の特徴を書いていくので好きなものを選んでください

重くはなりますが、複数のデスクトップ環境を搭載することもできます

デスクトップ環境 標準ディストリビューション 特徴 重さ
Gnome3 Ubuntu

操作が独特
洗練されている

やや重い
Xfce4 Xubuntu

標準のパネル設定はMac風になっている
細かいカスタマイズが可能
標準のテーマ、アイコンがダサい

軽い
KDE Kubuntu

非常に高機能で、美しいUI
比較的カスタマイズしにくい

Gnomeよりは軽い(かも)
Lxde Lubuntu
Basix

Windows風のUI
ものすごく軽量
標準のテーマ、アイコンが汚い

最も軽い
LxQt ---

Lxdeと非常に似ている
細かいカスタマイズが可能
標準のテーマ、アイコンがダサい

最も軽い
Unity Ubuntu(17.10まで)

Ubuntu版のGnomeと似たUI
殆どカスタマイズできない
今後サポートされるか不明

最も重い
Cinnamon ---

Windows風のUI
あまりカスタマイズできない
高機能で美しい

やや重い
Mate Ubuntu Mate

Windows風のUI
Gnome2(Ubuntu 10.10までのUI)からフォーク
シンプル

やや軽い

おすすめはXfce4です

軽量でカスタマイズ性が高いので自由に改造することができます

SereneLinuxもXfce4をベースにしています

今回はXfce4を選んだとして関節を勧めていこうと思います

2.ディスプレイマネージャの選択

ディスプレイマネージャとは、いわゆるログイン画面です

以下の様なものがあります

ディスプレイマネージャ 標準ディストリビューション 特徴 重さ
GDM3 Ubuntu

Gnomeのディスプレイマネージャ
洗練されており、美しいUI
カスタマイズしにくい

やや重い
LightDM Xubuntu、Lubuntu、Ubuntu(17.10まで)

非常に軽い
カスタマイズが可能
標準のテーマ、アイコンがダサい

軽い
KDM(開発停止) Kubuntu(KDE4以下)

リッチなUI
KDEのディスプレイマネージャ

---
SDDM LxQt, KDE Plasma 5

Qtのみで書かれている

---

今回は最も一般的なLightDMを使用していきます

(筆者はLightDMとGDMしか使用したこと無いのでSDDMはわからないです)

Greeterについて

LightDMには「Greeter」と呼ばれるテーマを適用させる機能があります(他のDMにもあるのかな?)

SereneLinuxではUbuntu17.10まで使われていた「unity-greeter」を適用させています

この「Unity-Greeter」はインストール後に手動で設定をする必要があります

参考にしたのは以下のサイトです

How to solve ‘Failed to start session’ with LightDM and Xfce

上のサイトと同じになってしまいますが、一応こちらでも解説しようと思います

  1. unity-greeterをインストールする
  2. これがないと始まりませんね

    $ sudo apt-get -y install unity-greeter
  3. 設定ファイルを削除する
  4. 以下のコマンドを実行して設定ファイルを削除します

    $ sudo rm /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf

  5. 新しい設定ファイルを作成する
  6. 以下のコマンドを実行するだけです

    $ sudo touch /usr/share/lightdm/lightdm.conf.d/50-xfce-greeter.conf

  7. 設定ファイルを記述する
  8. nanoを起動します

    $ sudo nano /usr/share/lightdm/lightdm.conf.d/50-xfce-greeter.conf

    以下のコードを書き込んで「Ctrl + O」を押して保存し、「Ctrl + X」で終了します

    [SeatDefaults]
    greeter-session=unity-greeter
    user-session=xfce
  9. 再起動します
  10. $ sudo reboot

テーマのインストール、設定

自分の好きなテーマを探す

自分の好きなテーマをネット上で探して自分のOSのデフォルトにしましょう

テーマのライセンスさえOKで、現在のGTK3に準拠しているテーマなら何でも適用できます

SereneLinuxでは「Numix」というテーマを採用しています

テーマによってディストリビューションの印象を大きく変えることになるので慎重にに選んでください

テーマは以下のサイトから探すと簡単に見つけることができます

GTK3のテーマをダウンロードしてください

自分の考えたユーザのターゲットに合ったテーマを選ぶといいでしょう

ライセンスをよく読み、再配布が可能かどうかを確かめてください

アイコンのインストール、設定

テーマを配置させます

ダウンロードしたテーマファイルを展開してください

Windowsで展開するといろいろと問題が起きる可能性があるので必ずLinux環境で展開を行ってください

展開したら、.themeの拡張子がついたファイルが入っているフォルダを以下のパスにRoot権限でコピーしてください

/usr/share/themes

コピーしたら設定から自分のテーマを設定します

アイコンの設定

テーマと同じサイトでアイコンを探し、ディレクトリにコピーするだけです

/usr/share/icons

(解説超手抜きです すみません もしかしたら細かく書くかもです)

マウスカーソルのインストール、設定

アイコンと同じ方法でインストール、設定できます

カーソルテーマはアイコンと同じディレクトリにコピーします

パッケージの削除

不要なパッケージを削除します

不要なパッケージが多いとisoサイズがどんどん大きくなってしまいますのでなるべく小さくします

インストールされているパッケージは以下のコマンドで確認できます

$ sudo dpkg -l | less

終了時は「q」キーを押します

Gnome系のパッケージは削除できるかもしれません

削除してよいかどうか分からなかったらパッケージ名で検索してみたり、Basixと比較してみると良いかもしれません

削除する際は「-y」で一気に削除するのではなく、削除されるパッケージを確認して確実に削除してください

また、削除の際は「remove」ではなく「purge」を使用してください

違いはというと、「remove」では設定ファイルは削除されませんが、「purge」では設定ファイルまで削除されます

必要以上の設定ファイルはごみになるだけなので削除します

パッケージを削除する際は以下のテンプレートを使用すると簡単です

$ sudo apt-get purge hogehoge

(hogehogeは各自で置き換えてください)

パッケージのインストール

自分の好きなパッケージをインストールします

標準のリポジトリになければ自分でリポジトリを追加します

おすすめのパッケージは「UbuntuCleaner」です

リポジトリを追加してインストールします

不要なパッケージを削除してくれるのでディストリビューション作成には必須です

デスクトップのカスタマイズ

デスクトップのカスタマイズを行います

Xfceの場合は自分の好きな位置にパネルを配置します

Xubuntuに標準で入っているアプリケーションメニューは以下のコマンドでインストールできます

$ sudo apt -y install xfce4-whiskermenu-plugin

Xfce以外のデスクチップ環境でもある程度はカスタマイズできると思いますが、Gnomeなどはプラグインを追加する程度だと思います

SereneLinuxでは、パネルを上に配置し、長さを変更、アイテムの配置を変更して「cairo-dock」をインストール、設定しています

UIはディストリビューションの顔になるのでしっかりと考える必要があります

設定ファイルの保存

いよいよ最終工程です

今まで設定した項目をisoに適用させるために保存します

BodhiBuilderでは/home以下はisoに入れないので.configといった設定ファイルも保存されません

そのために別のディレクトリに.configなどをコピーする必要があります

それでは順番に見ていきましょう

1.設定を変更したソフトを書き出す

設定を変更したソフトを書き出します

SereneLinuxでは、「Cairo-Dock」や「Xfce4」などが変更されています

2.変更されたソフトの設定ファイルを見つけ出す

ほとんどの設定ファイルはユーザディレクトリ下の.configディレクトリ内に保存されています

そのディレクトリを別のディレクトリにコピーしておきます

一部の設定ファイルはホームディレクトリ直下や、別の場所に保存されていることもあるのでインターネット上で情報を探すなりfindコマンドを実行するなりして設定ファイルを探し出してください

3.見つけ出した設定ファイルを、スケルトンディレクトリにコピーする

設定ファイルのディレクトリ構造をスケルトンディレクトリに再現します

Debian系のスケルトンディレクトリは以下のパスです

/etc/skel

上記のパスを~/(ホームディレクトリ)に見立てて.configなどのディレクトリを作成し、設定ファイルや設定フォルダをコピーします

新しいユーザやisoが作成される際はスケルトンディレクトリ内のデータが~/にコピーされます

例えば~/.config/hoge.confのファイルをスケルトンディレクトリにコピーしたかったら/etc/skel/.config/hoge.confにコピーします

変更されたソフトの設定ファイルをすべてコピーしないと正常に作動しないのでしっかりとコピーする必要があります

かといって、全部丸々コピーするのもよくありません

個人情報までisoに含んでしまうかもしれないのでスケルトンディレクトリにコピーするファイルやフォルダはしっかりと内容を見ておくことが大切です

この部分は非常に複雑なのでわからなければ筆者のDMもしくはメールに来てください

この作業は設定を変更するたびにし直す必要があります

インストールスライドの変更

インストール中に表示されるインストールスライドを変更します

インストールスライドはubiquity-slideshow-*という形式のパッケージで設定されています

なので、まずはそのパッケージを削除します

1.ディストリビューション標準のスライドを削除する

以下のコマンドを実行してインストールされているパッケージを見つけ出します

$ sudo dpkg -l | grep "ubiquiy-slideshow"

出てきたパッケージを以下のコマンドで削除します

$ sudo apt-get purge -y hogehoge

「hogehoge」を出てきたパッケージ名に置き換えてください

2.ベースになるパッケージをインストールする

以下のコマンドを実行してインストールします

$ sudo apt -y install ubiquity-slideshow-xubuntu

インストールされたスライドはHTMLやCSS、JavaScriptで書かれています

それらを編集して自分のディストリビューション用のスライドを作成していきます

スライドを編集する

スライドを編集します

スライドのデータは以下のパスに保存されています

/usr/share/ubiquiy-slideshow/slides/

スクリーンショットなどのファイル名は自由に変更できますが、htmlのファイル名は編集しないことをおすすめします

アイコン、スクリーンショットを準備してそれぞれのフォルダに保存したあとはhtmlを編集していきます

上のパスの直下にあるhtmlは英語で書きます

/usr/share/ubiquity-slideshow/l10n/ja/

こちらのパスに日本語のスライドを配置します

HTML内の記述のアイコンやスクリーンショットのファイル名と実際のファイル名を一緒にします

ある程度の文章が完成したら、HTMLの構文チェックを行います

ブラウザでは表示できても、構文ミスが有るとスライドでは正常に表示されないことがあります

私も当初はこれでかなり困りました

HTMLが完成したらCSSを書いていきます

CSSは実際にプレビューしながらの編集ができないのでかなり難しいですが頑張ってください

作成したファイルの権限を変更する

以下のコマンドでファイルの権限を変更します

$ sudo chown -R root:root /usr/share/ubiquity-slideshow/
$ sudo chmod -R 755 /usr/share/ubiquity-slideshow/

コマンドの意味を簡単に解説すると、1行目で/usr/share/ubiquity-slideshow/以下のすべてのファイルの所有者と所有グループをrootにしています

2行目では/usr/share/ubiquity-slideshow/以下のファイルすべてのパーミッションを変更しています

所有者は「読み取り、書き込み、実行」のすべてを行うことができて、所有グループとその他の人は「読み取り、実行」ができるようにしています

パーミッションの設定を間違えると正常に表示されなかったり自由に改変されてしまったりします

インストールスライドは何度のisoを作成して実際に確認するのが一番です

インストーラアイコンを変更する

ISOでライブ起動をした時に、デスクトップに「~~をインストールする」というアイコンが表示されます

このアイコンがデフォルトのままだとBodhiLinuxのままになってしまいます

このアイコンを変更していきましょう

変更方法は簡単です

アイコンにしたいファイルを用意し、以下のパスにコピーします

          /usr/share/icons/bbinstall.png
/usr/share/icons/bbinstall_previous.png
        

同じファイルを2つにコピーします

これだけでアイコンが変更されます

なぜかシンボリックリンクでは正常にできませんでした

ハードリンクならうまくいくかもしれません

OS名の変更

OSの名前を変更します

この変更はGrubやBodhiBuilderなど、全てに適用されます

OS名などは以下のファイルに情報が記載されています

/usr/lib/os-release

このファイルの1箇所を修正すれば大丈夫です

変更可能な変数は「PRETTY_NAME」、「HOME_URL」「SUPPORT_URL」です

実際に変更するのは「PRETTY_NAME」だけで大丈夫です

自分でディストリビューションのフォーラムなどを作るのであればそのURLを入力してください

上の変数以外は変更しないでください

リポジトリ追加やインストールができなくなります

参考に、SereneLinuxのソースを載せておきます

NAME="Ubuntu"
VERSION="18.04.2 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="SereneLinux_19Q1.7.1_R1"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
 UBUNTU_CODENAME=bionic

Basixの独自ファイルを削除する

ここの操作は詳しい人のみ行ってください

Basixは独自に/etc/basixに設定ファイルを持っています

それを削除しないと上のOS名などが上書きされてしまいます

しかしPlymouthテーマ(起動スプラッシュ)などのデータも入っているためうかつに触ることはできません

(これ以降はあとで書きます...)

isoをビルドする

いよいよisoビルドです

今までお疲れ様でした

iso作成は次のページで解説しています

ISO作成編へ行く