Quantcast
Channel: bogamp’s blog
Viewing all articles
Browse latest Browse all 40

Debian live-buildを用いたカスタムlive USBの作成①

$
0
0

live-buildDebian公式のスクリプト集。これを利用して自分好みのパッケージをインストールしたり、設定を変更したりしたISOを作ることができる(USBに書き込めばLive USBになる)。

手順

Debianシステム上で実行すること。Debian以外でも実行できるらしい。

1. live-buildのインストール、作業ディレクトリの作成

sudo apt install live-build
mkdir live-build
cd live-build

2. 前準備

lb config --distribution bookworm --architecture amd64 --archive-areas"main contrib non-free non-free-firmware"--bootappend-live"boot=live components locales=ja_JP.UTF-8 keyboard-layouts=jp"

このコマンドで、カレントディレクトリ下に必要なディレクトリやファイルが作成される(オプションについては後述)。

3. カスタム

この段階で、好みでパッケージを追加したり設定を変更したりする。
上のコマンドで作成されたconfig/が設定用ディレクトリで、基本的にここで設定の変更を行うことになる。

パッケージの追加

基本的には、config/package-lists/下にテキストファイルを作成し、インストールしたいパッケージ名を一行ずつ書いていけばよい。テキストファイルの末尾には.list.chrootをつける。
(GUI(XFCE)、ネットワークマネージャ、フォント、日本語入力を追加した一例)
config/package-lists/custom-packages.list.chroot
xfce4
xfce4-goodies
lightdm
network-manager
fonts-noto
fcitx5
fcitx5-mozc

また、以下の一行でシステムの基本パッケージがインストールされる。必須ではないが、指定しておいたほうが良い。
config/package-lists/standard-packages.list.chroot

! Packages Priority standard

また、Debianのレポジトリにないパッケージをインストールしたい場合、config/packages.chroot/の下に.debファイルを置いてもインストールされる。この場合、.debファイルは命名規則に従っている必要があるので注意すること(従っていない場合、そのファイルに対してdpkg-nameコマンドをオプションなしで実行することで正しい名前に変換される)。

ファイルの追加

基本的には、config/includes.chroot_after_packages/下に置いておけばよい。((マニュアルにはconfig/includes.chroot/と書いてあるのだが、現在はconfig/includes.chroot_before_packages/config/includes.chroot_after_packages/に分離されている))
ディレクトリ構造が保存されるので、配置したい場所に置いておく。(たとえば、config/includes.croot_after_packages/var/www/下に置いたファイルは、作成されたlive OSの/var/www/下に配置される )
単体ファイルで動く移植性のあるプログラムなら、config/includes.croot_after_packages/usr/local/bin/に実行ファイルを置いてインストールすることも可能。
注意点として、ログインユーザーはこの時点ではまだ作成されていないという点には気をつけること(ブート時に作成される)。ユーザーのホームディレクトリに置きたいファイルは、config/includes.chroot_after_packages/etc/skel/下に配置しておけばユーザー作成時にコピーされる。

フックの追加

config/hooks/live/下にスクリプトを置いておけば、ビルド時に実行される(パッケージのインストール後に実行されるので、パッケージの設定の変更なども可能)。ファイル名の末尾は.hook.chrootとし、ファイルに実行権限が必要。

4. ビルド

sudo lb build

lb configを実行したのと同じディレクトリから実行すること。
特に問題が発生しなければ、これでISOなどのファイルが作成される。
デフォルトのユーザ名は「user」、デフォルトのパスワードは「live」に設定される。

その他

ビルド前に戻る

sudo lb clean

これでsudo lb buildで生成された諸々を片付けてくれる(ダウンロードしたパッケージのキャッシュは残す)。カスタムしたconfig/下の変更は消えない。
lb cleanの実行後はlb configを再度実行すること。
キャッシュも消したいなら、

sudo lb clean --purge

lb configのオプションについて

(上で実行したコマンド)
lb config --distribution bookworm --architecture amd64 --archive-areas"main contrib non-free non-free-firmware"--bootappend-live"boot=live components locales=ja_JP.UTF-8 keyboard-layouts=jp"

・--distribution bookworm
Debianのバージョン指定。
・--architecture amd64
アーキテクチャ
・--archive-areas "main contrib non-free non-free-firmware"
Debianでは、ライセンスの都合でレポジトリが分かれている。デフォルトではmainからしかダウンロードできないのだが、これではノートPCのWi-Fiなどが使えないなど、不便なことが起こる可能性が高いので、contrib、non-free、non-free-firmwareまで追加しておく(Debianの哲学には反しているが……)
・--bootappend-live "boot=live components locales=ja_JP.UTF-8 keyboard-layouts=jp splash quiet"
--bootappend-liveオプションで、パラメータが指定できる。boot=live componentsは必須で、それに続けて調整したいパラメータを指定する。ここではキーボードレイアウトとロケールを日本向けに変更してみた。(ちなみにこれは起動時にブートローダからカーネルに渡されるパラメータで、起動後にcat /proc/cmdlineで確認することができる。splashやquietを渡せるのもそのため)


※パッケージダウンロードのミラーを指定することもできる。ビルド時のミラーを変更するときは、--mirror-bootstrap URL--mirror-chroot-security URL、ISO内のミラーを変更するときは--mirror-binary URL--mirror-binary-security URLで指定する。

注意点

試してみたとき、依存関係やキャッシュの関係でsudo lb buildの実行が何度も失敗した。全部消してやりなおしてみたら上手く行ったので、困ったらsudo lb clean --purgeを実行してみると良いかもしれない。

参考リンク

・公式ドキュメント(日本語)
https://live-team.pages.debian.net/live-manual/html/live-manual/toc.ja.html
5章〜12章。かなり詳しく解説されているのでまず目を通すべき。

・その他
自分だけの Linux Liveイメージを作る - QG Tech Blog
Debian Live Build を使用したカスタムインストールISOの作成 - 気まぐれ気紛れ草紙

続き

bogamp.hatenablog.com

Viewing all articles
Browse latest Browse all 40

Trending Articles