EBUG勉強会/20050917_LiveCD
をテンプレートにして作成
Start:
#topicpath
*OpenBSDでLive CDをつくる
RIGHT:Echigo BSD Users Group 第15回 会合 - 9/17, 2005
RIGHT:川俣 吉広 - kaw@on.rim.or.jp
**Why OpenBSD?, Why Live CD?
-Other BSD / Linux では?
--Linuxでも昔1FDとかいじっていた ... 1FD Linux 作成キット...
--一番慣れたBSD → make build / make releaseが昂じてやって...
--OpenBSDには定番がない
---Linux ... Frozen Tech's LiveCD List によると295種類
---FreeBSD ... FreeSBIE
---NetBSD ... pkgsrc - sysutils/mklivecd
---以前 OpenBSD を使った 1CD snortがあった(( http://slash...
// -Live CDの利点
// --利用の容易さ
**方針・目標
-HDD上に通常インストールされた実運用環境をなるべく弄らな...
--常用しているものになるべく近い環境を持ち歩きたい
--バックアップシステムとして手軽に作成したい
--H/Wの検証用などのテスト環境, 障害発生時の Soft/Hardの切...
>などを用途として想定する。
**Boot手順概要のおさらい
// |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)
**実際
***アプローチ1
-CD-ROMを直接マウントする。
--kernel config~
config bsd root on cd0c
--書き込み可能な領域の確保 ... union fsを使ってCDにmfsを...
--CDの作成手順
+++ターゲットシステムのファイルツリーをコピー
mkdir ./cdroot
(cd TARGET-ROOT-DIR && pax -rwpe . WORKDIR/cdroot)
rm -rf ./cdroot/{dev/fd,kern,mnt,proc,tmp}/*
+++ISOイメージ作成~
mkhybrid -R -o ISO-IMAGE -b BOOT-RECORD -c BOOT-CATALOG ...
+++CD-ROM書込~
cdrecord dev=/dev/rcd0c ISO-IMAGE
-欠点
--「実環境をなるべくいじらない」方針にちょっと反する;
---mfs + union mount の準備のため、ターゲットシステムでの...
--union fsが不安定 ... コマンドを実行しただけでpanic / フ...
--CD-ROMデバイスがアンマウントできない。
--ブート時にCD-ROMがマウントできないと、まったく使用不能 ...
***アプローチ2
-rd((FreeBSD, NetBSDではmd)) (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
--vnデバイス上にrd内のファイルツリー作成
dd if=/dev/zero of=./rdroot.img bs=512 count=3800
mkdir ./rdroot
vnconfig svnd0 ./rdroot.img
disklabel -w svnd0 rdroot
newfs /dev/rsvnd0a
mount /dev/svnd0a ./rdroot
--rdsetrootコマンドでrootパーティションのファイルシステム...
---ルートパーティション(/dev/rd0a)のレイアウト ... 必要な...
/+-boottmp/
| +-init* ksh* = sh* ln* sysctl*
| login.conf rc
| mount* mount_cd9660* mount_ffs* mount_mfs*
+-bin@ -> boottmp
+-etc@ -> boottmp
+-sbin@ -> boottmp
+-cdrom/
+-mfs/
+-dev/
| +-MAKEDEV (many device files...)
+-mnt/
+-tmp/
上記イメージファイルを作成し、カーネルにファイルシステム...
./rdsetroot bsd.rd < ./rdroot.img
--/etc/rcの内容
+++実装メモリ量の取得/設定 → mfsの作成
+++mfsとCD-ROMのマウント → /mfs, /cdrom~
これ以降通常のコマンドが使用可能となる(が、この時点ではダ...
+++/cdrom/{bin,sbin}から / にシンボリックリンク作成
+++Read/Write両方が必要なものを /mfs以下にコピー、/ にシ...
+++残りの /cdrom/* から / にシンボリックリンク作成
+++初期設定(ルートパスワード、ネットワーク設定など)をユー...
+++本来の /etc/rc (-> /cdrom/etc/rc)にチェイン。以降は通...
--CD-ROMイメージの作成 ... 基本的にはターゲットシステム(...
---/tmp, /proc, /kernfs, /dev/fdなどは空にしておく。
---ブートローダ(cdbr, cdboot)、カーネルのコピー
-欠点
--Read Onlyのサブディレクトリ以下を一部分書き込み可能にす...
---/usr以下に書き込み可でないと正常に動かないものがあった...
---mfs+nullfsの組合せで対処 ... union fsよりは若干安定
---lndirコマンドを利用 ... シンボリックリンクだと、実行で...
---/etc/securityの実行時、大量のレポートが生成される ... ...
**雑感
-セキュリティに注意
--ホスト固有の情報を入れると紛失した場合危険 ... 端末的使...
--mfs上の情報は消えると復帰できないので、端末やFirewall, ...
-遅い
--CD上のファイルが圧縮されていればスループットが上がるの...
**参考文献等
-ソースコード
--src/distrib/i386/common/Makefile.inc, src/distrib/i386/...
-manpage of section 8
--boot, biosboot, boot_i386, cdboot, installboot, release
-書籍
--rd, md, mfs関連: BSD Magazine No.4, 6, 10, 16
--ブート関連: Unix Magazine 1998.12 Linuxでリラックス / 1...
-Links
--Building an OpenBSD Live CD~
http://www.onlamp.com/pub/a/bsd/2005/07/14/openbsd_live...
--How to Make a Bootable, Full System OpenBSD 3.2 CDROM~
http://www.blackant.net/other/docs/howto-bootable-cdrom...
--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...
--Frozen Tech's LiveCD List~
http://www.frozentech.com/content/livecd.php
--ライブCDの部屋~
http://2.csx.jp/livecdroom/
**作成したISOイメージは、以下に置いてあります;
>アプローチ1により作成 ... http://kaw.ath.cx/dl/pub/OpenB...
アプローチ2により作成 ... http://kaw.ath.cx/dl/pub/OpenBS...
http://kaw.ath.cx/dl/pub/OpenBSD/LiveCD/CD-OpenBSD-3.8.is...
*9/17 発表結果
予定どおり9/17の[[EBUG会合>http://www.ebug.jp/event/20050...
お聴きいただいた皆様、ありがとうございました。
**発表後の質疑応答
:Q OpenBSD 3.8では、レイヤー系のファイルシステムが削除さ...
~
A: 3.8では、レイヤー系のファイルシステムは本当にカーネル...
:Q union fs は、通常ハードディスク上のパーティションなど...
~
A: 一般的に、あるファイルツリーに変更を{加えられない,加え...
:Q union fsの動作が不安定なのは、mfsを被せているからなの...
~
A: mfsだからということではなく、ハードディスクなどのFSで...
:FYI: NetBSD/pc98では、union FSをかなり手直しし、本家にフ...
:Q rdsetrootに相当するコマンドは、他のBSDにもあるのか?|
~
A: FreeBSD, NetBSDにもあります。名前は失念してしまいまし...
(註: 同様の働きをするコマンドはFreeBSDでは write_mfs_in_k...
----
#topicpath
End:
#topicpath
*OpenBSDでLive CDをつくる
RIGHT:Echigo BSD Users Group 第15回 会合 - 9/17, 2005
RIGHT:川俣 吉広 - kaw@on.rim.or.jp
**Why OpenBSD?, Why Live CD?
-Other BSD / Linux では?
--Linuxでも昔1FDとかいじっていた ... 1FD Linux 作成キット...
--一番慣れたBSD → make build / make releaseが昂じてやって...
--OpenBSDには定番がない
---Linux ... Frozen Tech's LiveCD List によると295種類
---FreeBSD ... FreeSBIE
---NetBSD ... pkgsrc - sysutils/mklivecd
---以前 OpenBSD を使った 1CD snortがあった(( http://slash...
// -Live CDの利点
// --利用の容易さ
**方針・目標
-HDD上に通常インストールされた実運用環境をなるべく弄らな...
--常用しているものになるべく近い環境を持ち歩きたい
--バックアップシステムとして手軽に作成したい
--H/Wの検証用などのテスト環境, 障害発生時の Soft/Hardの切...
>などを用途として想定する。
**Boot手順概要のおさらい
// |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)
**実際
***アプローチ1
-CD-ROMを直接マウントする。
--kernel config~
config bsd root on cd0c
--書き込み可能な領域の確保 ... union fsを使ってCDにmfsを...
--CDの作成手順
+++ターゲットシステムのファイルツリーをコピー
mkdir ./cdroot
(cd TARGET-ROOT-DIR && pax -rwpe . WORKDIR/cdroot)
rm -rf ./cdroot/{dev/fd,kern,mnt,proc,tmp}/*
+++ISOイメージ作成~
mkhybrid -R -o ISO-IMAGE -b BOOT-RECORD -c BOOT-CATALOG ...
+++CD-ROM書込~
cdrecord dev=/dev/rcd0c ISO-IMAGE
-欠点
--「実環境をなるべくいじらない」方針にちょっと反する;
---mfs + union mount の準備のため、ターゲットシステムでの...
--union fsが不安定 ... コマンドを実行しただけでpanic / フ...
--CD-ROMデバイスがアンマウントできない。
--ブート時にCD-ROMがマウントできないと、まったく使用不能 ...
***アプローチ2
-rd((FreeBSD, NetBSDではmd)) (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
--vnデバイス上にrd内のファイルツリー作成
dd if=/dev/zero of=./rdroot.img bs=512 count=3800
mkdir ./rdroot
vnconfig svnd0 ./rdroot.img
disklabel -w svnd0 rdroot
newfs /dev/rsvnd0a
mount /dev/svnd0a ./rdroot
--rdsetrootコマンドでrootパーティションのファイルシステム...
---ルートパーティション(/dev/rd0a)のレイアウト ... 必要な...
/+-boottmp/
| +-init* ksh* = sh* ln* sysctl*
| login.conf rc
| mount* mount_cd9660* mount_ffs* mount_mfs*
+-bin@ -> boottmp
+-etc@ -> boottmp
+-sbin@ -> boottmp
+-cdrom/
+-mfs/
+-dev/
| +-MAKEDEV (many device files...)
+-mnt/
+-tmp/
上記イメージファイルを作成し、カーネルにファイルシステム...
./rdsetroot bsd.rd < ./rdroot.img
--/etc/rcの内容
+++実装メモリ量の取得/設定 → mfsの作成
+++mfsとCD-ROMのマウント → /mfs, /cdrom~
これ以降通常のコマンドが使用可能となる(が、この時点ではダ...
+++/cdrom/{bin,sbin}から / にシンボリックリンク作成
+++Read/Write両方が必要なものを /mfs以下にコピー、/ にシ...
+++残りの /cdrom/* から / にシンボリックリンク作成
+++初期設定(ルートパスワード、ネットワーク設定など)をユー...
+++本来の /etc/rc (-> /cdrom/etc/rc)にチェイン。以降は通...
--CD-ROMイメージの作成 ... 基本的にはターゲットシステム(...
---/tmp, /proc, /kernfs, /dev/fdなどは空にしておく。
---ブートローダ(cdbr, cdboot)、カーネルのコピー
-欠点
--Read Onlyのサブディレクトリ以下を一部分書き込み可能にす...
---/usr以下に書き込み可でないと正常に動かないものがあった...
---mfs+nullfsの組合せで対処 ... union fsよりは若干安定
---lndirコマンドを利用 ... シンボリックリンクだと、実行で...
---/etc/securityの実行時、大量のレポートが生成される ... ...
**雑感
-セキュリティに注意
--ホスト固有の情報を入れると紛失した場合危険 ... 端末的使...
--mfs上の情報は消えると復帰できないので、端末やFirewall, ...
-遅い
--CD上のファイルが圧縮されていればスループットが上がるの...
**参考文献等
-ソースコード
--src/distrib/i386/common/Makefile.inc, src/distrib/i386/...
-manpage of section 8
--boot, biosboot, boot_i386, cdboot, installboot, release
-書籍
--rd, md, mfs関連: BSD Magazine No.4, 6, 10, 16
--ブート関連: Unix Magazine 1998.12 Linuxでリラックス / 1...
-Links
--Building an OpenBSD Live CD~
http://www.onlamp.com/pub/a/bsd/2005/07/14/openbsd_live...
--How to Make a Bootable, Full System OpenBSD 3.2 CDROM~
http://www.blackant.net/other/docs/howto-bootable-cdrom...
--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...
--Frozen Tech's LiveCD List~
http://www.frozentech.com/content/livecd.php
--ライブCDの部屋~
http://2.csx.jp/livecdroom/
**作成したISOイメージは、以下に置いてあります;
>アプローチ1により作成 ... http://kaw.ath.cx/dl/pub/OpenB...
アプローチ2により作成 ... http://kaw.ath.cx/dl/pub/OpenBS...
http://kaw.ath.cx/dl/pub/OpenBSD/LiveCD/CD-OpenBSD-3.8.is...
*9/17 発表結果
予定どおり9/17の[[EBUG会合>http://www.ebug.jp/event/20050...
お聴きいただいた皆様、ありがとうございました。
**発表後の質疑応答
:Q OpenBSD 3.8では、レイヤー系のファイルシステムが削除さ...
~
A: 3.8では、レイヤー系のファイルシステムは本当にカーネル...
:Q union fs は、通常ハードディスク上のパーティションなど...
~
A: 一般的に、あるファイルツリーに変更を{加えられない,加え...
:Q union fsの動作が不安定なのは、mfsを被せているからなの...
~
A: mfsだからということではなく、ハードディスクなどのFSで...
:FYI: NetBSD/pc98では、union FSをかなり手直しし、本家にフ...
:Q rdsetrootに相当するコマンドは、他のBSDにもあるのか?|
~
A: FreeBSD, NetBSDにもあります。名前は失念してしまいまし...
(註: 同様の働きをするコマンドはFreeBSDでは write_mfs_in_k...
----
#topicpath
Page: