3 制作引导光盘和U盘

可以定制安装光盘,并结合kickstart实现基于光盘启动的半自动化安装

实现过程

[root@centos8 ~]# mount /dev/sr0 /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@centos8 ~]# mkdir -pv /data/myiso
mkdir: created directory '/data'
mkdir: created directory '/data/myiso'
[root@centos8 ~]# cp -r /mnt/isolinux/ /data/myiso/
[root@centos8 ~]# tree /data/myiso/
/data/myiso/
└── isolinux
    ├── boot.cat
    ├── boot.msg
    ├── grub.conf
    ├── initrd.img
    ├── isolinux.bin
    ├── isolinux.cfg
    ├── ldlinux.c32
    ├── libcom32.c32
    ├── libutil.c32
    ├── memtest
    ├── splash.png
    ├── TRANS.TBL
    ├── vesamenu.c32
    └── vmlinuz

1 directory, 14 files
[root@centos8 ~]# vim /data/myiso/isolinux/isolinux.cfg
# 方法1:应答文件放在ISO文件里
label linux
  menu label ^Auto Install CentOS Linux 8
  kernel vmlinuz
  initrd=initrd.img ks=cdrom:/myiso.cfg
# 方法2:应答文件放在http服务器上
label linux
  menu label ^Auto Install CentOS Linux 8
  kernel vmlinuz
  append initrd=initrd.img ks=http://10.0.0.8/ksdir/centos8.cfg quiet
label rescue
  menu label ^Rescue a CentOS Linux system
  kernel vmlinuz
  append initrd=initrd.img inst.repo=http://10.0.0.8/centos/8/os/x86_64/ rescue quiet
label local
  menu default
  menu label Boot from ^local drive
  localboot 0xffff

[root@centos8 ~]# cp centos8.cfg /data/myiso/
[root@centos8 ~]# dnf install mkisofs -y   # 其实来自于(genisoimage包)
[root@centos8 ~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Centos 8.1 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso /data/myiso/
I: -input-charset not specified, using utf-8 (detected in locale settings)
genisoimage 1.1.11 (Linux)
Scanning /data/myiso/
Scanning /data/myiso/isolinux
Excluded: /data/myiso/isolinux/TRANS.TBL
Excluded by match: /data/myiso/isolinux/boot.cat
Writing:   Initial Padblock                        Start Block 0
Done with: Initial Padblock                        Block(s)    16
Writing:   Primary Volume Descriptor               Start Block 16
Done with: Primary Volume Descriptor               Block(s)    1
Writing:   Eltorito Volume Descriptor              Start Block 17
Size of boot image is 4 sectors -> No emulation
Done with: Eltorito Volume Descriptor              Block(s)    1
Writing:   Joliet Volume Descriptor                Start Block 18
Done with: Joliet Volume Descriptor                Block(s)    1
Writing:   End Volume Descriptor                   Start Block 19
Done with: End Volume Descriptor                   Block(s)    1
Writing:   Version block                           Start Block 20
Done with: Version block                           Block(s)    1
Writing:   Path table                              Start Block 21
Done with: Path table                              Block(s)    4
Writing:   Joliet path table                       Start Block 25
Done with: Joliet path table                       Block(s)    4
Writing:   Directory tree                          Start Block 29
Done with: Directory tree                          Block(s)    2
Writing:   Joliet directory tree                   Start Block 31
Done with: Joliet directory tree                   Block(s)    2
Writing:   Directory tree cleanup                  Start Block 33
Done with: Directory tree cleanup                  Block(s)    0
Writing:   Extension record                        Start Block 33
Done with: Extension record                        Block(s)    1
Writing:   The File(s)                             Start Block 34
 14.39% done, estimate finish Fri Apr 30 15:47:02 2021
 28.80% done, estimate finish Fri Apr 30 15:47:02 2021
 43.16% done, estimate finish Fri Apr 30 15:47:02 2021
 57.56% done, estimate finish Fri Apr 30 15:47:02 2021
 71.92% done, estimate finish Fri Apr 30 15:47:02 2021
 86.33% done, estimate finish Fri Apr 30 15:47:03 2021
Total translation table size: 5376
Total rockridge attributes bytes: 1693
Total directory bytes: 2048
Path table size(bytes): 26
Done with: The File(s)                             Block(s)    34578
Writing:   Ending Padblock                         Start Block 34612
Done with: Ending Padblock                         Block(s)    150
Max brk space used 0
34762 extents written (67 MB)

[root@centos8 ~]# yum install httpd -y
[root@centos8 ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@centos8 ~]# mkdir -pv /var/www/html/centos/8/os/x86_64
mkdir: created directory '/var/www/html/centos'
mkdir: created directory '/var/www/html/centos/8'
mkdir: created directory '/var/www/html/centos/8/os'
mkdir: created directory '/var/www/html/centos/8/os/x86_64'
[root@centos8 ~]# mount /dev/sr0 /var/www/html/centos/8/os/x86_64
mount: /var/www/html/centos/8/os/x86_64: WARNING: device write-protected, mounted read-only.
[root@centos8 ~]# mkdir /var/www/html/ksdir
[root@centos8 ~]# cp centos8.cfg /var/www/html/ksdir

mkisofs选项说明

[OPTION] 意义
-o 指定映像文件的名称。
-b 指定在制作可开机光盘时所需的开机映像文件。
-c 制作可开机光盘时,会将开机映像文件中的no-eltorito-catalog全部内容作成一个文件。
--no-emul-boot 非模拟模式启动。
--boot-load-size 4 设置载入部分的数量
--boot-info-table 在启动图形中的显示信息
-R或--rock 使用Rock RidgeExtensions
-J或--joliet 使用Joliet格式的目录与文件名称
-v或--verbose 执行时显示详细的信息
-T或--translation-table 建立文件名的转换表,适用于不支持Rock Ridge Extensions的系统上