CentOS 系统安装:
安装程序:anaconda
bootloader --> kernel(initrd(rootfs)) --> anaconda
anaconda:
tui:基于cureses的文本配置窗口
gui:图形界面
CentOS的安装过程启动流程:
MBR:boot.cat
Stage2:isolinux/isolinux.bin
配置文件:isolinux/isolinux.cfg
每个对应的菜单选项:
加载内核:isolinux/vmlinuz
向内核传递参数:append initrd=initrd.img
装载根文件系统,并启动anaconda
默认界面是图形界面:512MB+内存空间;
若需要显式指定启动TUI接口: 向启动内核传递一个参数"text"即可;
ESC,
boot: linux text
注意:上述内容一般位于引导设备,例如可通过光盘、U盘或网络等;后续的anacona及其安装用到的程序包等可以来自于程序包仓库,此仓库的位置可以为:
本地光盘
本地硬盘
ftp server
http server
nfs server
如果想手动指定安装仓库:
ESC
boot: linux method
anaconda的工作过程:
安装前配置阶段
安装过程使用的语言;
键盘类型
安装目标存储设备
Basic Storage:本地磁盘
Special Storage: iSCSI
设定主机名
配置网络接口
时区
管理员密码
设定分区方式及MBR的安装位置;
创建一个普通用户;
选定要安装的程序包;
安装阶段
在目标磁盘创建分区并执行格式化;
将选定的程序包安装至目标位置;
安装bootloader;
首次启动
iptables
selinux
core dump
anaconda的配置方式:
(1) 交互式配置方式;
(2) 支持通过读取配置文件中事先定义好的配置项自动完成配置;遵循特定的语法格式,此文件即为kickstart文件;
安装引导选项:
boot:
text:文本安装方式
method:手动指定使用的安装方法
与网络相关的引导选项:
ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
远程访问功能相关的引导选项:
vnc
vncpassword='PASSWORD'
启动紧急救援模式:
rescue
装载额外驱动:
dd
kickstart是一个利用Anconda工具实现服务器自动化安装的方法;通过生成的kickstart配置文件ks.cfg,服务器安装可以实现从裸机到全功能服务的的非交互式(无人值守式)安装配置。ks.cfg是一个简单的文本文件,文件包含Anconda在安装系统及安装后配置服务时所需要获取的一些必要配置信息(如键盘设置,语言设置,分区设置等);Anconda直接从该文件中读取必要的配置,只要该文件信息配置正确无误且满足所有系统需求,就不再需要同用户进行交互获取信息,从而实现安装的自动化。
1、创建一个kickstart文件
2、创建有kickstart文件的引导介质或者使这个文件在网络上可用;
3、筹备一个安装树
4、开始ks安装:anconda自身启动 -->选取ks安装模式--> 从ks文件读取配置 --> 最后安装
如果使用的是小型cdrom安装方式,为了读取网络安装树做的引导,可以将ks文件放置到光盘上,在光盘isolinux/isolinux.cfg文件中,配置append后添加 ks=cdrom:/ks.cfg(需要将ks.cfg文件放到cdrom的根目录下)
安装引导选项:
ks:指明kickstart文件的位置;
ks=
DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE
Hard Drive: ks=hd:/DEVICE/PATH/TO/KICKSTART_FILE
HTTP Server: ks=http://HOST[:PORT]/PATH/TO/KICKSTART_FILE
FTP Server: ks=ftp://HOST[:PORT]/PATH/TO/KICKSTART_FILE
HTTPS Server: ks=https://HOST[:PORT]/PATH/TO/KICKSTART_FILE
指定各种安装前配置选项,如键盘类型等;
必备命令:如语言、键盘类型、时区等信息。
可选命令
指明要安装程序包,以及包组,也包括不安装的程序包;
%packages
@group_name
package
-package
%end
使用%package指名开始,%end指名结束,包组以@开始标明,软件名可以直接写,但每个之间需要换行
%pre:安装前脚本
运行环境:运行安装介质上的微型Linux系统环境;
使用%pre指明开始,%end指明结束,将每个命令写一行
%post:安装后脚本
运行环境:安装完成的系统;
使用%post指明开始,%end指明结束,将每个命令写一行
authconfig --enableshadow --passalgo=sha512
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
--append= 可以指定内核参数
--driveorder= 设定设备BIOS中的开机设备启动顺序
--location= 设定引导记录的位置; mbr:默认值;partition:将boot loader安装于包含kernel的分区超级快
keyboard us
lang zh_CN.UTF-8
part /boot --fstype=ext4 --size=500
part pv.008 --size=10240
volgroup vg0 --pesize=8192 pv.008
logvol / --fstype=ext4 --name=root --vgname=vg0 --size=1024
logvol swap --name=swap --vgname=vg0 --size=1024
logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=1024
logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=2048
part
mntpoint:挂载点,是在创建普通分区时指定新分区挂载位置的项;挂载点需要格式正确
swap: 创建swap分区;
raid.id: 表示创建的分区类型为raid型;必须用id号进行唯一区别;
pv.id: 表示所创建的分区类型为LVM型;必须用唯一id号进行区别;
--size= 设置分区的最小值,默认单位为M,但是不能写单位;
--grow 让分区自动增长利用可用的磁盘空间,或是增长到设置的maxsize值;
--maxsize 设置分区自动增长(grow)时的最大容量值,以M为单位,但不能写单位;
--onpart=/--usepart= 设置使用原有的分区;
--noformat 设置不格式化指定的分区,在跟—onpart一同使用时,可以避免删除原有分区上的数据,在新安装的系统中保留使用数据;
--asprimary 强制制定该分区为主分区;若指定失败,分区会失败,导致安装停止;
--fstype= 新增普通分区时指定分区的类型,可以为ext2、ext3、ext4、swap、vfat及hfs;
--ondisk=/--ondrive= 设定该分区创建在一个具体的磁盘上;
--start 指定分区以磁盘上那个磁道开始;需要跟--ondisk参数一块使用;
--end 指定分区以磁盘上那个磁道结束;需要跟上述两个参数一起使用;
--recommended:让系统自行决定分区的大小;在创建swap分区时,若RAM<2G,则分区大小为2*RAM;若RAM>=2G时,分区大小为RAM+2G;
--bytes-pre-inode= 指定分区格式化时inode的大小;默认值为4096
--fsoptions= 指定创建fstab文件时该分区挂载参数项;
rootpw --iscrypted
$6$4Yh15kMGDWOPtbbW$SGax4DsZwDAz4201.O97WvaqVJfHcISsSQEokZH054juNnoBmO/rmmA7H8ZsD08.fM.Z3Br/67Uffod1ZbE0s.
timezone Asia/Shanghai
补充:分区相关的其它指令
clearpart --none --drives=sda:清空磁盘分区;
在建立新分区前清空系统上原有的分区表,默认不删除分区
clearpart --all
clearpart --drives=hda,hdb --all --initlabel
-all 擦除系统上原有所有分区;
--drives 删除指定驱动器上的分区
--initlabel 初始化磁盘卷标为系统架构的默认卷标
--linux 擦除所有的linux分区
--none(default)不移除任何分区
volgroup myvg --pesize=4096 pv.008002
logvol /home --fstype=ext4 --name=lv_home --vgname=myvg --size=5120
生成加密密码的方式:
~]# openssl passwd -1 -salt `openssl rand -hex 4`
生成的密码可以直接粘贴复制到上面rootpw 后即可生效
network --onboot yes --device eth0 --bootproto dhcp --noipv6
firewall --disabled
selinux --disabled
repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
url --url=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.7-x86_64/
url --url ftp://
url --url http://install.example.com/iso
CentOS 6:
# service iptables stop
# chkconfig iptables off
CentOS 7:
# systemctl stop firewalld.service
# systemctl disable firewalld.service
编辑/etc/sysconfig/selinux或/etc/selinux/config文件,修改SELINUX参数的值为下面其中之一:
permissive
disabled
立即生效:
# getenforce
# setenforce 0
# yum install system-config-kickstart
# system-config-kickstart
检查语法错误:
# ksvalidator
(1)ssh -x 登录远程机器
(2)安装完成后通过这个命令& 后台打开配置程序界面
(3)配置界面
(4)读取生成的anaconda。cfg配置文件
(5)根据读取的配置文件,再次自定义这个文件
(6)配置完成另存为
(7)查看
Linux ip=172.16.200.91 netmask=255.255.0.0 gateway=172.16.0.1 ks=https://172.16.0.1/centos6.x86_64.cfg
ks的目录是你防止http服务器的文件夹下让他去找到
1.准备环境ioslinux
复制光盘中的isolinux目录到myboot目录下
2.更改权限
3.将下载的文件复制到ks.cfg(或者是制作好的ks.cfg文件复制到同级别目录命名为ks.cfg)
4.创建光盘镜像:
~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso myboot/
/myboot 是你解压安装目录
/root/boot.iso 光盘镜像安装目录
5.安装时候要选择争取的安装镜像文件 ,就刚才生成ios的地址/root/boot.ios
按TAB 输入一下内容
直接在后面添加ks 以及IP地址信息,
重新生成IOS 文件
后续步骤一样