#navi(LiveCD:)
 *LiveCD/USBメモリへのデータ保存 [#j114a458]
 OpenBSD LiveCDはCD-ROM単体で運用することができますが、電源を切ると mfs (メモリファイルシステム) 上のデータはすべて消えてしまいます。また、ネットワークなどの設定値は、起動時に毎回手で入力する必要があります。
 
 そのような不便を解消するため、OpenBSD LiveCDでは、各種設定値やホームディレクトリ上のデータなどをUSBメモリに保存し、次回ブート時に復帰させる機能を持っています。
 ----
 #contents
 *USB flashの初期化 [#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
 +aパーティションをフォーマットする。
  # 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 というスクリプトを使用する。
  # /boottmp/usbfadm
  Welcome to USB flash maintenance tool.
  
       Boot mode: manual
  
  Type ? for help.
  
  ?:? ->
 +rescanコマンドを使用してUSB flashを認識させる
  ?:? -> rescan
  
  Rescanning USB flash
  Please make sure the device inserted.
  Then press ENTER -->
  
  USB flash memory found as sd0
 +dsnコマンドを使用して保存するデータに名前を付ける。保存対象は、/mfs以下の全てのファイルなので、/etc以下の設定ファイルや/home以下のユーザデータなどが含まれる。~
 名前を省略した場合、ホスト名がデフォルトの名前として使用される。
  /dev/sd0d:? -> dsn
  
  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
  
  
  Filesystem     Size    Used   Avail Capacity  Mounted on
  /dev/sd0d      218M   18.9M    179M   9.6%    /mnt
  
  scanning...
  
  18.9M   emgproxy
 +データが無事に保存されているようなので、終了。
  /dev/sd0d:emgproxy -> bye
  
  #
 *データの復帰 [#aeabe7fe]
 保存したデータの復帰は、ブート時に行われる。
 ブート方法の選択で''2: 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
  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上のファイルも消去される。
 -デバイス名と保存データ名称はあらかじめわかっているので設定する必要はなく、いきなりsyncコマンドを実行してよい。
 -別名を付けて保存する場合はdsnコマンドで名前設定後、syncを実行。
 
 また、シャットダウン時、データの退避は自動的には行われないので、手動で実行する必要がある。
 #navi(:LiveCD)
 
Top Index Search Recent Backups  Help  RSS