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

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

$
0
0

bogamp.hatenablog.com
上の記事の続き。
Debian Liveシステムは、読み取り専用のSquashFSをOverlayfsでマウントし、変更点をメモリ(tmpfs)上に記録するという構成になっている。起動後のすべての変更はメモリ上に記録されるため、一度シャットダウンしてしまうと変更は消えてしまう。
そこで、変更点を記録しておきたい場合に、persistenceという機能が利用できるようになっている。

persistenceの有効化

lb configの実行時、--bootappend-liveオプションでパラメータにpersistenceを追加するだけでよい。
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 persistence"

persistence領域の作成

パーティションの作成

ISOを書き込んだUSBの余った領域上に作成できる。
sudo fdisk --wipe=never /dev/sdb

(--wipe=neverは、すでに書き込んだISOの署名を削除しないようにするオプション。警告が出るがこれでうまくいくみたい)
fdiskの使い方については省略する。

ファイルシステムの作成

sudo mkfs.ext4 -L persistence /dev/sdb3

ラベルを「persistence」にする必要がある。

persistence.confの作成

sudo mount /dev/sdb3 /mnt
echo"/home">> /mnt/persistence.conf
echo"/var/cache/apt">> /mnt/persistence.conf

作成したファイルシステムの一番上にpersistence.confという名前のファイルを作成し、保存したいディレクトリ名を書く。

ディレクトリ名の右にunionと書くと、変更点だけを記録してくれる。

echo"/usr union">> /mnt/persistence.conf

persistence専用のディレクトリを作成することもできる。

echo"/persistence">> /mnt/persistence.conf

暗号化persistenceの作成

persistenceを作成するだけなら上の手順で終わりだが、LUKSによる領域の暗号化をするにはもう少し手間が必要になる。

パラメータの追加

persistence以外にpersistence-encryption=luksを追加する必要がある。
persistence-media=removableも追加すると、マウント対象を付け外しするメディア上のパーティションに限定できる(これが無いと、LUKS暗号化したOSをインストールしているPCで起動しようとするとき、そちらもマウントしようとしてしまう)
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 persistence persistence-encryption=luks persistence-media=removable"

パッケージの追加

ブート時の自動マウントには、cryptsetupの他にcryptsetup-initramfsをLiveシステムに追加する必要があるので注意。

LUKS領域の作成

作成したパーティションをLUKSでフォーマットする。
sudo cryptsetup luksFormat /dev/sdb3

ファイルシステムの作成、persistence.confの作成

あとは上と同じで良い。
sudo cryptsetup open /dev/sdb3 sdb3
sudo mkfs.ext4 -L persistence /dev/mapper/sdb3
sudo mount /dev/mapper/sdb3 /mnt
echo"/ union">> /mnt/persistence.conf

これで起動時にパスワードプロンプトが表示されるようになる。
なお、パスワードの入力はキーボードレイアウトの変更より前に実行されるため、パスワードに記号を含めた場合、US配列で入力する必要がある…

参考リンク

https://live-team.pages.debian.net/live-manual/html/live-manual/customizing-run-time-behaviours.ja.html

続き

bogamp.hatenablog.com

Viewing all articles
Browse latest Browse all 39

Trending Articles