Я пытаюсь понять содержание файла ISO-образа дистрибутива Linux и как происходит процесс установки. Здесь я конкретно говорю о CentOS 6.4 в его минимальной версии.
Итак, ISOLINUX запущен, и у меня отображается меню. Тогда я нажимаю установить.
Он загружает ядро и файловую систему initrd.
Мои вопросы:
Как называется Анаконда ?
Какова роль файла images / install.img? (Кто звонит / монтирует это?)
Anaconda устанавливает пакеты / *. Rpm? Если бы я хотел добавить туда одну, могу ли я ее установить?
Ответы:
Я один из авторов / сопровождающих Anaconda. Я мог бы подробно рассказать о том, как загружается установщик, но постараюсь быть кратким.
(Обратите внимание, что это относится только к RHEL / CentOS 6.x или Fedora 14 и более ранним версиям; установщик был почти полностью переписан между Fedora 15, 16 и 17, поэтому сейчас все совсем по-другому.)
На
initrd.img
установочном носителе мы называем образ stage1 . Он содержит программу под названиемloader
, единственной задачей которой является поиск и загрузкаimages/install.img
.install.img
это изображение stage2 . Вот где на самом деле живет Anaconda - это образ squashfs, который содержит корневую файловую систему установщика.Существует множество способов найти загрузчик
install.img
, но при загрузке с DVD все просто: загрузчик замечает установочный DVD, монтирует его и монтирует вimages/install.img
качестве корневой файловой системы.Как только образ stage2 монтируется, загрузчик запускает Anaconda, которая затем запускает Xorg, надевает оболочку
tty2
и все эти приятные вещи, и установщик действительно запускается.Нет, это не просто установить все там. Он использует
comps.xml
файл (inrepodata/
), чтобы решить, какие группы пакетов доступны (и какие пакеты находятся в этих группах) - так заполняется пользовательский интерфейс выбора пакетов.Если вы добавляете что-либо в
Packages/
каталог (например, если вы пытаетесь создать собственный образ DVD) и хотите, чтобы его можно было установить, вам потребуется использовать егоcreaterepo
для восстановленияrepodata/
каталога. Это позволит вам установить ваши пакеты через кикстарт, по крайней мере.Если вам нужно, чтобы они отображались в пользовательском интерфейсе, вам также необходимо отредактировать
comps.xml
.источник
Когда вы загружаетесь с компакт-диска, вы получаете загрузчик ISOLINUX, который загружает ядро Linux и начальный виртуальный диск. Запускается Anaconda, которая загружает различные ее части, такие как install.img. Затем Anaconda позаботится об установке различных пакетов и т. Д.
Самый простой способ заставить Anaconda установить дополнительные пакеты (или выполнить дополнительную настройку) - написать сценарий кикстарта. Сценарий кикстарта сообщает Anaconda, какие пакеты установить, как настроить операционную систему и т. Д. Чтобы указать anaconda использовать определенный сценарий кикстарта, введите «install ks = http://example.com/my_kickstart.ks » в командной строке ISOLINUX. Затем он загрузит этот файл кикстарта (с веб-сервера в этом примере) и использует его, чтобы узнать, какие пакеты установить.
Более подробную информацию о сценариях кикстарта можно получить по адресу http://fedoraproject.org/wiki/Anaconda/Kickstart.
источник
Когда вы загружаете установочный компакт-диск, он загружает ядро и initrd, как вы упомянули. Это в основном загружает минимальную систему Linux в память вашего компьютера. Anaconda запускается как служба при загрузке и запускает программу. Затем Анаконда находит ваши HD и монтирует их как / mnt / sysimage. Anaconda устанавливает Packages / *. Rpm с установочного компакт-диска, и вы можете добавить RPM в каталог Packages, а затем повторно записать iso, но Anaconda все равно не будет знать, что его нужно установить. Что касается взлома Anaconda, чтобы заставить программу искать RPM, у меня нет ответа.
источник