EBUGの原稿
 *OpenBSDでLive CDをつくる [#t51994f1]
 **Why OpenBSD?, Why Live CD? [#e2ba0579]
 -Other BSD / Linux では?
 --Linuxでも昔1FDとかいじっていた。
 --一番慣れたBSD → make releaseが昂じてやってみたくなった
 --OpenBSDには定番がない
 ---Linux ... http://www.frozentech.com/content/livecd.php によると295種類
 ---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''
  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'' '''output''' ''-b'' '''boot-record''' ''-c'' '''boot-catalog''' '''tree-dir'''
  mkhybrid -R -o ISO-IMAGE -b BOOT-RECORD -c BOOT-CATALOG TREE-DIR
 +++CD-ROM書込~
 ''cdrecord dev=/dev/rcd0c'' '''output'''
  cdrecord dev=/dev/rcd0c ISO-IMAGE
 -欠点
 --「実環境をなるべくいじらない」にちょっと反する;
 ---mfs + union mount の準備のため、ターゲットシステムでの/etc/rcの改造が必要
 --Union FSが不安定 (OpenBSD 3.8 でレイヤー系のファイルシステムは削除されてしまった)
 ***アプローチ2 [#w2b10a7b]
 -rd (RAM Disk)デバイスをrootとしてマウント ... インストーラが使っている方法
 -rd (RAM Disk)デバイスをrootとしてマウント~
 インストーラが使っている方法 ... arakajime naiyouwo tsukurikonde okeru.
 -rd ha daiyouryou/doutekina size kakuhoga nigate ... koreha mfs wo siyousuru.
 --kernel config~
  option    RAMDISK_HOOKS
  option    MINIROOTSIZE=3800   ← 512byte block
  config    bsd root on rd0a
  
  pseudo-device    rd    1    # ram disk
 --rdsetrootコマンドでroot FSイメージをカーネルに組込む。
 ---rd layout ... 必要なコマンドのみ, /etc/rc
 ---/etc/rcの構造
 ---rd FS layout ... 必要なコマンド/ファイルのみ収録
  /+-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/
 Kernel ni FS image wo kakikomi
  ./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]
 -manpage
 --boot(8), biosboot(8), boot_i386(8), cdboot(8), installboot(8), release(8)
 -ソースコード
 --''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
 --BSD MagazineのRD, MFS関係の諸記事
 --Unix Magazine の Linux boot 周り (MBR〜LILO) のあたり
 --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/2004.05.04.manual_livecd_openbsd/html/manual-livecd-openbsd.html
 [[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