OpenBSD LiveCDはCD-ROM単体で使用することができるが、電源を切ると mfs 上のデータはすべて消えてしまいます。また、ネットワークなどの設定値は毎回手で入力する必要があります。
そのような不便を解消するため、OpenBSD LiveCDでは、各種設定値やホームディレクトリ上のデータなどをUSBメモリに保存し、次回ブート時に復帰させる機能を持っています。
# fdisk -e sd0
これ以降はHDDなどへの通常のパーティション/ファイルシステム作成と同じ。(註)USB flashによっては、BIOSからディスクジオメトリ情報を取得できず、その結果、fdiskが正常に実行できない場合がある。そのときはシリンダ/ヘッド/セクタの各数値を明示的に指定してfdiskを実行すればよい。例えばdmesgの出力から、目的のUSB flashがデバイスsd0でサイズが248MBと認識されていたとすると以下のようになる;
# fdisk -c 248 -h 64 -s 16 -e sd0決め打ちでヘッド数を64, 1トラックあたりのセクタ数を16とすれば、1セクタ当たり512バイトであるから、
64 * 16 * 512 = 1024 * 1024
なので1トラックあたり丁度1メガバイトとなる。よってメガバイト単位での容量をシリンダ数として指定すれば良い(上の例の-c 248)ことになる。
# disklabel -E sd0
# newfs -b 4096 -f 512 -i 1024 /dev/rsd0a保存内容としてはシンボリックリンクやサイズの小さなファイルが多数含まれるため、ブロック/フラグメントサイズを最小にし、iノードの数も多めに設定。
# mount /dev/sd0a /mnt # mkdir /mnt/livecd-config # umount /dev/sd0a
以上で保存メディアの初期化は終了。
# /boottmp/usbfadm Welcome to USB flash maintenance tool. Boot mode: manual Type ? for help. ?:? ->
?:? -> rescan Rescanning USB flash Please make sure the device inserted. Then press ENTER --> USB flash memory found as sd0
/dev/sd0a:? -> dsn Enter data set name [nimbus5.localnet] -> emgproxy Now data set name is set to ``emgproxy''.
/dev/sd0a:emgproxy -> sync Sync current mfs as emgproxy, OK? -> y building file list ... done created directory /mnt/livecd-config/emgproxy ./ etc/ etc/bgpd.conf etc/boot.conf : : var/yp/Makefile.yp var/yp/Makefile.yp.dist var/yp/README sent 16455591 bytes received 232568 bytes 180412.53 bytes/sec total size is 15492096 speedup is 0.93
/dev/sd0a:emgproxy -> info Filesystem Size Used Avail Capacity Mounted on /dev/sd0a 218M 99.6M 107M 48% /mnt scanning... 18.9M emgproxy
/dev/sd0a:emgproxy -> bye #
保存したデータの復帰は、ブート時に行われる。 ブート方法の選択で1: with user dataを選択
Select boot method; 0: manual setup (CD-ROM only) 1: with user data (copy from USB flash) -->1 USB flash memory found as sd0 avairable configs; emgproxy your config name? -> emgproxy Copying files from flash to mfs ... done
保存したデータ名を指定すると、退避させていたデータを復帰したあと、ブートが続行される。各種パラメータ等もすべて設定済みであるため、manual modeと違い、設定の入力は促されない。
ブート後、任意の時点でデータを退避させることができる。データの退避は「保存データの作成」と同様 /boottmp/usbfadm コマンドで行う。データを退避させる場合は、新規保存の場合と比べ、以下の点が異なる;
また、シャットダウン時、退避は自動的には行われないので、手動で実行する必要がある。