Bagaimana cara kerja instalasi CentOS dari dalam?

9

Saya mencoba memahami konten file ISO image distribusi Linux dan bagaimana proses instalasi berlangsung. Di sini saya secara khusus berbicara tentang CentOS 6.4 dalam versi minimalnya.

Jadi ISOLINUX terpicu, dan saya mendapatkan menu yang ditampilkan. Lalu saya tekan install.

Itu memuat kernel dan sistem file initrd.

Pertanyaan saya adalah:

  1. Bagaimana cara Anaconda dipanggil?

  2. Apa peran file gambar / install.img? (Siapa yang memanggil / memasang itu?)

  3. Apakah Anaconda menginstal Paket / * .rpm? Jika saya ingin menambahkan satu di sana, dapatkah saya, dan apakah itu akan diinstal?

Spredzy
sumber
@Livinglifeback - jika Anda merangkum utas itu sebagai jawaban, itu akan menambah nilai ke situs StackExchange?
EightBitTony
1
Catatan untuk pengunjung masa depan: ini, terutama # 3, bervariasi distribusi-ke-distribusi dan bahkan dalam distribusi yang sama. Bandingkan misalnya penginstal Ubiquity Ubuntu dan penginstal alternatifnya.
strugee
1
@EightBitTony Namun saya mulai meringkasnya, saya tidak merasa bisa menjawab pertanyaan itu sepenuhnya. Saya pikir tautannya mungkin membantu mereka belajar lebih banyak.
Livinglifeback
@Livinglifeback Terima kasih itu benar-benar membantu saya mengatasi lebih banyak masalah. Saya masih menyelidiki untuk dapat sepenuhnya menjawab pertanyaan saya sendiri. Ketika saya dapat melakukannya, saya akan memposting jawaban yang saya temukan. Tautan dihargai :)
Spredzy

Jawaban:

16

Saya salah satu penulis / pengelola Anaconda. Saya bisa masuk ke terlalu banyak detail tentang bagaimana installer installer, tetapi saya akan mencoba untuk menjadi singkat.

(Perhatikan bahwa ini hanya berlaku untuk RHEL / CentOS 6.x atau Fedora 14 dan sebelumnya; installer hampir sepenuhnya ditulis ulang antara Fedora 15, 16, dan 17, jadi semuanya sangat berbeda sekarang.)

  1. Bagaimana cara Anaconda dipanggil?
  2. Apa peran file gambar / install.img? (Siapa yang memanggil / memasang itu?)

Di initrd.imgmedia instal adalah apa yang kita sebut gambar stage1 . Ini berisi program yang disebut loader, yang tugasnya hanya mencari dan memuat images/install.img.

install.imgadalah gambar stage2 . Di sinilah Anaconda benar-benar tinggal - ini adalah gambar squashfs yang berisi sistem file root installer.

Ada banyak cara berbeda untuk menemukan loader install.img, tetapi ketika Anda mem-boot dari DVD itu mudah: loader memperhatikan DVD installer, memasangnya, dan mount images/install.imgsebagai sistem file root.

Setelah gambar stage2 dipasang, loader memulai Anaconda, yang kemudian menjalankan Xorg dan menempatkan shell pada tty2dan semua hal-hal yang bagus, dan installer benar-benar dimulai.

3. Apakah Anaconda menginstal Paket / * .rpm? Jika saya ingin menambahkan satu di sana dapatkah saya dan akan diinstal?

Tidak, itu tidak hanya menginstal semuanya di sana. Ia menggunakan comps.xmlfile (dalam repodata/) untuk memutuskan grup paket mana yang tersedia (dan paket apa yang ada dalam grup tersebut) - begitulah UI pemilihan paket akan terisi.

Jika Anda menambahkan sesuatu ke Packages/direktori (seperti jika Anda mencoba membuat gambar DVD khusus) dan Anda ingin itu dapat diinstal, Anda harus menggunakan createrepountuk membuat ulang repodata/direktori. Itu akan memungkinkan Anda menginstal paket Anda melalui kickstart, setidaknya.

Jika Anda membutuhkannya untuk ditampilkan di UI, Anda harus mengedit comps.xmljuga.

kayu
sumber
1

Ketika Anda boot dari CD, Anda mendapatkan bootloader ISOLINUX, dan itu memuat kernel Linux dan ramdisk awal. Itu memulai Anaconda, yang memuat berbagai bagiannya, seperti install.img. Anaconda kemudian mengurus menginstal berbagai paket, dll.

Cara termudah untuk membuat Anaconda menginstal paket tambahan (atau melakukan konfigurasi tambahan) adalah dengan menulis skrip kickstart. Skrip kickstart memberi tahu Anaconda paket mana yang akan diinstal, cara mengkonfigurasi sistem operasi, dan sebagainya. Untuk memberi tahu anaconda untuk menggunakan skrip kickstart tertentu, Anda dapat mengetik "install ks = http://example.com/my_kickstart.ks " di prompt ISOLINUX. Kemudian akan mengunduh file kickstart (dari server web dalam contoh ini), dan menggunakannya untuk mengetahui paket mana yang akan diinstal.

Rincian lebih lanjut tentang skrip kickstart tersedia di http://fedoraproject.org/wiki/Anaconda/Kickstart

jsmith
sumber
0

Ketika Anda mem-boot CD instalasi, ia memuat Kernel dan initrd seperti yang Anda sebutkan. Ini pada dasarnya memuat sistem Linux minimal ke dalam memori komputer Anda. Anaconda berjalan sebagai layanan saat boot dan program diluncurkan. Anaconda kemudian menemukan HD Anda dan memasangnya sebagai / mnt / sysimage. Anaconda menginstal Paket / * .rpm dari CD instal dan Anda dapat menambahkan RPM ke dir Package lalu membakar kembali iso, tetapi Anaconda masih tidak tahu bahwa itu perlu diinstal. Sejauh peretasan Anaconda untuk membuat program mencari RPM saya tidak punya jawaban.

Jeight
sumber