EBUGの原稿
*OpenBSDでLive CDをつくる [#t51994f1]
**Why OpenBSD?, Why Live CD? [#e2ba0579]
-Other BSD / Linux では?
--Linuxでも昔1FDとかいじっていた。
--一番慣れたBSD → make releaseが昂じてやってみたくなった
--OpenBSDには定番がない
---Linux ... FrozenTech's LiveCD List によると295種類
---FreeBSD ... FreeSBIE
---NetBSD ... pkgsrc - sysutils/mklivecd
---以前 OpenBSD を使った 1CD snortがあったがobsolete
// -Live CDの利点
// --利用の容易さ
**Boot手順の概要 [#e2b049ba]
// |BIOS|
// CENTER:↓
// ||HDD|FD|CD|
// |boot&br;sector|MBR|1st sector|El-Torito|
// |1st stage&br;boot|PBR(biosboot)|biosboot|cdbr|
// |2nd stage&br;boot|/boot|/boot|/cdboot|
// CENTER:↓
// |kernel|/bsd|
// |~|mount root fs|
// CENTER:↓
// |user&br;land|/sbin/init|
// |~|/etc/rc|
// |~|(fork gettys, etc...)|
>~
#ref(BootSeq.gif,center)
**方針 [#ke7c2074]
-実環境をなるべく弄らないで載せたい。
--常用環境を持ち歩きたい
--実環境のバックアップシステム
**実際 [#t0c1505a]
***アプローチ1 [#b56439b6]
-CD-ROMを直接マウントする。
--kernel config~
 config bsd root on cd0c
--書き込み可能な領域の確保 ... union FSを使ってCDにmfsを被せる。
--CDの作成手順
+++vnデバイス上にターゲットシステムのFile Tree作成
 dd if=/dev/zero of=./rdroot.img bs=512 count=3800
 mkdir ./rdroot
 vnconfig svnd0 ./rdroot.img
 disklabel -w rsvnd0 rdroot
 newfs /dev/rsvnd0a
 mount /dev/svnd0a ./rdroot
+++ISOイメージ作成~
 mkhybrid -R -o ISO-IMAGE -b BOOT-RECORD -c BOOT-CATALOG TREE-DIR
+++CD-ROM書込~
 cdrecord dev=/dev/rcd0c ISO-IMAGE
-欠点
--「実環境をなるべくいじらない」にちょっと反する;
---mfs + union mount の準備のため、ターゲットシステムでの/etc/rcの改造が必要
--Union FSが不安定 (OpenBSD 3.8 でレイヤー系のファイルシステムは削除されてしまった)
***アプローチ2 [#w2b10a7b]
-rd (RAM Disk)デバイスをrootとしてマウント~
インストーラが使っている方法 ... あらかじめ内容を作り込んでおける。
-rdは大容量 or 動的なサイズ確保が苦手 → mfsも併用する。
--kernel config~
 option    RAMDISK_HOOKS
 option    MINIROOTSIZE=3800   ← 512byte block
 config    bsd root on rd0a
 
 pseudo-device    rd    1    # ram disk
--rdsetrootコマンドでroot FSイメージをカーネルに組込む。
---ルートパーティション(/dev/rd0a)のレイアウト ... 必要なコマンド/ファイルのみ収録
 /+-bin@ -> boottmp
  +-boottmp/
  |   +-init*
  |   +-ksh* = sh*
  |   +-ln*
  |   +-login.conf
  |   +-mount*
  |   +-mount_cd9660*
  |   +-mount_ffs*
  |   +-mount_mfs*
  |   +-rc
  |   +-sysctl*
  +-cdrom/
  +-dev/
  |   +-MAKEDEV
  |   +-device_files
  +-etc@ -> boottmp
  +-mfs/
  +-mnt/
  +-sbin@ -> boottmp
  +-tmp/
カーネルにファイルシステムのイメージを書き込み;
 ./elfrdsetroot bsd.rd < ./root.img
--/etc/rcの内容
+++実装メモリ量の取得/設定 → mfsの作成
+++mfsとCD-ROMのマウント → /mfs, /cdrom~
これ以降通常のコマンド(スタティックリンクしたもの)が使用可能となる。
+++/cdrom/{bin,sbin}を / にsymlink
+++Read/Write両方が必要なものを /mfs以下にコピー、/ に symlink
+++残りの /cdrom/* を / にsymlink
+++初期設定(root password, Network etc)をユーザに問い合わせ
+++本来の /etc/rc にチェイン
+++(以降通常のブートシーケンス)
-欠点
--Read Onlyのサブディレクトリ以下を一部分書き込み可能にするのが繁雑
---一部RWでないと動かない部分があった ... /usr/X11R6/X11/lib/xdm/authdir/*
---mfs+nullfs ... UnionFSよりは若干安定
---lndirによる方法 ... symlink NGなものもあり ... /usr/lib/exec/auth/*
**雑感 [#l36bc2da]
-セキュリティに注意
--ホスト固有の情報を入れると紛失した場合危険 ... 端末的使用が無難
--mfs上の情報は消えると復帰できない。
**参考文献等 [#a2f27536]
-ソースコード
--''src/distrib/i386/common/Makefile.inc'', ''src/distrib/i386/cdfs/Makefile'', ''src/distrib/i386/cdfs-emu/Makefile''
-manpage of section 8
--boot, biosboot, boot_i386, cdboot, installboot, release
-Books
--RD関連: BSD Magazine No.4, 6, 10, 16
--ブート関連: Unix Magazine 1998.12 Linuxでリラックス / 1999.8 CD-Rで作るブータブル・リカバリーCD
-Links
--Building an OpenBSD Live CD~
http://www.onlamp.com/pub/a/bsd/2005/07/14/openbsd_live.html
--How to Make a Bootable, Full System OpenBSD 3.2 CDROM~
http://www.blackant.net/other/docs/howto-bootable-cdrom-openbsd.php
--CD Bootable OpenBSD firewall~
http://www.jtan.com/jtanoss/cdboot/
--Construccion de un OpenBSD LiveCD~
[[http://ieee.udistrital.edu.co/computer/docs/manuales/>http://ieee.udistrital.edu.co/computer/docs/manuales/2004.05.04.manual_livecd_openbsd/html/manual-livecd-openbsd.html]]↓~
[[2004.05.04.manual_livecd_openbsd/html/manual-livecd-openbsd.html>http://ieee.udistrital.edu.co/computer/docs/manuales/2004.05.04.manual_livecd_openbsd/html/manual-livecd-openbsd.html]]
--FrozenTech's LiveCD List~
http://www.frozentech.com/content/livecd.php
--ライブCDの部屋~
http://www12.tok2.com/home2/sachs/
-kaw.ath.cxの配布URL~
http://kaw.ath.cx/dl/pub/OpenBSD/LiveCD/
Top Index Search Recent Backups  Help  RSS