阅读量:2
自制ISO启动镜像,用于服务器带外获取设备信息
本文介绍了一种制作系统启动盘的方法。可以在没有OS登录权限或未安装OS时检查PCIE等设备的运行状态,获取设备信息,典型应用场景如下:
- PCIE设备的固件升级,获取固件版本,执行PCIE相关测试等
- 获取服务器信息(PCIE槽位、服务器型号、内存配置等)
实现思路:
- 修改官方镜像(本文采用Centos7 ISO镜像 )
- 删除多于文件,仅保留系统引导需要的文件(方便传输、加快加载速度)
- 编译busybox制作根文件系统
- 准备一台物理机,开发需要的工具(编译设备驱动,SDK,测试工具等)。之后连同依赖库打包到根文件系统,制作initrd
- 拷贝出当前物理机使用的Linux内核镜像(与编译出的设备驱动相匹配)
- 将上面的initrd和Linux内核镜像,拷贝到UltraISO编辑器中,替换initrd.img和vmlinuz
- 保存为新的ISO
- 进入服务器BMC WEB页面,打开KVM控制台,加载上面的ISO镜像,选择从光盘启动
- ISO里的测试工具运行完毕后,清屏,输出总结,要求一屏能放下。可截屏存档
环境信息
属性 | 值 |
---|---|
准备initrd.img和vmlinuz的系统 | CentOS Linux release 7.4.1708 (Core) |
服务器 | Inspur NF5280M5 |
约束 | 目前仅支持UEFI启动方式 |
用到的工具
名称 | 下载链接 | 用途 |
---|---|---|
Centos7安装镜像 | 点击下载 | 系统引导镜像 |
UltraISO | 点击下载 | 修改ISO镜像的工具 |
制作ISO启动镜像
升级GCC[可选]
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum clean all yum makecache yum install -y centos-release-scl yum install -y devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-gdb yum install -y glibc-static libstdc++-static source /opt/rh/devtoolset-7/enable
准备根文件系统
export ROOT=$PWD wget --no-check-certificate https://busybox.net/downloads/busybox-1.32.1.tar.bz2 tar -jxvf busybox-1.32.1.tar.bz2