【运维案例】initrd.img定制实践

环境要求:

下列操作需要在aarch64架构的openEuler-22.03-LTS的操作系统下执行,否则可能出现兼容性问题。

安装指南为:Installation

一、initrd.img获取

1.1、下载openEuler-22.03-LTS的官方ISO

linux:

wget https://repo.openeuler.org/openEuler-22.03-LTS/ISO/aarch64/openEuler-22.03-LTS-aarch64-dvd.iso



Windows:

页面下载:https://repo.openeuler.org/openEuler-22.03-LTS/ISO/aarch64/openEuler-22.03-LTS-aarch64-dvd.iso

1.2、挂载ISO

mkdir -p 临时目录(如:/opt/tmp/iso_mount)

mount -o loop ISO文件路径 临时目录(如:/opt/tmp/iso_mount)

1.3、拷贝initrd.img

挂载iso之后,initrd.img在xxx/images/pxeboot路径下,将其拷贝到其他路径下(随意指定,如/opt/tmp)



cp initrd.img路径(如:/opt/tmp/iso_mount/images/pxeboot/initrd.img) 新建路径(如/opt/tmp/)

二、解压initrd.img

2.1、更新initrd.img

由于initrd.img是xz压缩格式(可使用 file initrd.img查看),所以解压前需要先重命名为.xz结尾的文件:

mv initrd.img initrd.img.xz



解压initrd.img.xz:
xz -d initrd.img.xz

解压之后initrd.img名称不变

2.2、解压initrd.img

新建chroot路径(如:/opt/tmp/initrd):

mkdir -p /opt/tmp/initrd

cd /opt/tmp/initrd



解压:

cpio -idmv < initrd.img文件路径(如:/opt/tmp/initrd.img)

三、安装dnf

3.1、在外部操作系统下将dnf安装到initrd.img的解压路径下

dnf install --installroot=解压路径(如:/opt/tmp/initrd)dnf -y

四、重新制作initrd.img

4.1、新建新镜像存放路径

mkdir -p 新路径(如:/opt/tmp/new_initrd/)

4.2、压缩生成新的initrd.img

cd 旧initrd.img解压路径(如:/opt/tmp/initrd)

find . | cpio -o >新镜像存放路径(如:/opt/tmp/new_initrd/initrd.img)
2 个赞