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 6PEJ49S7OkrNra3UM #管理员密码,是加密过的 要是使用不加密的方式则这样写: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,如需转载请自行联系原作者

目录
打赏
0
0
0
0
69
分享
相关文章
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
33 3
|
14天前
|
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
72 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
55 21
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
|
27天前
|
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
137 25
|
1月前
|
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
57 13
|
1天前
|
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
10 0
|
1月前
|
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
54 5
|
1月前
|
Linux 安装 Qualcomm ® SnapdragonTM Profiler
通过本文的详细介绍,您应该已经成功在 Linux 系统上安装并配置了 Qualcomm® Snapdragon™ Profiler,并能够连接 Android 设备进行性能分析。Snapdragon Profiler 提供了丰富的工具和功能,可以帮助开发者深入了解应用程序的性能瓶颈,从而进行优化。希望本文能对您有所帮助,让您在开发过程中更高效地使用 Snapdragon Profiler 进行性能分析和优化。
91 10
|
1月前
|
Linux安装svn并启动
Linux安装svn并启动
64 10
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等