web-dev-qa-db-ja.com

CentOSのインストールは内部からどのように機能しますか?

LinuxディストリビューションのISOイメージファイルの内容と、インストールプロセスがどのように行われるかを理解しようとしています。ここで私は具体的に CentOS 6.4の最小バージョンについて話している。

つまり、 [〜#〜] isolinux [〜#〜] がトリガーされ、メニューが表示されます。次に、インストールを押します。

カーネルとinitrdファイルシステムをロードします。

私の質問は:

  1. Anaconda はどのように呼び出されますか?

  2. Images/install.imgファイルの役割は何ですか? (誰がそれを呼び出す/マウントしますか?)

  3. AnacondaはPackages/*。rpmをインストールしますか?そこに追加したいのですが、インストールできますか?

9
Spredzy

私はアナコンダの作者/メンテナーの一人です。インストーラがどのように起動するかについて、あまり詳細に入る可能性がありますが、簡単に説明します。

(これは、RHEL/CentOS 6.xまたはFedora 14以前にのみ適用されることに注意してください。インストーラーは、Fedora 15、16、17の間で ほぼ完全に書き直されました なので、状況は大きく異なります。

  1. アナコンダはどのように呼ばれますか?
  2. Images/install.imgファイルの役割は何ですか? (誰がそれを呼び出す/マウントしますか?)

インストールメディアのinitrd.imgは、stage1イメージと呼ばれるものです。 loaderというプログラムが含まれています。その唯一の仕事は、images/install.imgを見つけてロードすることです。

install.imgstage2イメージです。これは、Anaconda実際にが存在する場所です。これは、インストーラーのルートファイルシステムを含むsquashfsイメージです。

ローダーがinstall.imgを見つけるための さまざまな方法 がありますが、DVDから起動する場合、ローダーはインストーラーDVDに気づき、それをマウントし、ルートファイルシステムとしてimages/install.imgをマウントします。

ステージ2のイメージがマウントされると、ローダーはAnacondaを起動します。AnacondaはXorgを起動し、tty2とそのすべてのNiceにシェルを配置し、インストーラーreallyが起動します。

3. AnacondaはPackages/*。rpmをインストールしますか?そこに追加したい場合はインストールできますか?

いいえ、すべてをそこにインストールするだけではありません。 comps.xmlファイル(repodata/内)を使用して、使用可能なパッケージグループ(およびそれらのグループに含まれるパッケージ)を決定します。これにより、パッケージ選択UIが入力されます。

Packages/ディレクトリに何かを追加し(カスタムDVDイメージを作成しようとしている場合など)、それをインストール可能にしたい場合は、createrepoを使用してrepodata/ディレクトリを再生成する必要があります。これにより、少なくともキックスタートを介してパッケージをインストールできます。

それらをUIに表示する必要がある場合は、comps.xmlも編集する必要があります。

16
wwoods

CDから起動すると、ISOLINUXブートローダーが取得され、Linuxカーネルと初期RAMディスクがロードされます。これでAnacondaが起動し、install.imgなどのさまざまな部分が読み込まれます。その後、アナコンダがさまざまなパッケージのインストールなどを行います。

Anacondaに追加パッケージをインストール(または追加構成)させる最も簡単な方法は、キックスタートスクリプトを作成することです。キックスタートスクリプトは、インストールするパッケージ、オペレーティングシステムの構成方法などをAnacondaに指示します。 anacondaに特定のキックスタートスクリプトを使用するように指示するには、ISOLINUXプロンプトで「install ks = http://example.com/my_kickstart.ks 」と入力します。次に、そのキックスタートファイルを(この例ではWebサーバーから)ダウンロードし、それを使用してインストールするパッケージを認識します。

キックスタートスクリプトの詳細については、 http://fedoraproject.org/wiki/Anaconda/Kickstart をご覧ください。

1
jsmith

インストールCDを起動すると、前述のようにカーネルとinitrdがロードされます。これは基本的に最小限のLinuxシステムをコンピュータのメモリにロードします。 Anacondaは起動時にサービスとして実行され、プログラムが起動します。その後、AnacondaはHDを検出し、/ mnt/sysimageとしてマウントします。 Anacondaは、インストールCDからPackages/*。rpmをインストールします。RPMをPackages dirに追加して、isoを再書き込みできますが、Anacondaは、インストールする必要があることをまだ認識していません。プログラムにRPMを検索させるためにアナコンダをハッキングする限り、私には答えがありません。

0
Jeight