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

そのような不便を解消するため、OpenBSD LiveCDでは、各種設定値やホームディレクトリ上のデータなどをUSBメモリに保存し、次回ブート時に復帰させる機能を持っています。


USB flashの初期化

  1. LiveCDを立ち上げ、rootでログイン。
    (以下、USB flashが/dev/sd0として認識されているとして説明)
  2. 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などへの通常のパーティション/ファイルシステム作成と同じ。
  3. fdiskパーティションとしてOpenBSD (ID=0xA6)確保。
  4. disklabelを使って dパーティション を確保。
    # disklabel -E sd0
  5. aパーティションをフォーマットする。
    # newfs -b 4096 -f 512 -i 1024 /dev/rsd0d
    保存内容としてはシンボリックリンクやサイズの小さなファイルが多数含まれるため、ブロック/フラグメントサイズを最小にし、iノードの数も多めに設定。
  6. 保存用ディレクトリを作成
    # mount /dev/sd0d /mnt
    # mkdir /mnt/livecd-config
    # umount /dev/sd0d

以上で保存メディアの初期化は終了。

保存データの作成

  1. USB flashに保存するデータのメンテナンスは、/boottmp/usbfadm というスクリプトを使用する。
    # /boottmp/usbfadm
    Welcome to USB flash maintenance tool.
    
         Boot mode: manual
    
    Type ? for help.
    
    ?:? ->
  2. rescanコマンドを使用してUSB flashを認識させる
    ?:? -> rescan
    
    Rescanning USB flash
    Please make sure the device inserted.
    Then press ENTER -->
    
    USB flash memory found as sd0
  3. dsnコマンドを使用して保存するデータに名前を付ける。保存対象は、/mfs以下の全てのファイルなので、/etc以下の設定ファイルや/home以下のユーザデータなどが含まれる。
    名前を省略した場合、ホスト名がデフォルトの名前として使用される。
    /dev/sd0d:? -> dsn
    
    Enter data set name [nimbus5.localnet] -> emgproxy
    
    Now data set name is set to ``emgproxy''.
  4. 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
  5. 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
  6. データが無事に保存されているようなので、終了。
    /dev/sd0d:emgproxy -> bye
    
    #

データの復帰

保存したデータの復帰は、ブート時に行われる。 ブート方法の選択で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と違い、設定の入力は促されない。

データの退避

ブート後、任意の時点でデータを退避させることができる。データの退避は「保存データの作成」と同様 /boottmp/usbfadm コマンドで行う。データを退避させる場合は、新規保存の場合と比べ、以下の点が異なる;

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


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