Как работает установка CentOS изнутри?

9

Я пытаюсь понять содержание файла ISO-образа дистрибутива Linux и как происходит процесс установки. Здесь я конкретно говорю о CentOS 6.4 в его минимальной версии.

Итак, ISOLINUX запущен, и у меня отображается меню. Тогда я нажимаю установить.

Он загружает ядро ​​и файловую систему initrd.

Мои вопросы:

  1. Как называется Анаконда ?

  2. Какова роль файла images / install.img? (Кто звонит / монтирует это?)

  3. Anaconda устанавливает пакеты / *. Rpm? Если бы я хотел добавить туда одну, могу ли я ее установить?

Spredzy
источник
@Livinglifeback - если бы вы подытожили эту тему в качестве ответа, это добавило бы ценность сайту StackExchange?
EightBitTony
1
Примечание для будущих посетителей: это, особенно № 3, варьируется от распределения к распространению и даже в одном и том же выпуске. Сравните, например, Ubuntu Ubiquity и его альтернативный установщик.
Струджи
1
@EightBitTony Я начал резюмировать это, однако, я не чувствую, что смог бы полностью ответить на вопрос. Я думаю, что ссылка может помочь им узнать больше.
Livinglifeback
@Livelifeback Спасибо, это действительно помогло мне решить проблему. Я все еще исследую, чтобы иметь возможность полностью ответить на мой собственный вопрос. Когда я смогу это сделать, я опубликую ответ, который нашел. Ссылка была оценена :)
Spredzy

Ответы:

16

Я один из авторов / сопровождающих Anaconda. Я мог бы подробно рассказать о том, как загружается установщик, но постараюсь быть кратким.

(Обратите внимание, что это относится только к RHEL / CentOS 6.x или Fedora 14 и более ранним версиям; установщик был почти полностью переписан между Fedora 15, 16 и 17, поэтому сейчас все совсем по-другому.)

  1. Как называется Анаконда?
  2. Какова роль файла images / install.img? (Кто звонит / монтирует это?)

На initrd.imgустановочном носителе мы называем образ stage1 . Он содержит программу под названием loader, единственной задачей которой является поиск и загрузка images/install.img.

install.imgэто изображение stage2 . Вот где на самом деле живет Anaconda - это образ squashfs, который содержит корневую файловую систему установщика.

Существует множество способов найти загрузчик install.img, но при загрузке с DVD все просто: загрузчик замечает установочный DVD, монтирует его и монтирует в images/install.imgкачестве корневой файловой системы.

Как только образ stage2 монтируется, загрузчик запускает Anaconda, которая затем запускает Xorg, надевает оболочку tty2и все эти приятные вещи, и установщик действительно запускается.

3. Anaconda устанавливает пакеты / *. Rpm? Если бы я хотел добавить туда одну, могу ли я ее установить?

Нет, это не просто установить все там. Он использует comps.xmlфайл (in repodata/), чтобы решить, какие группы пакетов доступны (и какие пакеты находятся в этих группах) - так заполняется пользовательский интерфейс выбора пакетов.

Если вы добавляете что-либо в Packages/каталог (например, если вы пытаетесь создать собственный образ DVD) и хотите, чтобы его можно было установить, вам потребуется использовать его createrepoдля восстановления repodata/каталога. Это позволит вам установить ваши пакеты через кикстарт, по крайней мере.

Если вам нужно, чтобы они отображались в пользовательском интерфейсе, вам также необходимо отредактировать comps.xml.

wwoods
источник
1

Когда вы загружаетесь с компакт-диска, вы получаете загрузчик ISOLINUX, который загружает ядро ​​Linux и начальный виртуальный диск. Запускается Anaconda, которая загружает различные ее части, такие как install.img. Затем Anaconda позаботится об установке различных пакетов и т. Д.

Самый простой способ заставить Anaconda установить дополнительные пакеты (или выполнить дополнительную настройку) - написать сценарий кикстарта. Сценарий кикстарта сообщает Anaconda, какие пакеты установить, как настроить операционную систему и т. Д. Чтобы указать anaconda использовать определенный сценарий кикстарта, введите «install ks = http://example.com/my_kickstart.ks » в командной строке ISOLINUX. Затем он загрузит этот файл кикстарта (с веб-сервера в этом примере) и использует его, чтобы узнать, какие пакеты установить.

Более подробную информацию о сценариях кикстарта можно получить по адресу http://fedoraproject.org/wiki/Anaconda/Kickstart.

JSmith
источник
0

Когда вы загружаете установочный компакт-диск, он загружает ядро ​​и initrd, как вы упомянули. Это в основном загружает минимальную систему Linux в память вашего компьютера. Anaconda запускается как служба при загрузке и запускает программу. Затем Анаконда находит ваши HD и монтирует их как / mnt / sysimage. Anaconda устанавливает Packages / *. Rpm с установочного компакт-диска, и вы можете добавить RPM в каталог Packages, а затем повторно записать iso, но Anaconda все равно не будет знать, что его нужно установить. Что касается взлома Anaconda, чтобы заставить программу искать RPM, у меня нет ответа.

Jeight
источник