OpenBSD LiveCDはCD-ROM単体で運用することができますが、電源を切ると mfs (メモリファイルシステム) 上のデータはすべて消えてしまいます。また、ネットワークなどの設定値は、起動時に毎回手で入力する必要があります。

そのような不便を解消するため、OpenBSD LiveCDでは、各種設定値やホームディレクトリ上のデータなどをUSBメモリに保存し、次回ブート時に復帰させる機能を持っています。
----
#contents
*USB flashの初期化 [#y3341308]
*データ保存用USBメモリの作成 [#y3341308]
+LiveCDを立ち上げ、rootでログイン。~
(以下、USB flashが/dev/sd0として認識されているとして説明)
+fdiskを実行
 # fdisk -e sd0
>(註)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'')ことになる。
<
これ以降はHDDなどへの通常のパーティション/ファイルシステム作成と同じ。
+fdiskパーティションとしてOpenBSD (ID=0xA6)確保。
+disklabelを使って ''dパーティション'' を確保。
 # disklabel -E sd0
+dパーティションをフォーマットする。
 # newfs -b 4096 -f 512 -i 1024 /dev/rsd0d
保存容としてはシンボリックリンクやサイズの小さなファイルが多数含まれるため、ブロック/フラグメントサイズを最小にし、iノードの数も多めに設定。
+保存用ディレクトリを作成
 # mount /dev/sd0d /mnt
 # mkdir /mnt/livecd-config
 # umount /dev/sd0d

以上で保存メディアの初期化は終了。
*保存データの作成 [#j0bbb5be]
+USB flashに保存するデータのメンテナンスは、/boottmp/usbfadm というスクリプトを使用する。
+USBメモリ管理ユティリティusbfadmを起動し、newsysコマンドを実行する。
 # /boottmp/usbfadm
 
 Welcome to usbfadm.
 USB flash drive maintenance tool for FuguIta
 
      Boot mode: manual
 
 Type ? for help.
 
 ? : ? --> newsys
初期化を行うUSBメモリを着していることを確認して、ENTERを押下。
 Please make sure the device inserted.
 Then press ENTER --> 
初期化を行うUSBメモリのデバイス名を力する。
 ==== FYI: sd[0-9] on syslog ================================
      1  sd0 at scsibus1 targ 1 lun 0: <TOSHIBA, TransMemory, PMAP>
      2  sd0: 961MB, 512 bytes/sec, 1968128 sec total
      3  sd1 at scsibus2 targ 1 lun 0: <Generic, USB CF Reader, 0.00>
      4  sd1: drive offline
      5  sd2 at scsibus2 targ 1 lun 1: <Generic, USB SD Reader, 0.00>
      6  sd2: drive offline
      7  sd3 at scsibus2 targ 1 lun 2: <Generic, Mini SD Reader, 0.00>
      8  sd3: drive offline
      9  sd4 at scsibus2 targ 1 lun 3: <Generic, USB MS Reader, 0.00>
     10  sd4: drive offline
     11  sd5 at scsibus2 targ 1 lun 4: <Generic, USB SM Reader, 0.00>
     12  sd5: 62MB, 512 bytes/sec, 128000 sec total
 ============================================================
 Enter name of device which FuguIta will be installed --> sd0
USBメモリをデータ保存専用として作成する場合はnを力((yを入力した場合は、河豚板のシステムも転送され、河豚板の起動とデータ保存の両方に対応したUSBメモリが作成される))。
 Will you make this USB flash drive bootable? [y/n] -> n
 
 ========================================
 = Setting up partitions
 =
 Writing MBR at offset 0.
 ~以下略~
*データの保存 [#j0bbb5be]
+USBメモリに保存するデータのメンテナンスにも、/boottmp/usbfadm を使用する。
 # /boottmp/usbfadm
 Welcome to USB flash maintenance tool.
 
      Boot mode: manual
 
 Type ? for help.
 
 ?:? ->
+rescanコマンドを使用してUSB flashを認識させる
 ?:? -> rescan
+targetコマンドを使用して保存のUSBメモリを指定する。
 ?:? -> target
 
 Rescanning USB flash
 Please make sure the device inserted.
 Then press ENTER -->
 
 USB flash memory found as sd0
+dsnコマンドを使用して保存するデータに名前を付ける。保存対象は、/mfs以下のてのファイルなので、/etc以下の設定ファイルや/home以下のユーザデータなどが含まれる。~
+saveasコマンドを使用して保存するデータに名前を付ける。保存対象は、/mfs以下のてのファイルなので、/etc以下の設定ファイルや/home以下のユーザデータなどが含まれる。~
名前を省略した場合、ホスト名がデフォルトの名前として使用される。
 /dev/sd0d:? -> dsn
 /dev/sd0d:? -> saveas
 
 Enter data set name [nimbus5.localnet] -> emgproxy
 
 Now data set name is set to ``emgproxy''.
+syncコマンドを実行し、データ保存を実行する。
 /dev/sd0d: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
+infoコマンドで、保存されたデータの情報を表示させ、確認してみる。
 /dev/sd0d:emgproxy -> info
 /dev/sd0d : emgproxy -> info
 
 
 Filesystem     Size    Used   Avail Capacity  Mounted on
 /dev/sd0d      218M   18.9M    179M   9.6%    /mnt
 
 scanning...
 
 18.9M   emgproxy
+データが無事に保存されているようなので、終了。
 /dev/sd0d:emgproxy -> bye
 /dev/sd0d : emgproxy -> bye
 
 #
*データの復帰 [#aeabe7fe]
保存したデータの復帰は、ブート時に行われる。
ブート方法の選択で''2: retrieve user data from USB flash memory''を選択
ブート方法の選択で''3: retrieve user data from USB flash memory''を選択
 Select boot mode;
    0: clean boot
    1: clean boot (lower memory, faster boot)
    2: retrieve user data from USB flash memory
    3: retrieve user data from floppy disk
    4: interactive shell for debugging
 -->2
    2: clean boot (everything on mfs)
    3: retrieve user data from USB flash memory
    4: retrieve user data from floppy disk
    5: interactive shell for debugging
 -->3
 USB flash memory found as sd0
 available configs;
 
 emgproxy
 
 your config name? -> emgproxy
 Copying files from flash to mfs ... done
保存したデータ名を指定すると、退避させていたデータを復帰したあと、ブートが続行される。各種パラメータ等もすべて設定済みであるため、manual modeと違い、設定の入力は促されない。
*データの退避 [#x10d6dfc]
ブート後、任意の時点でデータを退避させることができる。データの退避は「保存データの作成」と同様 /boottmp/usbfadm コマンドで行う。データを退避させる場合は、新規保存の場合と比べ、以下の点が異なる;
-変更があったファイルのみ保存が行われる。
-/mfs上のファイルを消去した場合、USB flash上のファイルも消去される。
-/mfs上のファイルを消去した場合、USBメモリ上のファイルも消去される。
-デバイス名と保存データ名称はあらかじめわかっているので設定する必要はなく、いきなりsyncコマンドを実行してよい。
-別名を付けて保存する場合はdsnコマンドで名前設定後、syncを実行。
-別名を付けて保存する場合はsaveasコマンドで名前設定後、syncを実行。

また、シャットダウン時、データの退避は自動的には行われないので、手動で実行する必要がある。
----
[[LiveCD]]に戻る


Front page   New Page list Search Recent changes   Help   RSS of recent changes