概述:
系统安装过程
配置anaconda
自动化安装系统
CentOS 系统安装:
1.启动流程:
bootloader-->kernel(initrd)-->rootfs-->anaconda(启动安装程序) 2.anaconda:(系统安装程序)
tui:基于cureses的文本配置窗口;
gui:图形界面 Anaconda是RedHat、CentOS、Fedora等Linux的安装管理程序。它可以提供文本、图形等安装管理方式,并支持Kickstart等脚本提供自动安装的功能。此外,其还支持许多启动参数,熟悉这些参数可为安装带来很多方便。该程序的功能是把位于光盘或其他源上的数据包,根据设置安装到主机上。为实现该定制安装,它提供一个定制界面,可以实现交互式界面供用户选择配置(如选择语言,键盘,时区等信息)。Anaconda的大部分模块用Python编写,有少许的载入模块用C编写。 3.CentOS的光盘安装过程启动流程:
★ MBR:boot.cat
★ Stage2:isolinux/isolinux.bin 配置文件:isolinux/isolinux.cfg 每个对应的菜单选项 加载内核:isolinux/vmlinuz
向内核传递参数:append initrd=initrd.img 其实整个光盘安装启动过程就是依赖于isolinux这个目录下的文件的 ★装载根文件系统,并启动anaconda 默认界面是图形界面(GUI):512MB+内存空间
若需要显示指定启动TUI接口:向启动内核传递一个参数“text”即可; (1)按tab键,在后面增加text (2)按ESC键:boot(提示符下): linux text 注意: 上述内容一般位于引导设备,例如可通过光盘、U盘、或网络等;后续的anaconda及其安装用到的程序包等可以来自于程序包仓库。 此仓库的位置可以为: 本地光盘、本地硬盘、ftp server、http server、nfs server
如果想手动指定安装仓库:按 ESC键:boot(提示符下):linux method
1
2
3
4
5
6
| [iyunv@centos7 isolinux]# less isolinux.cfg
...
label linux
menu label ^Install CentOS 7
kernel vmlinuz # 加载的内核
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet # 向内核传递的参数
|
anaconda 工作过程
安装前配置阶段,安装阶段,首次启动
1)安装前配置阶段:
安装过程使用的语言; 键盘类型; 安装目标存数设备; Basic Storage:本地磁盘 Special Storage:ISCSI 设定主机名; 配置网络接口; 时区; 管理员密码; 设定分区方式及MBR的安装位置; 创建一个普通用户; 选定要安装的程序包;
2)安装阶段:
在目标磁盘创建分区并执行格式化; 将选定的程序包安装至目标位置; 安装bootloader
3)重启系统
iptables 防火墙 selinux core dump 核心转储
anaconda 的配置方式:
安装引导选项:
boot: text:文本安装方式; method:手动指定使用安装方法; 与网络相关的引导选项:
ip=IPADDR netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
ifname=NAME:MAC_ADDR vnc vncpassword='PASSWORD' DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE Hard drive: ks=hd:device:/directory/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 NFS server: ks=nfs:host:/path/to/KICKSTART_FILE rescue dd kickstart文件的格式
1)命令段中的必备命令
authconfig--useshadow--passalgo=sha512
- bootloader:bootloader的安装位置及相关配置;
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
- keyboard: 设定键盘类型;
- lang: 语言类型; lang zh_CN.UTF-8
- part: 分区布局;
part /boot --fstype=ext4 --size=200
part pv.008002 --size=61440
补充:分区相关的其他命令:
clrarpart:清除分区
clearpart --none --drives=sda:清空磁盘分区
volgroup:创建卷组
volgroup vg0 --pesize=8192 pv.008002
logvol:创建逻辑卷
logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480
- rootpw: 指明root的密码;
- timezone: 时区 timezone Asia/Shanghai
可选命令:
- install OR upgrade;安装或升级
- text: 安装界面类型,text为TUL,默认为GUI
- network:配置网络接口;
- firewall:防火墙
- selinux:SElinux
- halt、poweroff、reboot:安装完成之后的行为;
- repo:安装时使用的rpository
- user:安装完成后为系统创建新用户
- url: 指明安装时使用的repository,但是为url格式;
- key –skip 跳过安装号码,适用于rhel版本
CentOS 6 中的 anaconda-ks.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| [iyunv@CentOS6 ~]# cat anaconda-ks.cfg
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install # 安装
url --url= # 指明安装时使用的仓库
lang en_US.UTF-8 # 指明使用的语言
keyboard us # 指明使用的键盘
network --onboot yes --device eth0 --bootproto dhcp --noipv6 # 配置网络接口
rootpw --iscrypted $6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49a0 # 指明root密码
# Reboot after installation
reboot # 安装完成之后的行为
firewall --disabled # 防火墙
authconfig --useshadow --passalgo=sha512 # 认证方式配置
selinux --disabled # SElinux
timezone Asia/Shanghai # 时区
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet" #
# Clear the Master Boot Record
#zerombr
# 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
#part /boot --fstype=ext4 --size=200
#part pv.008002 --size=61440
#volgroup vg0 --pesize=8192 pv.008002
#logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480
#logvol swap --name=swap --vgname=vg0 --size=2048
#logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240
#logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480
repo --name="CentOS" --baseurl=http://10.1.0.1/cobbler/ks_mirror/6/ --cost=100
|
定制kickstart文件的方式:
(1)直接手动编辑; 依据某模板修改 (2)可使用创建工具:system-config-kickstart 依据某模板修改并生成新配置; (3)检查ks文件的语法错误:ksvalidator # ksvalidator /PATH/TO/KICKSTART_FILE
|