【2019年版】Ubuntu系のOSを自作しよう ~ISO作成編~

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

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

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

ISO作成について

いよいよISOを作成していきます

ISO作成には『BodhiBuilder』というフリーソフトを使用していきます

ですが、このソフト実はバグがあり正常にISOを作成することができません

このサイトはそのバグ回避の解説を行っている唯一のサイトです

Basixに付属しているBodhiBuilderを削除する

Basixに付属しているBodhiBuilderは少しバージョンが違い、正常に動作しない可能性があるので削除します

以下のコマンドで簡単に削除できます

$ sudo apt-get -y purge bodhibuilder
$ sudo apt-get -y auoremove

SereneLinuxのリポジトリからBodhiBuilderをインストールする

SereneLinuxのリポジトリでバグを修正済みのBodhiBuilderを配布しています

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

以下のコマンドでリポジトリ追加→アップデート→BodhiBuilderのインストールまで全て行ってくれます

wget -qO - https://apt.yuki-lab.xyz/serene.key  | sudo apt-key add - ; sudo apt-add-repository "deb https://apt.yuki-lab.xyz/  bionic main" ; sudo apt update ; sudo apt install bodhibuilder

2019年4月28日現在、「serenelinux-base」パッケージに不具合が生じており、正常に追加、インストールできません

公式バージョンのBodhiBuilderをインストールする

以下の情報はSereneTeamのリポジトリが使用できない場合にのみ利用してください

パッケージをダウンロードする

SOURCEFORGE からダウンロードします

緑色のでっかい「ダウンロード」ボタンでダウンロードできます

Ubuntu16.04などの過去のバージョンのUbuntuを使用している人はそれに合ったバージョンをダウンロードしてください

ダウンロードしたファイルをデスクトップに移動させて、名前を「bodhibuilder.deb」に変更してください

パッケージをインストールする

パッケージをインストールします

以下のコマンドを実行すれば大丈夫です

$ sudo apt-get update && sudo apt-get -y upgrade
$ sudo apt-get -y install `find ~/ -name "bodhibuilder.deb"`

細かいコマンドの説明は省きますが、一行目でパッケージリストの同期とパッケージの更新を行い、二行目でユーザディレクトリ内を検索して「bodhibuilder.deb」のパスを取得してaptに渡してインストールしています

途中で設定ファイルがウンタラカンタラという質問が何回か来ますが基本的に「N」と入力してエンターキーを押せば大丈夫です

設定ファイルとかにこだわりがある人は各自で設定お願いします

なお、このコマンドはダウンロードしたファイルの名前を「bodhibuilder.deb」に変更しておかないとエラーが出て正常に実行できません

$ sudo rm `find ~/ -name "bodhibuilder.deb"`

でダウンロードしたファイルを削除できます(インストール後は使わないので)

BodhiBuilderを修正して動作するようにする

このサイトで一番の重要ポイントです

bodhibuilderは、ISOを作成するスクリプトとGUIで分離しています

今回はBodhibuilderのISO作成のスクリプトの方をいじっていきます

まず、Root権限でテキストエディターを起動します

$ gksu leafpad /usr/bin/bodhibuilder

出てきたウィンドウにパスワードを入力するとbodhibuilderのスクリプトを開いたテキストエディターが起動するはずです

この中には「シェルスクリプト」という言語でISO作成の内容が書かれています

難しいので理解する必要はないです

まず、LeafPadの設定を変更して行数を表示させましょう

「オプション」→「行番号を表示」にチェックを入れます

行数の表示設定

そしたら、913行目を削除して以下のコードに置き換えます(失敗しないようにバックアップを取ることをおすすめします)

VESAMENU=`find /usr/lib/syslinux/modules/bios/ -name "vesamenu.c32" | grep "vesamenu.c32"` 

(2019/05/07追記)938行目だったという報告もありました
編集する際は以下のコードから始まる部分を編集してください

VESAMENU=

(追記終わり)

その後、「ファイル」→「保存」で保存して閉じます

BodhiBuilderを実行してISOを作成する

いよいよスクリプトを走らせます

ターミナルエミュレーターを起動して以下のコマンドで起動します

$ gksu bodhibuilder-gtk

「OK」をクリックします

bodhibuilder起動直後

「Settings」タブに移動して、それぞれの項目を入力します

「Username」には、インストール時と同じ名前を入力してください

「CD Label」では、32文字以内で入力してください

それ以上はエラーになります

「Squashfs options」には「-no-recovery -always-use-fragments -b 1M -no-duplicates」と入力してください

(筆者もこれの意味はわかっていませんがBasixではこのオプションがつけられていたらしいです)

あとは自由で構いません

設定が終わったら、「Actions」タブに戻って「Dist」ボタンをクリックし、ISO作成を開始します

すると、Outputタブへ自動で移動し、いろいろログが出力されます

ISO作成が終わるとまたダイアログが出るので、それまで待ちます

作成中はCPUをたくさん使用するので注意してください

作成したISOの場所

作成が終わったら、ISOを確認しましょう

初期設定のままなら下のパスに保存されています

/home/bodhibuilder/bodhibuilder

このパスの中に.isoや.md5、.sha256などがあるはずです

この3つのファイルを配布するので、クラウドサービスなどを使うなり共有フォルダを使うなりしてホスト環境(仮想マシンの外)に持ってきておいてください

起動チェック

ISOが起動するか確かめましょう

最初に準備した実験用DVD-RWにISOを書き込んで実機で実験するか、仮想マシンで動作させます

準備編 の「仮想環境にBasixをインストールする」と同じ方法で仮想マシンにインストールします

自分の思ったとおりのインストールスライドや、アイコン、テーマになっていれば成功です

うまくできなかったら、 カスタマイズ編 で確認するか、私のTwitter( トップページ )の私のTwitterのDMに来てください

配布編へ続く

自分用のISOを作った人はこれで終わりですね。お疲れ様でした

配布するためのOSを作った人は一番最後の「OSを配布する」という作業が残っています^^;

それでは、また次回。

配布編へ行く