当前位置:网站首页>ks.cfg 怎么读取光盘 (cdrom) 上的文件并执行对应的脚本
ks.cfg 怎么读取光盘 (cdrom) 上的文件并执行对应的脚本
2022-08-02 14:16:00 【freeabc】
ks.cfg 文件怎么实现读取光盘 (CDROM) 上的内容并执行自定义脚本
我们知道 linux 系统安装过程中,要想实现自动化安装,一般都是利用 Kickstart 这个工具实现,最重要的就是其配置文件 ks.cfg,ks.cfg 定义了安装过程中每一步的动作。ks.cfg 文件有一段 % post 开头 % end 结尾的部分,其作用就是让用户在系统安装完成后,需要执行一些特定的脚本,以完成目中目的的需要。 这个阶段默认其实已经经过系统执行了 chroot 了,默认根就是执行 chroot 之前的 /mnt/sysimage 目录。我们搜到的资料大部分都是安装光盘上的 RPM 包或 DEB 包。如果我们安装过程中,想把光盘上的文件拷贝到新安装系统的指定目录内,并执行自己定义的部分脚本,达到自己想要定制的目的,该怎么办呢?
禁止进入 chroot
我们知道经过 chroot 之后,安装阶段基本没有访问光盘的手段,网上相关的资料甚少,那么怎么解决这个问题呢? 就是执行 % post 的阶段不需要 chroot ,经过查询大量资料,其实可以用下面的方法让安装过程中,不进入 chroot。
%post --nochroot
我们想要执行的动作都放到这个地方
%end
其实加上 --nochroot 参数就可以达到这个目的。那么此时的光盘一般都是 /dev/cdrom 这个路径,那我们即将安装的系统目录一般就是 /mnt/sysimage ,我们做的目的就是把光盘上的内容拷贝到 /mnt/sysimage 内。因此我们的脚本就可以变成下面这样
*** 拷贝光盘上内容到安装目的盘上并执行脚本 ***
| 光盘文件 | 说明 |
|---|---|
| /my_doc/my.tar.gz | 此文件在光盘上的路径 |
| /my_doc/my.sh | 脚本文件在光盘上的路径 |
%post --nochroot
mkdir /mnt/sysimage/root/cdrom
mount -t auto /dev/cdrom /mnt/sysimage/root/cdrom
mkdir /mnt/sysimage/root/my_doc
cp /mnt/sysimage/cdrom/my_doc/my.sh /mnt/sysimage/root/my_doc/my.sh
chmod +x /mnt/sysimage/root/my_doc/my.sh
cp /mnt/sysimage/cdrom/my_doc/my.tar.gz /mnt/sysimage/root/my_doc/my.tar.gz
chroot /mnt/sysimage/ /bin/sh /root/my_doc/my.sh
%end
具体步骤解释如下:
映射光盘到指定目录 mkdir /mnt/sysimage/root/cdrom mount -t auto /dev/cdrom/mnt/sysimage/root/cdrom
从光盘上拷贝自定义内容到自定义目录 cp /mnt/sysimage/cdrom/my_doc/my.sh/mnt/sysimage/root/my_doc/my.sh chmod +x /mnt/sysimage/root/my_doc/my.sh cp /mnt/sysimage/cdrom/my_doc/my.tar.gz/mnt/sysimage/root/my_doc/my.tar.gz
执行自定义脚本 chroot /mnt/sysimage//bin/sh/root/my_doc/my.sh 想做什么操作,都通过 my.sh 进行实现即可
自定义内容:
最好把所有的自定义内容放到一个目录内,打包成 .tar.gz ,利用脚本解压再执行相应的动作,如果自定义内容里包含 rpm 包有可能会导致系统安装时失败!
边栏推荐
- 软件测试之WEB自动化
- The relationship between base classes and derived classes [inheritance] / polymorphism and virtual functions / [inheritance and polymorphism] abstract classes and simple factories
- Vert.x web 接收请求时反序列化对象 Failed to decode 如何解决?
- 【solidity智能合约基础】节约gas的利器--view和pure
- 你的站点可能还没有准备好用于Site KitSite Kit 无法访问 WordPress REST API。请确保其已在您的站点上启用。
- 【线程安全】用户级,内核级,组合级线程|线程同步的处理(条件变量)|strtok_r(可冲入函数)
- Mobile copy constructor
- 虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。模块“Upgrade”启动失败。未能启动虚拟机。
- 光波导的入射耦合和出射耦合区域
- OpenPose Basic Philosophy
猜你喜欢
随机推荐
WEB自动化之多窗口操作、切换frame、弹窗处理
消息队列的技术选型
LAMP环境 源码编译安装(Apache 2.4.52 +mysql 8.0.28+php 8.1.3)
一线大厂研发流程(转载自鱼皮)
Mysql索引优化一
Oauth2.0 custom response values and exception handling
【solidity智能合约基础】节约gas的利器--view和pure
类模板/赋值运算和加等运算
抽象队列同步器AQS应用Lock详解
OpenPose 运行指令 ([email protected])
【线程安全】用户级,内核级,组合级线程|线程同步的处理(条件变量)|strtok_r(可冲入函数)
Technical Selection of Message Queuing
tcp transparent proxy (IP_TRANSPARENT)
OpenPose 命令行说明
【Solidity智能合约基础】-- 基础运算与底层位运算
计算机网络中的安全(一)网络安全的概念与加密原理
华为Mux VLAN 二层流量隔离
虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。模块“Upgrade”启动失败。未能启动虚拟机。
[Inter-process communication]: pipe communication/named/unnamed
OpenPose 基本理念









