Монтирование | Изменение | Редактирование | Репак | Создание ISO UEFI с файлом Kickstart внутри

by itisgood
Процесс установки Linux можно упростить с помощью метода установки Kickstart, который используется в дистрибутивах Linux, таких как: Red Hat, Debian, Fedora, CentOS, Ubuntu.
Этот метод использует так называемый Kickstart File, который описывает конфигурацию, необходимые установки и задачи после установки для установки Kickstart Linux.
Файл Kickstart можно поместить в удаленный репозиторий, доступный через NFS, HTTP, FTP и т. д., или может быть включен в образ ISO, что довольно удобно, особенно если мы не хотим или не можем создать сетевой репозиторий для хранения файла Kickstart.
В этом уроке мы загрузим оригинальный образ ISO CentOS 7.2 / RHEL 7.2 ISO, смонтируем его в файловой системе Linux, изменим его, добавив Kickstart File (ks.cfg) и повторно упакуя его для создания пользовательского загрузочного образа RHEL 7.2 ISO UEFI с использованием mkisofs команда.
Примечание: описанная ниже процедура описывает создание пользовательского образа ISO UEFI, поэтому образ не загружается в Legacy BIOS.

1. Установите ISO-образ для чтения в файловой системе Linux

[ ~]# mkdir /mnt/rhel72_image
[ ~]# mount -o loop /tmp/rhel-server-7.2-x86_64-dvd.iso /mnt/rhel72_image/
mount: /dev/loop0 is write-protected, mounting read-only
[ ~]# df -hT | grep /dev/loop0
/dev/loop0     iso9660   3.8G  3.8G     0 100% /mnt/rhel72_image

Примечание: образ ISO не может быть установлен для чтения-записи, поэтому мы монтируем его только для чтения, а затем мы скопируем содержимое в новый рабочий каталог.

2. Скопируйте содержимое ISO в новый рабочий каталог

Поскольку образ ISO монтируется только для чтения, нам нужно скопировать содержимое в новый каталог, чтобы иметь возможность редактировать его файлы.

[ ~]# cp -aR /mnt/rhel72_image/ /mnt/custom_rhel72_image/
[ ~]# ls -al /mnt/custom_rhel72_image/
total 384
dr-xr-xr-x. 10 root root   4096 Oct 30  2015 .
drwxr-xr-x.  6 root root     80 Sep 12 15:42 ..
dr-xr-xr-x.  4 root root     52 Oct 30  2015 addons
-r--r--r--.  1 root root     56 Oct 30  2015 .discinfo
dr-xr-xr-x.  3 root root     17 Oct 30  2015 EFI
-r--r--r--.  1 root root   8266 Apr  4  2014 EULA
-r--r--r--.  1 root root  18092 Mar  6  2012 GPL
dr-xr-xr-x.  3 root root     54 Oct 30  2015 images
dr-xr-xr-x.  2 root root   4096 Oct 30  2015 isolinux
dr-xr-xr-x.  2 root root     41 Oct 30  2015 LiveOS
-r--r--r--.  1 root root    114 Oct 30  2015 media.repo
dr-xr-xr-x.  2 root root 241664 Oct 30  2015 Packages
dr-xr-xr-x. 24 root root   4096 Oct 30  2015 release-notes
dr-xr-xr-x.  2 root root   4096 Oct 30  2015 repodata
-r--r--r--.  1 root root   3375 Oct 23  2015 RPM-GPG-KEY-redhat-beta
-r--r--r--.  1 root root   3211 Oct 23  2015 RPM-GPG-KEY-redhat-release
-r--r--r--.  1 root root   1568 Oct 30  2015 TRANS.TBL
-r--r--r--.  1 root root   2176 Oct 30  2015 .treeinfo

Примечание. Убедитесь, что скрытые файлы (.discinfo, .treeinfo) также были скопированы

3. Поместите файл кикстарта в рабочий каталог ISO

Теперь давайте подготовим файл кикстарта и поместим его в основной рабочий каталог (/ mnt / custom_rhel72_image /).

Ниже пример файла kickstart (ks.cfg), который используется в нашем учебнике:

[ ~]# cat /mnt/custom_rhel72_image/ks.cfg
lang en_US
keyboard us
timezone America/New_York --isUtc
rootpw $1$XzuKC4kZ$bmhF7BKD8ytLdK9IaZvKB2 --iscrypted
#platform x86, AMD64, or Intel EM64T
reboot
cdrom
bootloader --location=mbr --append="rhgb quiet crashkernel=auto"
zerombr
clearpart --all --initlabel
autopart
auth --passalgo=sha512 --useshadow
selinux --enforcing
firewall --enabled --ssh
skipx
firstboot --disable

%packages
@base
policycoreutils-python
libseccomp
%end

4. Измените конфигурационный файл GRUB для UEFI BOOT

Измените оригинальную запись main menu в файле /mnt/custom_rhel72_image/EFI/BOOT/grub.cfg:

menuentry 'Install Red Hat Enterprise Linux 7.2' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=RHEL-7.2\x20Server.x86_64 quiet
        initrdefi /images/pxeboot/initrd.img
}

… чтобы выглядело следующим образом:

menuentry 'Red Hat Enterprise Linux 7.2 Custom Kickstart Installation' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=RHEL-7.2\x20Server.x86_64 quiet inst.ks=cdrom:/ks.cfg
        initrdefi /images/pxeboot/initrd.img
}

5. Создайте пользовательский образ ISO UEFI Red Hat 7.2

Теперь создайте ISO-образ UEFI с помощью команды mkisofs с параметрами:

[ ~]# mkisofs -o /tmp/rhel_7.2_uefi_custom.iso -b isolinux/isolinux.bin -J -R -l -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -graft-points -V "RHEL-7.2 Server.x86_64" /mnt/custom_rhel72_image/

6. Post-process образ ISO с isohybrid

Соберем образ ISO 9660, сгенерированный с помощью mkisofs, чтобы позволить гибридную загрузку в качестве CD-ROM или как жесткий диск:

[ ~]# isohybrid --uefi /tmp/rhel_7.2_uefi_custom.iso
isohybrid: Warning: more than 1024 cylinders: 3954
isohybrid: Not all BIOSes will be able to boot this device

7. Запишите образ ISO UEFI

Запись создала образ ISO UEFI на DVD или монтировала его непосредственно в iLO сервера:

 

You may also like

Leave a Comment