LinuxディストリビューションのISOイメージファイルの内容と、インストールプロセスがどのように行われるかを理解しようとしています。ここで私は具体的に CentOS 6.4の最小バージョンについて話している。
つまり、 [〜#〜] isolinux [〜#〜] がトリガーされ、メニューが表示されます。次に、インストールを押します。
カーネルとinitrdファイルシステムをロードします。
私の質問は:
Anaconda はどのように呼び出されますか?
Images/install.imgファイルの役割は何ですか? (誰がそれを呼び出す/マウントしますか?)
AnacondaはPackages/*。rpmをインストールしますか?そこに追加したいのですが、インストールできますか?
私はアナコンダの作者/メンテナーの一人です。インストーラがどのように起動するかについて、あまり詳細に入る可能性がありますが、簡単に説明します。
(これは、RHEL/CentOS 6.xまたはFedora 14以前にのみ適用されることに注意してください。インストーラーは、Fedora 15、16、17の間で ほぼ完全に書き直されました なので、状況は大きく異なります。
- アナコンダはどのように呼ばれますか?
- Images/install.imgファイルの役割は何ですか? (誰がそれを呼び出す/マウントしますか?)
インストールメディアのinitrd.img
は、stage1イメージと呼ばれるものです。 loader
というプログラムが含まれています。その唯一の仕事は、images/install.img
を見つけてロードすることです。
install.img
はstage2イメージです。これは、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
も編集する必要があります。
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 をご覧ください。
インストールCDを起動すると、前述のようにカーネルとinitrdがロードされます。これは基本的に最小限のLinuxシステムをコンピュータのメモリにロードします。 Anacondaは起動時にサービスとして実行され、プログラムが起動します。その後、AnacondaはHDを検出し、/ mnt/sysimageとしてマウントします。 Anacondaは、インストールCDからPackages/*。rpmをインストールします。RPMをPackages dirに追加して、isoを再書き込みできますが、Anacondaは、インストールする必要があることをまだ認識していません。プログラムにRPMを検索させるためにアナコンダをハッキングする限り、私には答えがありません。