科技网站备案,网站注销备案查询,西安做效果图的公司,成都小程序开发公司找哪家Kickstart自动化安装过程中自动选择较小的磁盘安装操作系统
需求
在实际生成操作过程中#xff0c;一般会遇到物理服务器存在多块盘的情况。 安装过程中#xff0c;磁盘的标签是随机分配的#xff0c;并不是空间较小的盘#xff0c;就会使用较小的磁盘标签 而需求往往需要…Kickstart自动化安装过程中自动选择较小的磁盘安装操作系统
需求
在实际生成操作过程中一般会遇到物理服务器存在多块盘的情况。 安装过程中磁盘的标签是随机分配的并不是空间较小的盘就会使用较小的磁盘标签 而需求往往需要将操作系统安装到较小的盘中作为系统盘
问题分析
需要判断出当前物理机存在磁盘的数量需要选举出较小的磁盘指定较小磁盘的磁盘标签进行自动化安装
处理办法
Linux提供了list-harddrives变量用于保存当前机器的磁盘情况 该变量的格式为
echo $(list-harddrives)
磁盘标签1 磁盘1大小 磁盘标签2 磁盘2大小 ...可以使kickstart提供的%per脚本输出最小的磁盘的标签用于获取指定的磁盘 %per脚本 kickstart中用于在安装操作系统前执行的脚本此处脚本执行过程中是在chroot环境下部分命令和参数无法使用需要注意 同时将创建磁盘和vg的命令输出到临时文件中使用kickstart的include功能执行命令案例如下
# 假设 list-harddrives 命令的输出是这样的sda 20480 sdb 10240
output$(list-harddrives)# 初始化最小磁盘大小和名称
min_size999999999999
min_disk# 遍历输出中的每个磁盘信息
# 使用 set -- $output 将输出分割为位置参数
set -- $output
while (( $# )); dodisk$1shiftsize$1size_int${size%.*}shift# 比较大小更新最小磁盘信息if (( size_int min_size )); thenmin_size$size_intmin_disk$diskfi
done# 选举出最小的磁盘标签
# 将最小磁盘标签引用到以下的命令中
# 将命令输出到/tmp/part中echo ignoredisk --only-use${min_disk} /tmp/part
# Partition clearing information
echo clearpart --all --initlabel /tmp/part
# Disk partitioning information
echo part /boot --fstypexfs --ondisk${min_disk} --size1024 /tmp/part
echo part /boot/efi --fstypeefi --ondisk${min_disk} --size600 --fsoptionsumask0077,shortnamewinnt /tmp/part
echo part pv.119 --fstypelvmpv --ondisk${min_disk} --size1 --grow /tmp/part
echo volgroup vg00 --pesize4096 pv.119 /tmp/part
echo logvol swap --fstypeswap --size32768 --namelvswap --vgnamevg00 /tmp/part
echo logvol / --fstypexfs --size71676 --namelvroot --vgnamevg00 /tmp/part
echo logvol /home --fstypexfs --size61440 --namelvhome --vgnamevg00 /tmp/part
echo logvol /usr --fstypexfs --size71676 --namelvusr --vgnamevg00 /tmp/part
echo logvol /var --fstypexfs --size153596 --namelvvar --vgnamevg00 /tmp/part
%end# 将临时文件中的命令包含到kickstart配置中
# include diskinfo
zerombr
%include /tmp/part