全自动化安装linux

简介:

系统:centos 6.5

工具:system-config-kickstart

环境:Vmware

参考文档:http://liaoph.com/linux-kickstart/

 https://fedoraproject.org/wiki/Anaconda/Kickstart/zh-cn

 http://lovelace.blog.51cto.com/1028430/1217195/



1.原理:

参考:http://liaoph.com/linux-kickstart/ 这里摘抄重要的片段

#从系统安装说起

在 RHEL,CentOS,Fedora 等系统中,安装系统使用的程序名叫 anaconda,它属于 FedoraProject,由 Python 开发,能够提供图形或者文本界面用于系统安装。


在安装系统之前,计算机的硬件上可能是没有操作系统的,因此为了能够运行安装程序,需要一个临时的操作系统,引导开机,启动安装程序,在使用光盘安装操作 linux 系统(这里特指 RHEL 系列的系统)时,一共有两个阶段,分别为引导和安装。


#Stage 1

使用光盘引导时,系统启动过程为 POST(加电自检) —> BIOS 进行硬件检测并载入光盘的 MBR —> 光盘的引导程序为 isolinux.bin,它根据 isolinux.cfg 生成一个菜单。当用户选择安装操作系统后,引导程序加载内核(vmlinuz)和 initrd.img 文件,initrd.img 会在内存中生成一个临时的操作系统,为安装过程提供一个安装环境。当系统切换至 initrd 文件系统后,initrd.img 中的 init 进程调用 /sbin/loader 程序,loader 探测安装介质,加载光盘 /img/in-post/stage2.img (在 RHEL6 中叫 install.img ),切换到 stage2,stage2.img 的文件系统类型是 suqashfs,安装系统的程序 anaconda 就包含其中。


#Stage 2

stage2.img 是 SquashFS 类型文件系统,其中包含了安装程序 anaconda 和它的配置文件。anaconda 提供了安装过程的配置界面,它可以提供文本、图形等安装管理方式,并支持 kickstart 等脚本提供自动安装的功能。在安装系统之后会自动生成 /root/anaconda-ks.cfg 的配置信息,其中记录了安装系统所选取选项自动生成的,方便以后自动安装。




#Kickstart

在常规系统安装中的需要手动选定系统安装的各种选项,kickstart 文件定义了这些系统安装需要选择的选项,anaconda 读取 kickstart 文件后,就可以根据文件的设置来进行系统安装,而不需要人为的选择安装配置了。


Kickstart 分为三个段:(具体参考:  https://fedoraproject.org/wiki/Anaconda/Kickstart/zh-cn)

命令段:

必选命令:keyboard  lang  auth 等

可选命令:autopart autostep等

软件包选择段:%packages表示以下是软件包选择段,@开头的表示包组,也可以指定单个包名,如:

%packages

@Base

@Core

@base

@basic-desktop

@chinese-support

脚本段:

%pre 表示安装前脚本,此时的 Linux 系统环境为微缩版环境,脚本应尽可能简单

%post 表示安装后脚本,此时的 Linux 系统环境为已经安装完成的系统。

2.安装system-config-kickstart

yum install system-config-kickstart-2.8.6.6-1.el6.noarch 即可

注意:在windows下用xshell使用system-config-kickstart需要安装Xmanager软件,启动system-config-kickstart可能还需要安装额外的桌面环境,具体操作没记录,这里不再重复此情景

3.创建kickstart配置文件,(利用图形界面或者手动编辑皆可),如下:


[root@cqhdtest tmp]# cat  iso/ks.cfg 

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Firewall configuration

firewall --enabled --ssh

# Install OS instead of upgrade

install

# Use network installation

url --url="ftp://192.168.2.221/pub/iso"

# Root password

rootpw --iscrypted $1$/IK2ojw3$l5MudyE13/w3txJD1poG7.

# System authorization information

auth  --useshadow  --passalgo=sha512

# Use graphical install

graphical

# System keyboard

keyboard us

# System language

lang en_US

# SELinux configuration

selinux --enforcing

# Do not configure the X Window System

skipx

# Installation logging level

logging --level=info


# System timezone

timezone  Africa/Abidjan

# Network information

network  --bootproto=static --device=eth0 --gateway=192.168.2.1 --ip=192.168.2.212 --nameserver=8.8.8.8 --netmask=255.255.255.0 --onboot=on

# System bootloader configuration

bootloader --location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all  

# Disk partitioning information

part /boot --fstype="ext4" --size=200

part / --fstype="ext4" --size=8000

reboot  --eject



4.配置vsftp和修改isolinux.cfg (用vsftp的原因是我本地的镜像一直没制作成功,一直提示centos disc没在cdrom中,具体原因有待深究,理论上本地的linux安装树可以和anaconda做在一起)


vsftp的配置:略(以后会专门写一篇,参考:http://www.ha97.com/4113.html)

挂载安装镜像:mount  /dev/sr0   /tmp/source (cdrom 都是被识别为sr0,可以ls -a /dev 看到cdrom其实指向sr0)

复制镜像内容到ftp:

mkdir  /var/ftp/pub/iso

cp  -drp  /tmp/source/*  /var/ftp/pub/iso  (在配置kickstart的时候记得ftp目录是/pub/iso,不是/var/ftp/pub/iso,因为我的ftp根目录为/var/ftp )

制作新的镜像:

mkdir  /tmp/iso

cp   -drp /tmp/source/*  /tmp/iso 

vi  /tmp/iso/isolinux/isolinux.cfg  (在append ,添加ks=cdrom:/ks.cfg 这行)片段如下:

label linux

menu label ^Install or upgrade an existing system

menu default

kernel vmlinuz

append initrd=initrd.img ks=cdrom:/ks.cfg

(还可以修改isolinux.cfg的timeout时间,可以减少开机界面stage1那个选择等待时间)

mkisofs   -R -J -T -v -no-emul-boot -boot-load-size 4 -boot-info-table -V "centos install" -b  isolinux/isolinux.bin -c isolinux/boot.cat -o  install.iso   /tmp/iso/

5.安装测试:直接拿install.iso 挂载安装即可


    
















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




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