Инструкция по подготовке загрузочного ISO собственной комплектации на базе RHEL 5.x или CentOS 5.x. Создаваемый диск будет содержать только набор пакетов, установленных в текущей системе.1. Загружаем iso-образ загрузочного DVD и сохраняем их в /tmp
2. Создаем базовую директорию
mkdir -p /build/rhel52
3. Монтируем ISO
mount -oloop /tmp/rhel-5-server-x86_64-dvd.iso /mnt
4. Копируем файлы с DVD в директорию /build/rhel52
rsync -rv /mnt/* /build/rhel52
cp /mnt/.discinfo /build/rhel52
cp /mnt/.treeinfo /build/rhel52
5. На текущей системе, содержание которой нам необходимо повторить в создаваемом ISO, генерируем список пакетов:
rpm -qa --queryformat '%{name},%{version}-%{release},%{arch}\n' | sort -n > /tmp/rhel5.2-rpm
6. Добавляем окончание .rpm к элементам сформированного списка:
cat /tmp/rhel5.2-rpm | sed 's/$/.rpm/g' > /build/rhel52/rhel52-list
7. Создаем список RPM, находящихся на примонтированном DVD:
ls -1 /build/rhel52/Server > /build/rhel52/rhel52-all
8. Генерируем список пакетов, которые нам не нужны:
diff -uNr /build/rhel52/rhel52-list /build/rhel52/rhel52-all | grep ^+ > /build/rhel52/remove-list
9. Удаляем первые три строки из файла rhel52-all (удаляем первую строку и файлы TRANS.TBL и repodata):
vi /build/rhel52-all
10. Создаем скрипт для удаления ненужных файлов
#!/bin/ksh
#uncomment the next line for troubleshooting
#set -x
LINES=`cat remove-list | wc -l`
LINE_NO=1
while [ $LINE_NO -le $LINES ]
do
BADFILE=`sed -n "${LINE_NO}p" remove-list`
rm -f /build/rhel52/Server/$BADFILE
LINE_NO=`expr $LINE_NO + 1 `
done
11. Обновляем индексные файлы на DVD, учтя удаленные пакеты:
createrepo -g /build/rhel52/Server/repodata/comps-rhel5-server-core.xml /build/rhel52/Server
12. Создаем директорию для дополнительных пакетов, которые нам хочется сохранить на установочном носителе:
mkdir /build/rhel52/addons
15. Копируем дополнительные пакеты:
cp /pathtofiles/addons/* /build/rhel52/addons/
13. Копируем типовой kickstart-файл из текущей системы:
cp kickstart_file /build/rhel52
14. Заменяем если в kickstart-файле "--url http://" на "cdrom"
После секции %post добавляем:
%post --nochroot
mount /tmp/cdrom /mnt/sysimage/mnt
Заменяем "/bin/rpm -Uhv http://" на "/bin/rpm -Uhv /mnt/addons/", чтобы ставить файлы не из web, а их локальной директории addons. Также заменяем все упоминания wget на директорию addons.
15. Для удобства установки в /build/rhel52/isolinux/boot.msg добавляем подсказку по вызову kickstart-конфигурации "ks=cdrom:/rhel52.ks.cfg"
16. Создаем загрузочный ISO:
mkisofs -r -T -J -V "RHEL52 DVD" -b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table -o /tmp/rhel52.iso /build/rhel52
URL: http://www.linuxquestions.org/questions/linux-enterprise-47/...
Обсуждается: http://www.opennet.dev/tips/info/2350.shtml