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


9

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

だから、ISOLINUXがトリガされ、私はメニューが表示され得ます。次に、インストールを押します。

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

私の質問は:

  1. アナコンダはどのように呼び出されますか?

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

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



@Livinglifeback-そのスレッドを回答として要約した場合、それはStackExchangeサイトに付加価値をもたらしますか?
EightBitTony 2013年

1
将来の訪問者への注意:これ、特に#3は、ディストリビューションごとに異なり、同じディストリビューションでも異なります。たとえば、UbuntuのUbiquityインストーラーとその代替インストーラーを比較します。
闘争者2013年

1
@EightBitTony要約し始めましたが、質問に完全に答えられるとは思えません。リンクは彼らがもっと学ぶのを助けるかもしれないと思います。
Livinglifeback 2013年

@Livinglifebackおかげで、実際に問題を解決することができました。私は自分の質問に完全に答えられるようにまだ調査中です。できるようになったら、見つけた答えを投稿します。リンクは高く評価されました:)
Spredzy 2013年

回答:


16

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

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

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

initrd.imgインストールメディアには、私たちが呼んでstage1の画像。これにはと呼ばれるプログラムが含まれておりloader、その唯一の仕事は検索とロードimages/install.imgです。

install.imgあるステージ2の画像は。これは、Anacondaが実際に住んでいる場所です。インストーラーのルートファイルシステムを含むsquashfsイメージです。

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

ステージ2のイメージがマウントされると、ローダーはAnacondaを起動します。AnacondaはXorgを起動し、シェルtty2などの素晴らしいものをすべて配置し、インストーラーが実際に起動します。

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

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

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

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


1

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

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

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


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.