#author("2019-02-16T15:55:23+00:00","default:sysosa","sysosa")
VMwareESXiにて仮想マシンを作って検証らを行っているのだが、
仮想マシンの作成を楽にしたいと思ってきた。

調べるとVagrantを習得すべきなのかな?っと思うのだが、基本のkickstartをここでは取り上げる。
方針は、&color(green){CentOS-7-x86_64-Minimal-1708.iso};をベースに調整を施して
MACアドレスから、DNS/DHCP機能を経由して、マシン名・IPアドレスが自動的に決まるブートisoを作る。
BIOSでもUEFIでもどちらでも動くようにする。
またnicの名称はeth0とCentOS6で使っていたような名称にする

[[kickstart/netinstall]] NFSサーバにCentOS7のインストールコンテンツを配置してnetinstallで構築
関連[[PXEboot]]


&size(10){[[kickstart/centos6]]};
***材料の調理 [#z5186712]
まずはベースとなる&color(green){CentOS-7-x86_64-Minimal-1708.iso};を下拵え。
isoファイルは/mnt/isoにマウントさせ、その内容を全て/mnt/kickstart にコピーする。
その/mnt/kickstart に展開された&color(green){Minimal};に調整を施して専用のisoファイルを作る

#code(nonumber){{
[root@c ~]# mkdir /mnt/{iso,kickstart}
[root@c ~]# mount -t iso9660 -o ro,loop /export/CentOS-7-x86_64-Minimal-1708.iso /mnt/iso

[root@c ~]# rsync -avz /mnt/iso/  /mnt/kickstart/
}}

***isolinux.cfgの調整 [#hea88f6c]
まずはBIOSベースなマシン向けの調整

起動後にkickstart設定ファイルをロードさせるために
&color(orange){/mnt/kickstart/isolinux/isolinux.cfg};ファイルを変更します。

#code(diff,nonumber){{
[root@c ~]# diff -u /mnt/iso/isolinux/isolinux.cfg /mnt/kickstart/isolinux/isolinux.cfg
--- /mnt/iso/isolinux/isolinux.cfg      2017-09-05 22:36:38.000000000 +0900
+++ /mnt/kickstart/isolinux/isolinux.cfg        2017-09-25 12:16:21.373694668 +0900
@@ -1,5 +1,5 @@
-default vesamenu.c32
-timeout 600
+default kickstart
+timeout 10

 display boot.msg

@@ -58,6 +58,12 @@
 menu separator # insert an empty line
 menu separator # insert an empty line

+label kickstart
+  menu label ^Kickstart CentOS 7
+  menu default
+  kernel vmlinuz
+  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 inst.ks=cdrom:/ks.cfg net.ifnames=0
+
 label linux
   menu label ^Install CentOS 7
   kernel vmlinuz
@@ -65,7 +71,6 @@

 label check
   menu label Test this ^media & install CentOS 7
-  menu default
   kernel vmlinuz
   append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet

[root@c ~]#
}}
&color(red){*};&size(10){「inst.stage2=hd:LABEL=CentOS\x207\x20x86_64」のCentOS\x207\x20x86_64は、mkisofsの際の「&color(red){-V};」に繋がる};

***grub.cfgの調整 [#p0c2434c]
次に、UEFI向けの調整として、&color(orangered){/mnt/kickstart/EFI/BOOT/grub.cfg};ファイルを変更します。
#code(diff,nonumber){{
[root@c ~]# diff -u /mnt/iso/EFI/BOOT/grub.cfg /mnt/kickstart/EFI/BOOT/grub.cfg
--- /mnt/iso/EFI/BOOT/grub.cfg  2017-09-05 22:36:38.000000000 +0900
+++ /mnt/kickstart/EFI/BOOT/grub.cfg    2017-09-25 12:19:03.991991996 +0900
@@ -14,7 +14,7 @@
 insmod part_gpt
 insmod ext2

-set timeout=60
+set timeout=10
 ### END /etc/grub.d/00_header ###

 search --no-floppy --set=root -l 'CentOS 7 x86_64'
@@ -24,6 +24,10 @@
        linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
        initrdefi /images/pxeboot/initrd.img
 }
+menuentry 'Install kickstart CentOS 7' --class fedora --class gnu-linux --class gnu --class os {
+       linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 inst.ks=cdrom:/ks.cfg net.ifnames=0
+       initrdefi /images/pxeboot/initrd.img
+}
 menuentry 'Test this media & install CentOS 7' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
        initrdefi /images/pxeboot/initrd.img
[root@c ~]#
}}

***ks.cfgを作成 [#u7d8b237]
kickstartの設定ファイル&color(orchid){/mnt/kickstart/ks.cfg};を用意します。
#code(nonumber){{
[root@c ~]# vi /mnt/kickstart/ks.cfg
cdrom
graphical
ignoredisk --only-use=sda
lang ja_JP.UTF-8
keyboard --vckeymap=jp --xlayouts='jp'
network  --bootproto=dhcp --device=eth0 --noipv6 --activate
auth --enableshadow --passalgo=sha512
rootpw --plaintext xxxxxxx

firstboot --disabled
firewall --disabled
selinux --disabled
eula --agreed

services --enabled="chronyd"
timezone Asia/Tokyo --isUtc --ntpservers=c.sybyl.local
bootloader --location=mbr --boot-drive=sda --append="net.ifnames=0"
clearpart --drives=sda --all --initlabel
part /boot --fstype="xfs" --ondisk=sda --size=512
part swap --fstype="swap" --ondisk=sda --size=1024
part / --fstype="xfs" --ondisk=sda --size=4096 --grow
part /boot/efi --fstype="efi" --ondisk=sda --size=512 --fsoptions="umask=0077,shortname=winnt"

reboot

%packages
@^minimal
@core
chrony
-biosdevname

%end
[root@c ~]#
}}

***再度isoファイルを作成する [#rc553f85]
修正した&color(orange){isolinux.cfg};と&color(orangered){grub.cfg};と&color(orchid){ks.cfg};を含む iso ファイルを再度作る
isoファイルを作成する mkisofs は genisoimage パッケージに存在するので、まずはそれをインストール
#code(nonumber){{
[root@c ~]# yum install genisoimage
}}
そして、目的のisoファイル(&color(magenta){CentOS-7-x86_64-Kickstart-1708.iso};) を作成する。

#code(nonumber){{
[root@c ~]# cd /mnt/kickstart/
[root@c kickstart]# pwd
/mnt/kickstart

[root@c kickstart]# ls -CF
CentOS_BuildTag  EULA  LiveOS/    RPM-GPG-KEY-CentOS-7          TRANS.TBL  isolinux/  repodata/
EFI/             GPL   Packages/  RPM-GPG-KEY-CentOS-Testing-7  images/    ks.cfg

[root@c kickstart]# mkisofs \
    -v -r -J -T -l -input-charset utf-8 \
    -o ../CentOS-7-x86_64-Kickstart-1708.iso \
    -b isolinux/isolinux.bin \
    -c isolinux/boot.cat \
    -V 'CentOS 7 x86_64' \
    -no-emul-boot \
    -boot-load-size 4 \
    -boot-info-table \
    -eltorito-alt-boot \
    -e images/efiboot.img \
    -no-emul-boot  ./

[root@c kickstart]#
[root@c kickstart]# ls -lh ../CentOS-7-x86_64-Kickstart-1708.iso
-rw-r--r-- 1 root root 792M  9月 25 12:31 ../CentOS-7-x86_64-Kickstart-1708.iso

[root@c kickstart]#
}}
&color(red){-v};は詳細表示。&color(red){-v -v};でさらに詳細な情報が表示される。&color(red){-no-emul-boot};が二回使われているがそうゆうものです。他のオプションは http://linux.die.net/man/8/mkisofs 参照

&color(red){*};&size(10){mkisofsに「&color(red){-d};」を追加すると「Warning: creating filesystem that does not conform to ISO-9660」と言われた};

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS