パスワードを忘れた? アカウント作成
6040 story

FreeBSD -CURRENT に rescue コマンド登場 2

ストーリー by yourCat
備えあれば憂いなし 部門より

BSD 曰く、 "FreeBSD -CURRENT に rescue コマンドが組み込まれた。これは従来の /stand 配下のツールを置き換えるものである。
現在、-CURRENT では NSS (Name Service Switch) 等の導入により、全てのバイナリが動的リンクによりライブラリを結合する方式に移行する予定である。しかし、重度の障害のため動的リンクが動かない場合、システムの操作が不可能になる恐れがある。そのために、ライブラリと静的リンクしたバイナリを緊急時救済用のツール群として準備しておくために、この rescue コマンドが作成されたようである。
実際には cat や cp を初めとする140個以上のツールが crunchgen コマンドによって1個の rescue バイナリになっているようだ。README にこのツールを作成する目的が書いてある。

  1. 信頼できるスタンドアローンの救済ツールを作ること
  2. crunchgenの頑丈さを広く知らせること
  3. 小さなシステム作成に適したツールキットを作成すること

rescue が整備された今、これから FreeBSD 5.2 がどのように変わるか、楽しみである。"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • READMEの内容 (スコア:4, 参考になる)

    by tag (10007) on 2003年07月04日 2時19分 (#351637) 日記
    READMEを読んでみました。

    /rescue 構築システムには3つの目標がある。

    • /rescue ツールの信頼性できるスタンドアローンセットを作成

      /rescue の全てのコンテンツは静的リンクされていて、/bin や /sbin の中の ツールと独立している。 特に、動的リンクされた /bin や /sbin がだめになった時でも、機能し続ける ようになっている。 例えば、/rescue/mount は /sbin/mount_nfs ではなく /rescue/mount_nfs を呼び出す ようになっている。このようにしてうまく動くようになっている。
      さらに良いことに、/rescue は crunchgen によってかなり小さくなっているにもかかわらず、gzip、bzip2、viのような 一般的には /bin や /sbin に置くことのないいくつかのツールまで含まれているのである。

    • crunchgen の頑丈さの証明

      これらの Makefile により個々の crunchgen の部品(ツール類)は再コンパイルされ、 必要なライブラリ類が組み入れられる。この種の技術は他の場所でも有用である。 例えば、ブートフロッピーはこれを使って 必要な機能を条件付きコンパイルして、 実行ファイルの大きさを小さくすることができるのである。

    • 配布に適した小さなツールキットの作成

      /rescue を CD やコンパクトフラッシュにインストールし、/bin や /sbin を /rescue にシンボリックリンクすれば、 小さくて完璧な FreeBSD システムを作ることができる。

    これらのツールには1つだけ大きな欠点がある。静的リンクすると、 動的リンクにより実現されるライブラリの高度な機能が使えないのである。 特に、近いうちに出てくる nsswitch、locales、pam などは動的リンクに 依存している。

    コンパイルするには

    # cd /usr/src/rescue
    # make obj
    # make
    # make install
    rebuild はいつも正しく動くわけではないことに注意して欲しい。 もし問題があるようなら、再コンパイル前に make clean して欲しい。
typodupeerror

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

読み込み中...