之前发过一篇关于通过PXE实现Linux批量无人值守自动安装的文章(可以参考http://www.linuxidc.com/Linux/2011-08/39949.htm),不过写的只是具体的配置和操作,对于原理部分没有说明,最近通过一段时间的学习,把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,所以配置样例比较精简)# Kickstart file automatically generated by anaconda.

#version=DEVEL

install  #表示是安装,而不是升级

text #文本方式安装

cdrom #安装方式,如果是网络安装的话可以写成 url ––url ftp://192.168.1.254/dir 或者 nfs --server=192.168.0.241--dir=/centosinstall

key –skip #这个是我另外添加的,如果是RedHat的系统,会要求输入key,这里配置为跳过,如果不配置安装时会停在那里要求用户输入key

lang en_US.UTF-8  #语言

keyboard us #键盘样式

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的方式一样

rootpw  --iscrypted $6$PEJ49S7OkrNra3UM #管理员密码,是加密过的 要是使用不加密的方式则这样写:rootpw 123456

firewall --service=ssh#开启防火墙,并打开ssh端口

authconfig --enableshadow --passalgo=sha512#用户认证和密码加密方式

selinux --enforcing #强制打开selinux

timezone --utc Etc/GMT+8 #时区设置

zerombr yes #清空磁盘的mbr

bootloader --location=mbr--driveorder=sda#引导程序相关参数

# The following is the partition information you requested

# Note that any partitions you deleted are not expressed

# here so unless you clear all partitions first, this is

# not guaranteed to work

clearpart –all –initlabel #初始化磁盘

part / --fstype=ext4--size=18000#开始分区

part swap --grow --size=1024

repo --name="CentOS"--baseurl=cdrom:sr0--cost=100

reboot

%packages --nobase #安装的软件包,这里由于我安装的是最小mini版,所以只安装了核心软件包组

@core

%post #后安装脚本(这里是我另外添加的,原来文件中没有)

id lustlost &>;/dev/null || useradd lustlost #检查是否有lustlost用户,如果没有则添加

echo 123456 | passwd –stdin lustlost #配置密码

cat >> /etc/yum.repos.d/base.repo <

[base]

name=baseserver

baseurl=http://192.168.1.254/yum

gpgcheck=0

enable=1

eof                                 #这里在安装系统成功后执行脚本自动配置一个yum源,其他脚本可以按照需要定义

%end

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

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

Linux下载cfg命令,Linux安装详解-配置ks.cfg实现自动安装过程相关推荐

  1. linux添加cfg,Linux安装详解-配置ks.cfg实现自动安装过程

    Linux安装详解-配置ks.cfg实现自动安装过程 之前发过一篇关于通过PXE实现Linux批量无人值守自动安装的文章(可以参考),不过写的只是具体的配置和操作,对于原理部分没有说明,最近通过一段时 ...

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

    linux安装大致可以分为2个阶段 第一阶段:anaconda 第二阶段:installinstall阶段系统会按照anaconda阶段设定的参数自动安装,这里主要要说的是anaconda阶段,此阶段 ...

  3. linux 软件 名称 更新,linux软件版本管理命令update-alternatives使用详解

    linux软件版本管理命令update-alternatives使用详解 update-alternatives 命令用于处理linux系统中软件版本的切换,在各个linux发行版中均提供了该命令,命 ...

  4. Linux 下 TC 命令原理及详解<一>

    文章目录 1 前言 2 相关概念 3 使用TC 4 创建HTB队列 5 为根队列创建相应的类别 6 为各个类别设置过滤器 7 复杂的实例 Linux 下 TC 命令原理及详解<一> Lin ...

  5. linux中useradd命令的使用详解

    今天小编给大家分享的是linux中useradd命令的使用详解,相信很多人都不太了解,为了让大家更加了解linux中useradd命令的使用详解,所以给大家总结了以下内容,一起往下看吧.一定会有所收获 ...

  6. Linux系统常用命令及其使用详解大全

    Linux系统常用命令及其使用详解大全 整理了linux常用的命令,最长常用的也就几十个,cd,ls ,vi等等,有些容易忘记,经常拿出来看看. 其他的可以推荐一个网站,https://www.lin ...

  7. Linux的shutdown关机命令,Linux系统Shutdown命令定时关机详解

    转自:http://www.bootf.com/490.html Linux系统下的shutdown命令用于安全的关闭/重启计算机,它不仅可以方便的实现定时关机,还可以由用户决定关机时的相关参数.在执 ...

  8. Linux下fdisk命令操作磁盘详解--添加、删除、转换分区

    linux下fdisk命令操作磁盘详解--添加.删除.转换分区等 fdisk 操作硬盘的命令格式如下: [root@localhost beinan]# fdisk 设备 比如我们通过 fdisk - ...

  9. linux下载tomcat7命令,linux下安装tomcat7.0

    linux版本:CentOS 6.2 1. 安装JDK 先用java命令查看系统是否安装了默认的openJDK,如果已安装,建议用yum remove java卸载之. 下载jdk: wget –c ...

最新文章

  1. Duktape:一个新的小巧的超精简可嵌入式JavaScript引擎
  2. ASP.NET2.0 - skmMenu 的使用
  3. squid ldap认证(AD)
  4. Linux自动备份MySQL数据库脚本代码
  5. 远程访问Linux之SSHputty
  6. springboot mvc html,完美起航-SpringBoot整合MVC
  7. 充一次电使用一年的手机_超级手机电池:充一次电用一年多?
  8. 用postGIS向postgresql插入空间数据
  9. dell服务器进系统失败,如何解决Dell服务器系统开机提示错误
  10. 【栈】实现逆波兰计算器
  11. 泛泰A860(高通8064 cpu 1080p) 刷4.4专用中文recovery TWRP2.7.1.2版(三版通刷)
  12. STM32 FFT算法实现
  13. 信息安全中最容易被忽略的软资产管理
  14. 流程框图——各方框含义
  15. Android客户端面经总结
  16. Android各种时间格式转换
  17. JAVA的直接内存介绍
  18. Android Studio在win10第二显示器模糊解决办法
  19. 短视频消重批量处理软件,短视频伪原创工具,火山头条快手秒拍 今日头条自媒体搬运原创视频批量去...
  20. JNLP : Java Glossary

热门文章

  1. LeetCode 1161. 最大层内元素和(层序遍历)
  2. LeetCode 606. 根据二叉树创建字符串(递归)
  3. eclipse php xdebug,Eclipse for php + Xdebug搭建PHP的调试环境
  4. java oracle 分区查询_深入学习Oracle分区表及分区索引
  5. 利用bootstrap框架做了一个采摘节节日活动网页
  6. python调用shell该引用到什么类_python调用shell, shell 引用python
  7. 李宏毅机器学习(七)GPT的野望
  8. 2022年薪百万赛道:高性能神经网络与AI芯片应用
  9. 没有什么多模态任务是一层Transformer解决不了的!
  10. SIGIR2020 | 淘宝提出结合知识图谱与大规模推荐的新框架ATBRG