永続的に使えるLive Debian - HondaLab/Robot-Intelligence GitHub Wiki

書き込み可能な Live DebianをUSBメモリにつくる

Live Debianのisoファイル をddでUSBメモリに焼き付けると,boot可能なUSBメモリがつくれます. ためしに使ってみたり,同じOS環境をいくつも複製したりするには便利です.

しかし,設定を変更したり追加ファイルを作ったりしても記憶してくれません. つまり再起動するとそれらの変更は消えてしまいます. 基本的にDebianを含めて,Live Linuxには,このように永続性(persistence)がない 仕様のようです. CD-RやDVD-Rのような読み取り専用のメディアを使うことを前提にしているので, 永続性のない仕様になっているのかもしれません.

これでは本格的に使おうとしたときに,起動のごとに毎回同じ設定をやり直さなければならない ので不便です. 新しいファイルを作って保存しても,電源を切ると消えてしまうということです.

UNetbootin

UNetbootinという書き込みツールをつかって,UbuntuをUSBメモリにかきこむと, 永続的に使える領域を確保できるとのことで,試してみました. 残念ながらUNetbootinだけでは永続的なLive Linuxは作成に失敗しましたが,様々なOSをネットから ダウンロードして自動インストールしてくれるので,なかなか便利です. ローカルにダウンロードしてあるisoファイルからもインストールできます.

persistenceという名前のパーティションをOSを入れるパーティションとは別にUSBメモリの中に 作っておけば,永続的なLive Debianをつくることができたので,その方法を下記に示します.

FAT32とext4のパーティションをつくる

UNetbootinはFAT32のパーティションにlive-debianを書き込もうとします. UNetbootinを使う前にfdiskで

/dev/sdx1 : FAT32
/dev/sdx2 : ext4

というパーティションを準備しておきます.

mkfs.vfat, mkfs.ext4 を使って

# mkfs.vfat -v -F 32 /dev/sdx1
# mkfs.ext4 /dev/sdx2 -L persistence

を実行します. ここでは,persistenceパーテションを/dev/sdxとしましたが,各自の環境状態にあわせて /dev/sdbなどと置き換えて読んでください.

/dev/sdx2をマウントしてpersistence.confファイルに "/ union"と書き込みます.

mount /dev/sdx2 /mnt 
echo "/ union" > /mnt/persistence.conf 

起動オプションにpersistenceを加える

起動OSを選択するGRUBの時点でeを押して編集モードに入ります. 起動オプションにpersistenceを加えます.

linux  /live/vmlinuz-5.10.0-9-amd64 boot=live components quiet persistence splash "${loopback}"

このように起動オプションの編集を毎回おこなうのは面倒なので、 /run/live/persistence/sdx1/boot/grub/grub.cfg 内の1番上にあるmenuentryを

linux  /live/vmlinuz-5.10.0-9-amd64 boot=live components locales=ja_JP.UTF-8 quiet persistence splash "${loopback}"

と書き換えておけば, persistenceと同時に日本語環境をデフォルト起動できます.

参考