FreeBSD -CURRENT に rescue コマンド登場 2
ストーリー by yourCat
備えあれば憂いなし 部門より
備えあれば憂いなし 部門より
BSD 曰く、 "FreeBSD -CURRENT に rescue コマンドが組み込まれた。これは従来の /stand 配下のツールを置き換えるものである。
現在、-CURRENT では NSS (Name Service Switch) 等の導入により、全てのバイナリが動的リンクによりライブラリを結合する方式に移行する予定である。しかし、重度の障害のため動的リンクが動かない場合、システムの操作が不可能になる恐れがある。そのために、ライブラリと静的リンクしたバイナリを緊急時救済用のツール群として準備しておくために、この rescue コマンドが作成されたようである。
実際には cat や cp を初めとする140個以上のツールが crunchgen コマンドによって1個の rescue バイナリになっているようだ。README にこのツールを作成する目的が書いてある。
- 信頼できるスタンドアローンの救済ツールを作ること
- crunchgenの頑丈さを広く知らせること
- 小さなシステム作成に適したツールキットを作成すること
rescue が整備された今、これから FreeBSD 5.2 がどのように変わるか、楽しみである。"
READMEの内容 (スコア:4, 参考になる)
/rescue 構築システムには3つの目標がある。
/rescue の全てのコンテンツは静的リンクされていて、/bin や /sbin の中の ツールと独立している。 特に、動的リンクされた /bin や /sbin がだめになった時でも、機能し続ける ようになっている。 例えば、/rescue/mount は /sbin/mount_nfs ではなく /rescue/mount_nfs を呼び出す ようになっている。このようにしてうまく動くようになっている。
さらに良いことに、/rescue は crunchgen によってかなり小さくなっているにもかかわらず、gzip、bzip2、viのような 一般的には /bin や /sbin に置くことのないいくつかのツールまで含まれているのである。
これらの Makefile により個々の crunchgen の部品(ツール類)は再コンパイルされ、 必要なライブラリ類が組み入れられる。この種の技術は他の場所でも有用である。 例えば、ブートフロッピーはこれを使って 必要な機能を条件付きコンパイルして、 実行ファイルの大きさを小さくすることができるのである。
/rescue を CD やコンパクトフラッシュにインストールし、/bin や /sbin を /rescue にシンボリックリンクすれば、 小さくて完璧な FreeBSD システムを作ることができる。
コンパイルするには
rebuild はいつも正しく動くわけではないことに注意して欲しい。 もし問題があるようなら、再コンパイル前に make clean して欲しい。Re:READMEの内容 (スコア:0)