使用光盘iso实现Linux操作系统的自动安装部署

简介: 前边写了一篇使用 PXE 的方式批量安装操作系统,不是任何时候任何地方都有环境来通过 PXE 方式来进行安装。如果此时需要通过光盘安装,默认的情况下是通过交互式方式进行安装,其实也可以通过 kickstart 的方式来实现自动化安装部署。

前边写了一篇使用 PXE 的方式批量安装操作系统,不是任何时候任何地方都有环境来通过 PXE 方式来进行安装。如果此时需要通过光盘安装,默认的情况下是通过交互式方式进行安装,其实也可以通过 kickstart 的方式来实现自动化安装部署。光盘通过 ks.cfg 进行安装的实现方式比较简单,下边简单的进行总结。

一、实现原理

光盘通过读取 ks.cfg 文件来实现安装操作系统,ks.cfg 配置文件放在光盘的根目录即可,然后修改 isolinux/isolinux.cfg 文件,设置内核参数,指定 ks.cfg 文件的位置即可。由于原始 iso 镜像文件是只读的,不能直接在 iso 光盘目录文件内进行修改,需要拷贝到一个临时目录,修改完后在封装为 iso 镜像文件。

二、拷贝镜像临时目录

mkdir /mnt/cdrom
mount -o loop CentOS-6.8-x86_64-minimal.iso /mnt/cdrom
cp -ar /mnt/cdrom/ /root/iso    # 原来root下没有iso目录,拷贝过来重命名为iso

三、生成 ks.cfg 文件

生成 ks.cfg 文件的方式大概有2种,一是可以通过图形工具 system-config-kickstart 来定制生成指定的 ks.cfg 文件,二是对于熟悉 kickstart 语法的可以直接编写 ks.cfg 配置文件。本次实验用的 ks.cfg 配置比较简单,是通过工具生成的,下边给出本次的 ks.cfg 文件。

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use CDROM installation media
cdrom
# Root password
rootpw --iscrypted $1$p6oEoqGo$UDHZdzw56Rl6Rt5oi1A0Q1
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
#reboot
# System timezone
timezone --isUtc Asia/Shanghai
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
part /boot --asprimary --fstype="ext4" --ondisk=sda --size=200
part swap --asprimary --fstype="swap" --ondisk=sda --size=4096
part / --asprimary --fstype="ext4" --grow --ondisk=sda --size=1

拷贝到光盘镜像根目录:

/bin/cp ks.cfg /root/iso/

四、修改启动项菜单内核参数

修改菜单项配置文件 isolinux/isolinux.cfg:

default vesamenu.c32
#prompt 1
timeout 1    # 超时自动选择菜单时间设置,设置为1时,即一闪而过,设置3秒为好。

修改内核参数,指定 ks.cfg 位置:

label linux
  menu label ^Install CentOS 6.8 x64 System.    # 自定义了菜单
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/ks.cfg     # 添加了ks文件的位置:光盘的根目录

五、封装iso镜像文件

cd /root/iso/    # 进入镜像制作目录

如果没有 mkisofs 命令,执行安装:

yum install mkisofs -y

执行封装镜像的命令:

mkisofs -o /root/CentOS6.8_x64.iso \
    -V centos6 -b isolinux/isolinux.bin \
    -c isolinux/boot.cat \
    -no-emul-boot -boot-load-size 4 \
    -boot-info-table -R -J -T -v .

校验并写入 md5 值(可选):

implantisomd5 /root/CentOS6.8_x64.iso

通过光盘实现自动化安装已经完成制作,接下来测试可以通过虚拟机,导入 iso 镜像来做测试。

 

相关文章
|
14天前
|
Linux 测试技术 网络安全
Linux系统之安装OneNav个人书签管理器
【10月更文挑战第19天】Linux系统之安装OneNav个人书签管理器
36 5
Linux系统之安装OneNav个人书签管理器
|
13天前
|
运维 监控 Linux
Linux系统之部署Linux管理面板1Panel
【10月更文挑战第20天】Linux系统之部署Linux管理面板1Panel
62 3
Linux系统之部署Linux管理面板1Panel
|
16天前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
38 5
Linux系统之安装Ward服务器监控工具
|
11天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
33 2
|
12天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
24 3
|
13天前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
34 2
|
14天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
139 2
|
14天前
|
Linux 网络安全 虚拟化
适用于Linux的Windows子系统(WSL1)的安装与使用记录
并放到启动文件夹,就可以开机自动启动了。
19 0
|
3天前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
12 0
Vanilla OS:下一代安全 Linux 发行版
|
6天前
|
人工智能 安全 Linux