Linux启动时磁盘识别顺序,解决PXE安装Linux系统时kickstart自动识别硬盘问题

本文介绍了如何在PXE安装Linux时,通过kickstart文件和预安装脚本自动识别磁盘,以解决安装过程中硬盘命名不一致的问题。通过判断磁盘容量,确保操作系统和MBR安装在正确的位置,提高批量部署效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用PXE结合kickstart文件可实现网络全自动安装Linux系统,按照kickstart语法须要在ks.cfg文件中指定操作系统安装的位置(指定硬盘)如hda、sda或硬盘的UUID等唯一标识,分区信息以及建立mbr的位置。

c7b2668b1319750fc4a2631378a564b9.png

如果硬盘命令指定有误,或与实际硬盘命令不符,无法找到对应的设备等那么anaconda会直接ks.cfg文件错误而导致安装失败;如果在ks.cfg文件中不指定硬盘信息,那么在进行到分区步骤时,anaconda会在此停下来让人工操作以便任务继续,那么批量主机安装系统时则严重降低部署效率。

正常情况下CentOS、RHEL、SUSE、Ubuntu等Linux系统按照SAS/SATA接口硬盘默认为/dev/sda、/dev/sdb、/dev/sdc....,但也有特殊情况,比如HP服务器主板加装P410阵列卡配置RAID后在CentOS/RHEL平台下默认以/dev/cciss/c0d0、/dev/cciss/c0来命名的;不同的虚拟化平台所虚拟化磁盘在Linux平台默认命令也可能不一样,Xen虚拟化磁盘默认以/dev/xvda、/dev/xvde命令;Kvm虚拟化磁盘默认以/dev/vda、/dev/vdb来命令等等。

如果主板直接接SAS/SATA硬盘或通过RAID控制器管理的本地硬盘通过PXE安装系统,会顺利将系统与mbr安装到本地硬盘上;如果主板通过光纤HBA卡映射的SAN存储,通过Linux内核优先扫描到,则被命令为/dev/sda等情况,那么默认可能会出现将操作系统安装到本地硬盘,而mbr安装到了SAN存储,导致安装完成后系统无法正常启动。

那么可否让anaconda可否根据磁盘大小或类型来自动识别磁盘的命名,并确定我们想要安装系统的位置呢?

这个问题是可以解决的,在kickstart语法中有pre预安装环境这一部分,在执行安装之前可做一些操作。在载入内核使用脚本判断出我们所需要安装硬盘的命名,再指定给kickstart文件调用即可。

这里我们使用容量大小为32GB的磁盘来安装操作系统与mbr,可从/proc/partitions文件内容判断第一块容量大小为32GB*1024*1024=3355442KB磁盘即可。

792ee1b707aa1a61e8b18bb598f3e965.png

预安装脚本部分(注意%pre最后要以%end来结束标识):

disk=$(while read line;do awk ‘BEGIN{} {if ($3 == "33554432" && $2 == "0") print $4} END{}‘;done < /proc/partitions)

cat > /tmp/part-include << EOF

# Disk partitioning information

part / --asprimary --fstype="ext4" --ondisk=$disk --size=24576

part swap --fstype="swap" --ondisk=$disk --size=8191

EOF

将判断识别后的磁盘名称按照kickstart语法写入临时文件/tmp/part-include,再将kickstart文件中分区参数的部分修改为调用/tmp/part-include文件中的内容

%include /tmp/part-include

完整部分如下图:

a56c5b4d5e38051c61a260188e7022cb.png

就这样不论磁盘如何命名,仅依据容量来判定安装系统的位置实现灵活性安装系统。

本文出自 “服务器系统交流” 博客,谢绝转载!

原文:http://1130739.blog.51cto.com/1120739/1757208

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值