EBUG勉強会/20090221_LiveCD_3
をテンプレートにして作成
Start:
#topicpath
RIGHT:川俣吉広
RIGHT:EBUG 第29回会合 - 2009, 2/21
*LiveCD「河豚板」のUSB ブート対応
[[OpenBSD LiveCD「河豚板」>http://kaw.ath.cx/openbsd/?Liv...
2008年末にUSBメモリからの起動に対応しました。
現在、配布サイト((http://kaw.ath.cx/dl/pub/OpenBSD/LiveCD...
CD-ROM用・USBメモリ用、二種類のイメージファイルを公開して...
今回は、このUSB ブート対応の内容、および[[前回(2007年5月)...
----
#contents
----
**発端
USB ブート対応のきっかけとなったのは、ebug members MLでの...
>''神'' - '''河豚板をCDドライブのないネットブックで動かし...
>''川'' - '''USBメモリがBIOSとOpenBSDカーネルの両方からHD...
で、やってみたところ、HDDに行う通常のインストール方法でOp...
これをふまえて河豚板のUSB ブート対応にとりかかりました。
**おさらい - 河豚板の起動のしくみ
今回のUSB ブート対応の概要を理解するため、まずLiveCD版河...
***カーネル起動直後まで
まず、BIOSによって初期ブートローダ(El Torito規格により指...
カーネル (bsd.mp)が起動します。~
カーネル起動直後の河豚板のファイルシステム構成を以下の図...
|CENTER:&ref(fuguita.gif);|
|CENTER:カーネル起動直後のファイルシステム(概要)|
ルートファイルシステムとなっているrdデバイスはカーネル内...
カーネル起動と同時にルートにマウントされます。これはOpenB...
rdファイルシステムには、起動のために必須な必要最小限のコ...
また、容量低減のためこれらは単一のディレクトリ /boottmp ...
このあと、通常のBSDの起動シーケンスにのっとり、/sbin/init...
***通常の運用状態まで
/sbin/initからよびだされた /etc/rc (実際は、/boottmp/rc)...
-CD-ROMのマウント、mfs((mfs: memory file system - いわゆ...
-ユーザからの動作モード指定をよみとる
-キーボードタイプ, ルートパスワード, ネットワークパラメー...
これらの初期化が正常に終了すると、/cdrom/etc/rc に制御が...
すべての初期化が終了して運用状態に到達したとき、ファイル...
|CENTER:&ref(fuguita-op.gif);|
|CENTER:運用状態でのファイルシステム(概要)|
rdによるルートファイルシテムは存在しつづけ、CD-ROMは、/cd...
そしてこれらのファイルシステムは、通常のUnixのファイル構...
特に、/usr以下はシンボリックリンクが2段階で張られていま...
/usr
↓
/mfs/usr/bin/vi
↓
/cdrom/usr/bin/vi
というようにシンボリックリンクがたどられます。
なぜこのようなややこしいことをするのか? それは、
>/usr以下をread onlyにせず、ファイルのおきかえを
可能にすることによって、securityアップデートやports/packa...
です。このような機能は「スタッカブルファイルシステム」を...
OpenBSDではスタッカブルファイルシステムは実装されていませ...
よって、河豚板では、このシンボリックリンクをもちいる手法...
くわえて、副次的な利点となりますが、/mfs以下の大半をシン...
/mfs以下の内容を保存する場合に必要なファイル容量を大幅に...
**USB ブート対応作業の実際
まず、冒頭の「発端」でもふれたように、OpenBSDを通常のイン...
USBメモリにインストール((OpenBSDからは、SCSIディスクとし...
-起動試験の結果 ... ハードウェアによって、起動できるもの...
ネット上の情報をしらべたところ、USB ブートをサポートするB...
リムーバブル・ディスクとして認識するものがあり、どうやら...
OpenBSDは起動できない様子です。~
起動が不可能ですと、二次ローダが出力するプロンプト ''boot...
このことからも、やはりBIOSがMBRをよみこめていない(=HDDと...
どうやらUSB ブートでは、CD-ROMでのEl Torito規格のような標...
とりあえず、河豚板のUSB ブート対応は、前者のBIOSを対象と...
-方針と実装
--USB用の別バージョンは作成せず、単一のスクリプトでCD-ROM...
... 別バージョンつくると、開発・保守の手間が2倍になりま...
--USBメモリであっても、read onlyでマウントします。~
... これによって、フラッシュメモリデバイスの書換え回数制...
--USBメモリに導入する場合も、HDDと同様にパーティショニン...
本来はインストーラを用意するのがのぞましいのですが、
とりあえず生のディスクイメージを作成し、それを配布するこ...
--いままで「デバイスファイル /dev/cd0a を /cdrom にマウン...
---/cdrom を /fuguita に名称変更
---OSに認識されたストレージデバイスを順次スキャンし、河豚...
---前項のメディアをデフォルト値とし、実際に /fuguita にマ...
---ユーザデータ保存機能など、関連するサポートツールの改造
---FuguIta開発用のビルドツールも機能追加、変更などを実施
実際の変更箇所は、初期化の大部分を担当する /boottmp/rc に...
冒頭紹介した「発端となったMLでの議論」は 2008年11月30日に...
**その他諸々
-USB ブートが不可能な機種でも、カーネル起動後にUSBメモリ...
--CD-ROMとUSBメモリの両方を装着し、CD-ROMから起動する。
--''device where FuguIta stored in [cd0a] -> ''のプロンプ...
--以降は、USBメモリによる運用にきりかわる(このあとはCD-RO...
-USBメモリ版の配布イメージをHDDに上書きすれば、HDDでの運...
... ''超注意: パーティションテーブルも上書きされます!!''
-''ご注意'': CD-ROM版だけの頃から存在していた「USBメモリ...
ただし、USB版実装にともないデータを保存するパーティション...
... あたらしく保存メディアを作成し、データを手動でコピー...
-フラッシュメモリ対応のOpenBSDは、他に ''flashboot'' ( ht...
おもに Soekris Net45xx, Net48xxのような組み込みプラットフ...
**2007年5月以降のリリース状況 &size(14){(括弧内の数字は、...
-FuguIta-4.1 (5)
--itojun氏のアドバイスにより、-currentカーネルを使用した...
-FuguIta-4.2 (3)
-FuguIta-4.3 (5)
--amd64用試作版、およびそのビルドツールを qemu-x86-64 on ...
-FuguIta-4.4 (6)
--マルチプロセッサ用カーネル ''/bsd.mp''を追加収録。起動...
...ユニプロセッサ用カーネルの場合、マルチコアのCPUでブー...
--/boottmp/rcのこまかい修正を多数実施
--dig氏より、CD-ROMラベル用アートワークをご提供いただきま...
**最後に
メジャーなLiveCD、たとえばKnoppixやUbuntu、あるいはFreeSB...
どれも親しみやすく、美しい外観をもっています。~
河豚板はそこまで初心者フレンドリな環境ではないのですが、
OpenBSD自身がもつ機能はほぼすべてもりこんでいます。
そのため、河豚板はHDDへ通常インストールしたOpenBSDとおな...
また、OS本体のほかに追加収録されている各種パッケージをく...
いろいろな技をためすこともできます。たとえば、
-フェイルオーバ、帯域制御機能つきのファイアウォール(しか...
-HTTPプロキシを経由して、Layer2トンネルをとおす(しかも圧...
...さらに、そのトンネルのむこうのWindowsマシンにリモート...
-Transmissionでお手軽BitTorrent tracker/seeder
-いつでもどこでもプログラミング。Schemeでもあそべちゃうし...
-映像・音声メディアの視聴はもちろん、動画エンコード、CD/D...
などなど…。ぜひ一度おためしください。
ご質問、バグレポート、ご要望などございましたら、kaw@on.ri...
mixiのOpenBSDコミュニティにも、河豚板トピックを開設してい...
----
#topicpath
End:
#topicpath
RIGHT:川俣吉広
RIGHT:EBUG 第29回会合 - 2009, 2/21
*LiveCD「河豚板」のUSB ブート対応
[[OpenBSD LiveCD「河豚板」>http://kaw.ath.cx/openbsd/?Liv...
2008年末にUSBメモリからの起動に対応しました。
現在、配布サイト((http://kaw.ath.cx/dl/pub/OpenBSD/LiveCD...
CD-ROM用・USBメモリ用、二種類のイメージファイルを公開して...
今回は、このUSB ブート対応の内容、および[[前回(2007年5月)...
----
#contents
----
**発端
USB ブート対応のきっかけとなったのは、ebug members MLでの...
>''神'' - '''河豚板をCDドライブのないネットブックで動かし...
>''川'' - '''USBメモリがBIOSとOpenBSDカーネルの両方からHD...
で、やってみたところ、HDDに行う通常のインストール方法でOp...
これをふまえて河豚板のUSB ブート対応にとりかかりました。
**おさらい - 河豚板の起動のしくみ
今回のUSB ブート対応の概要を理解するため、まずLiveCD版河...
***カーネル起動直後まで
まず、BIOSによって初期ブートローダ(El Torito規格により指...
カーネル (bsd.mp)が起動します。~
カーネル起動直後の河豚板のファイルシステム構成を以下の図...
|CENTER:&ref(fuguita.gif);|
|CENTER:カーネル起動直後のファイルシステム(概要)|
ルートファイルシステムとなっているrdデバイスはカーネル内...
カーネル起動と同時にルートにマウントされます。これはOpenB...
rdファイルシステムには、起動のために必須な必要最小限のコ...
また、容量低減のためこれらは単一のディレクトリ /boottmp ...
このあと、通常のBSDの起動シーケンスにのっとり、/sbin/init...
***通常の運用状態まで
/sbin/initからよびだされた /etc/rc (実際は、/boottmp/rc)...
-CD-ROMのマウント、mfs((mfs: memory file system - いわゆ...
-ユーザからの動作モード指定をよみとる
-キーボードタイプ, ルートパスワード, ネットワークパラメー...
これらの初期化が正常に終了すると、/cdrom/etc/rc に制御が...
すべての初期化が終了して運用状態に到達したとき、ファイル...
|CENTER:&ref(fuguita-op.gif);|
|CENTER:運用状態でのファイルシステム(概要)|
rdによるルートファイルシテムは存在しつづけ、CD-ROMは、/cd...
そしてこれらのファイルシステムは、通常のUnixのファイル構...
特に、/usr以下はシンボリックリンクが2段階で張られていま...
/usr
↓
/mfs/usr/bin/vi
↓
/cdrom/usr/bin/vi
というようにシンボリックリンクがたどられます。
なぜこのようなややこしいことをするのか? それは、
>/usr以下をread onlyにせず、ファイルのおきかえを
可能にすることによって、securityアップデートやports/packa...
です。このような機能は「スタッカブルファイルシステム」を...
OpenBSDではスタッカブルファイルシステムは実装されていませ...
よって、河豚板では、このシンボリックリンクをもちいる手法...
くわえて、副次的な利点となりますが、/mfs以下の大半をシン...
/mfs以下の内容を保存する場合に必要なファイル容量を大幅に...
**USB ブート対応作業の実際
まず、冒頭の「発端」でもふれたように、OpenBSDを通常のイン...
USBメモリにインストール((OpenBSDからは、SCSIディスクとし...
-起動試験の結果 ... ハードウェアによって、起動できるもの...
ネット上の情報をしらべたところ、USB ブートをサポートするB...
リムーバブル・ディスクとして認識するものがあり、どうやら...
OpenBSDは起動できない様子です。~
起動が不可能ですと、二次ローダが出力するプロンプト ''boot...
このことからも、やはりBIOSがMBRをよみこめていない(=HDDと...
どうやらUSB ブートでは、CD-ROMでのEl Torito規格のような標...
とりあえず、河豚板のUSB ブート対応は、前者のBIOSを対象と...
-方針と実装
--USB用の別バージョンは作成せず、単一のスクリプトでCD-ROM...
... 別バージョンつくると、開発・保守の手間が2倍になりま...
--USBメモリであっても、read onlyでマウントします。~
... これによって、フラッシュメモリデバイスの書換え回数制...
--USBメモリに導入する場合も、HDDと同様にパーティショニン...
本来はインストーラを用意するのがのぞましいのですが、
とりあえず生のディスクイメージを作成し、それを配布するこ...
--いままで「デバイスファイル /dev/cd0a を /cdrom にマウン...
---/cdrom を /fuguita に名称変更
---OSに認識されたストレージデバイスを順次スキャンし、河豚...
---前項のメディアをデフォルト値とし、実際に /fuguita にマ...
---ユーザデータ保存機能など、関連するサポートツールの改造
---FuguIta開発用のビルドツールも機能追加、変更などを実施
実際の変更箇所は、初期化の大部分を担当する /boottmp/rc に...
冒頭紹介した「発端となったMLでの議論」は 2008年11月30日に...
**その他諸々
-USB ブートが不可能な機種でも、カーネル起動後にUSBメモリ...
--CD-ROMとUSBメモリの両方を装着し、CD-ROMから起動する。
--''device where FuguIta stored in [cd0a] -> ''のプロンプ...
--以降は、USBメモリによる運用にきりかわる(このあとはCD-RO...
-USBメモリ版の配布イメージをHDDに上書きすれば、HDDでの運...
... ''超注意: パーティションテーブルも上書きされます!!''
-''ご注意'': CD-ROM版だけの頃から存在していた「USBメモリ...
ただし、USB版実装にともないデータを保存するパーティション...
... あたらしく保存メディアを作成し、データを手動でコピー...
-フラッシュメモリ対応のOpenBSDは、他に ''flashboot'' ( ht...
おもに Soekris Net45xx, Net48xxのような組み込みプラットフ...
**2007年5月以降のリリース状況 &size(14){(括弧内の数字は、...
-FuguIta-4.1 (5)
--itojun氏のアドバイスにより、-currentカーネルを使用した...
-FuguIta-4.2 (3)
-FuguIta-4.3 (5)
--amd64用試作版、およびそのビルドツールを qemu-x86-64 on ...
-FuguIta-4.4 (6)
--マルチプロセッサ用カーネル ''/bsd.mp''を追加収録。起動...
...ユニプロセッサ用カーネルの場合、マルチコアのCPUでブー...
--/boottmp/rcのこまかい修正を多数実施
--dig氏より、CD-ROMラベル用アートワークをご提供いただきま...
**最後に
メジャーなLiveCD、たとえばKnoppixやUbuntu、あるいはFreeSB...
どれも親しみやすく、美しい外観をもっています。~
河豚板はそこまで初心者フレンドリな環境ではないのですが、
OpenBSD自身がもつ機能はほぼすべてもりこんでいます。
そのため、河豚板はHDDへ通常インストールしたOpenBSDとおな...
また、OS本体のほかに追加収録されている各種パッケージをく...
いろいろな技をためすこともできます。たとえば、
-フェイルオーバ、帯域制御機能つきのファイアウォール(しか...
-HTTPプロキシを経由して、Layer2トンネルをとおす(しかも圧...
...さらに、そのトンネルのむこうのWindowsマシンにリモート...
-Transmissionでお手軽BitTorrent tracker/seeder
-いつでもどこでもプログラミング。Schemeでもあそべちゃうし...
-映像・音声メディアの視聴はもちろん、動画エンコード、CD/D...
などなど…。ぜひ一度おためしください。
ご質問、バグレポート、ご要望などございましたら、kaw@on.ri...
mixiのOpenBSDコミュニティにも、河豚板トピックを開設してい...
----
#topicpath
Page: