linux安装详解-配置ks.cfg实现自动安装过程

简介:

每一个优秀的人,都有一段沉默的时光。那一段时光,是付出了很多努力,忍受孤独和寂寞,不抱怨不诉苦,日后说起时,连自己都能被感动日子。

                                                        --马哥语录

之前发过一篇关于通过PEX实现linux批量无人值守自动安装的博文,不过写的只是具体的配置和操作,对于原理部分没有说明,最近通过一段时间的学习,把linux的启动安装过程深入的了解了下,这里还要特别感谢马哥的指导

言归正传,下面开始深入探讨linux的安装

linux安装大致可以分为2个阶段

第一阶段:anaconda

第二阶段:installinstall阶段系统会按照anaconda阶段设定的参数自动安装,这里主要要说的是anaconda阶段,此阶段是linux的预安装环境,提供linux安装选项的一个接口,可以将它比作是window中的PE环境

anaconda有两种模式:交互式和非交互式

交互式就和普通安装一样,按照提示选择选项一步步的安装

非交互式则通过读取kickstart文件的配置,进行自动安装,这和window中的无人值守安装差不多的,这个文件即是ks.cfg文件(相当于window中的wi2k3.sif应答文件)

而在安装linux过程中,获取ks.cfg文件的方式有多种,如直接在cdrom中获取,常见的形式还有http,ftp,nfs等方式

格式有三种:

cdrom和硬盘

ks=cdrom:/dir/ks.cfg(硬盘的话把cdrom换成hd即可,下面的类似)

http和ftp

ks=http://domain.com/dir/ks.cfg

NFS

ks=nfs:domain.com:/dir/ks.cfg

三种格式主要区分在于后面的斜杠,这里要注意区分

 

在使用ks.cfg之前,需要先引导启动环境

引导方式有很多,cdrom,usb,PXE等。

在引导进入anaconda后,即可通过读取ks.cfg来进行系统的自动安装

这里开始说说kickstart文件的大致内容

ks.cfg文件组成大致分为3段

1.命令段:

键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项

2.软件包段:

%packages

@groupname:指定安装的包组

package_name:指定安装的包

-package_name:指定不安装的包

在安装过程中默认安装的软件包,安装软件时会自动分析依赖关系。

3.脚本段(可选):

%pre:预安装脚本(由于只依赖于启动镜像,支持的命令很少)

%post:后安装脚本(基本支持所有命令)

 

而具体的ks.cfg文件的配置,我们只需要在已经安装好的linux的root家目录找到anaconda_ks.cfg(这个ks文件就是在安装linux后,根据用户的安装选项自动生成的)

下面的是我的一个样例

 

(系统是CentOS-6.2-i386-minimal,所以配置样例比较精简)

 

 
  1. # Kickstart file automatically generated by anaconda. 
  2.  
  3. #version=DEVEL 
  4.  
  5. install  #表示是安装,而不是升级 
  6.  
  7. text #文本方式安装 
  8.  
  9. cdrom #安装方式,如果是网络安装的话可以写成 url ––url ftp://192.168.1.254/dir 或者 nfs --server=192.168.0.241 --dir=/centosinstall 
  10.  
  11. key –skip #这个是我另外添加的,如果是redhat的系统,会要求输入key,这里配置为跳过,如果不配置安装时会停在那里要求用户输入key 
  12.  
  13. lang en_US.UTF-8  #语言 
  14.  
  15. keyboard us #键盘样式 
  16.  
  17. network --onboot no --device eth0 --noipv4 --noipv6 #网络配置 配置具体参数样例:network –onboot yes --bootproto=static --ip=192.168.1.1 --netmask=255.255.255.0 其他网关,DNS等格式和ifcfg-ethx的方式一样 
  18.  
  19. rootpw  --iscrypted $6$PEJ49S7OkrNra3UM #管理员密码,是加密过的 要是使用不加密的方式则这样写:rootpw 123456 

  20. firewall --service=ssh #开启防火墙,并打开ssh端口 
  21.  
  22. authconfig --enableshadow --passalgo=sha512 #用户认证和密码加密方式 
  23.  
  24. selinux --enforcing #强制打开selinux 
  25.  
  26. timezone --utc Etc/GMT+8 #时区设置 
  27.  
  28. zerombr yes #清空磁盘的mbr 
  29.  
  30. bootloader --location=mbr --driveorder=sda #引导程序相关参数 
  31.  
  32. # The following is the partition information you requested 
  33. # Note that any partitions you deleted are not expressed 
  34. # here so unless you clear all partitions first, this is 
  35. # not guaranteed to work 
  36.  
  37. clearpart –all –initlabel #初始化磁盘 
  38.  
  39. part / --fstype=ext4 --size=18000 #开始分区 
  40. part swap --grow --size=1024 
  41. repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100 
  42.  
  43. reboot 
  44.  
  45.  
  46. %packages --nobase #安装的软件包,这里由于我安装的是最小mini版,所以只安装了核心软件包组 
  47. @core 
  48.   
  49.  
  50. %post #后安装脚本(这里是我另外添加的,原来文件中没有) 
  51. id lustlost &>; /dev/null || useradd lustlost #检查是否有lustlost用户,如果没有则添加 
  52. echo 123456 | passwd –stdin lustlost #配置密码 
  53.  
  54. cat >> /etc/yum.repos.d/base.repo << eof 
  55. [base] 
  56. name=baseserver 
  57. baseurl=http://192.168.1.254/yum 
  58. gpgcheck=0 
  59. enable=1 
  60. eof                                 #这里在安装系统成功后执行脚本自动配置一个yum源,其他脚本可以按照需要定义 
  61.  
  62. %end 

如果觉得使用样本的方式手工写配置文件比较麻烦,也可以使用图形化工具来制作ks.cfg文件

在linux中用yum安装system-config-kickstart就行了(图形化依赖于x-window),选项也有些限制(比如分区不能使用lvm),这里就不再演示了



本文转自lustlost 51CTO博客,原文链接:http://blog.51cto.com/lustlost/910705,如需转载请自行联系原作者

相关文章
|
4月前
|
Ubuntu Linux
计算机基础知识:linux系统怎么安装?
在虚拟机软件中创建一个新的虚拟机,并选择相应操作系统类型和硬盘空间大小等参数。将下载的 ISO 镜像文件加载到虚拟机中。启动虚拟机,进入安装界面,并按照步骤进行安装。安装完成后,可以在虚拟机中使用 Linux 系统。
|
4月前
|
Ubuntu Linux
任何Ubuntu用户都应安装的四大Linux应用程序
当然,这款程序不需要太多介绍。我们面对的是网上最庞大最完整的多媒体中心,由于丰富的插件,我们能够高度细化地定制其每一项功能。这是我们的Linux发行版不可或缺的必备软件。 我们可以通过运行以下命令来轻松安装Kodi:sudo apt install kodi。
|
4月前
|
Ubuntu 物联网 Linux
从零安装一个Linux操作系统几种方法,以Ubuntu18.04为例
一切就绪后,我们就可以安装操作系统了。当系统通过优盘引导起来之后,我们就可以看到跟虚拟机中一样的安装向导了。之后,大家按照虚拟机中的顺序安装即可。 好了,今天主要介绍了Ubuntu Server版操作系统的安装过程,关于如何使用该操作系统,及操作系统更深层的原理,还请关注本号及相关圈子。
|
4月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
2月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
152 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
2月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
209 11
|
2月前
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
249 0
|
4月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
204 5
|
4月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。