Linux 系统安装
centos 系统安装:
centos系统的安装程序:anaconda
anaconda的两种安装界面:
tui:基于cureses的文本配置窗口式安装界面
gui:图形化安装界面
anaconda介绍
anaconda是redhat、centos、fedora等linux的安装管理程序。它可以提供文本、图形等安装管理方式,并支持kickstart等脚本提供自动安装的功能。此外还支持许多启动参数,熟悉这些参数可为安装带来很多方便。该程序的功能是把位于光盘或其它源上的数据包,根据设置安装到主机上。为实现该定制安装,它提供一个定制界面,可以实现交互式界面供用户选择配置(如选择语言、键盘、时区等信息)
anaconda的大部分模块用python编写,有少许的载入模块用c编写
centos的安装过程启动流程:
bootload—>kernel(initramfs)—>rootfs—>anaconda
以光盘启动安装为例:光盘目录下
mbr:boot.cat 类似grub的stage 1,加载bootloader程序
stage2:isolinux/isolinux.bin 运行该二进制程序提供配置菜单和命令配置接口,类似于grub的stage 2
stage2配置文件:isolinux/isolinux.cfg
配置文件中每个对应的菜单选项:
加载内核:isolinux/vmlinuz
向内核传递参数:append initrd=initrd.img
装载根文件系统,并启动anaconda
默认启动gui界面:需要至少512mb内存空间才能启动
若需要指定启动tui界面:向启动内核传递一个"text"参数即可
在菜单页面按esc键,进入命令行界面(boot:)输入linux text
上述内容一般位于引导设备中,例如引导光盘、u盘或网络等;但是anacona程序及其安装系统用到的程序包等可以通过本地和网络获取如:本地光盘、本地硬盘、ftp server(yum repository)、http server(yum repository)、nfs server;
如果想手动指定安装源:
在菜单页面按esc键,进入命令行界面(boot:)输入linux method
安装引导选项:可以在isolinux.cfg文件配置,也可以在引导过程中进入命令行界面指定(在菜单页面按esc键,进入命令行界面(boot:))
text: 文本安装方式
method: 手动指定使用的安装方法
与网络相关的引导选项:
ip=ipaddr
netmask=mask
gateway=gw
dns=dns_server_ip
ifname=name:mac_addr 指明网卡名和mac地址来确定通过那个网卡通信
与远程访问功能相关的引导选项:
vnc 通过vnc将本地安装界面输出到远端进行安装
vncpassword='password' 指定vnc的密码
指明kickstart文件的位置
dvd drive: ks=cdrom:/path/to/kickstart_file
hard drive: ks=hd:/device/drectory/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
启动紧急救援模式:
rescue
可以查看官方文档了解详细参数:www.redhat.com/docs《installation guide》
anaconda的工作过程:centos 6
安装前配置阶段:
安装过程使用的语言
键盘类型
安装目标存储设备
basic storage:本地磁盘
specialized storage:iscsi、sna(专业存储设备)
设定主机名、配置网卡的网络信息
设定时区
设定管理员密码
设定分区方式及mbr的安装位置
使用所有空间
替换现有的linux系统
如果当前磁盘空间不够用,收缩当前磁盘
使用空闲空间
自定义磁盘分区
选定安装类型以及要安装的程序包
安装阶段:
在目标磁盘创建分区并执行格式化
将选定的程序包安装至目标位置
安装bootloader
重启系统进行安装后的操作
首次启动:
创建一个普通用户
设置日期和时间
core dump
iptables
selinux
anaconda的配置方式:
1、交互式配置方式
2、通过读取指定配置文件自动完成配置;按特定语法给出配置选项的kickstart文件
kickstart文件的格式:命令段、程序包段、脚本段
命令段:指明各种安装前配置,如键盘类型等
必选命令:
authconfig 认证方式配置
authconfig --useshadow --passalgo=sha512
bootloader bootloader的安装位置及相关配置
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
keyboard 设置键盘类型
lang 设置语言类型
part 创建分区
rootpw 指定root用户的密码
timezone 指定时区
可选命令:
install或upgrade 指定是安装还是升级
text 通过文本安装界面安装
network 网络配置
firewall iptables防火墙配置
selinux selinux配置
halt 安装完关机
poweroff 安装完断电
reboot 安装完重启
repo 指定yum源信息
url 指明安装源地址路径
user 安装完成后为系统创建新用户
程序包段:指明要安装的程序包组、程序包、不安装的程序包等;
%packages 程序包段开始标记
@group_name 指定需要安装的包组名字
package_name 指定要安装的包(包名称中没有版本号信息)
-package_name 指定不需要安装的包
%end 程序包段结束标记
脚本段:
%pre 安装前脚本;脚本的运行环境:运行于安装介质上的微型linux环境,因为系统还没安装完成
%post 安装后脚本;运行环境:安装完成的系统;
创建kickstart文件的方式:
1、直接手动编辑:依据某模板文件修改
2、使用工具创建:system-config-kickstart (centos 6),工具也可以依据某模板文件修改并生成新配置
检查ks文件的语法错误命令:ksvalidator
ksvalidator /path/to/kickstart_file
演示通过工具创建kickstart文件:
1、运行# system-config-kickstart &命令,会出现如下编辑界
2、我们可以在编辑器上进行编辑,选择分区,网络,等配置,也可以导入模板文件(anaconda)在此基础上修改配置,并创建文件名,保存至root下退出;需要注意这里在分区时一定选择清除主引导分区,删除所有分区和初始化磁盘卷标,要不然在自动化安装时会提醒你是否清除数据
3、查看root下生成的文件,并检查语法错误,如下:
[root@centos6 ~]# ls
anaconda-ks.cfg bin desktop documents downloads f1 ks.cfg music pictures public templates videos
# 检查语法错误,有错误会报错
[root@centos6 ~]# ksvalidator ks.cfg
创建引导光盘:
# mkisofs -r -j -t -v --no-emul-boot --boot-load-size 4 --boot-info-table -v "centos 6.6 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/
制作引导光盘演示:
1、复制文件和修改配置
[root@centos6 ~]# mkdir /tmp/myiso/
# 复制光盘下的isolinux到/tmp下
[root@centos6 ~]# cp -a /misc/cd/isolinux/ /tmp/myiso/
[root@centos6 ~]# cd /tmp/myiso/isolinux/
[root@centos6 isolinux]# ll # 可以看到,因为是光盘文件所以都是只读的
total 44436
-r--r--r-- 1 root root 2048 sep 13 12:11 boot.cat
-r--r--r-- 1 root root 84 sep 13 12:11 boot.msg
-r--r--r-- 1 root root 321 sep 13 12:11 grub.conf
-r--r--r-- 1 root root 40688737 sep 13 12:11 initrd.img # 文件驱动
-r--r--r-- 1 root root 24576 sep 13 12:11 isolinux.bin
-r--r--r-- 1 root root 923 sep 13 12:11 isolinux.cfg # 配置文件
-r--r--r-- 1 root root 183012 sep 13 12:11 memtest
-r--r--r-- 1 root root 151230 sep 13 12:11 splash.jpg # 为背景图
-r--r--r-- 1 root root 2215 sep 13 12:11 trans.tbl
-r--r--r-- 1 root root 163728 sep 13 12:11 vesamenu.c32
-r-xr-xr-x 1 root root 4264528 sep 13 12:11 vmlinuz # 内核文件
# 添加写权限,进行修改
[root@centos6 isolinux]# chmod u+w isolinux.cfg
[root@centos6 isolinux]# vim isolinux.cfg
# 注意一定退出myiso目录,创建光盘镜像,指明路径等信息,并在/root下生成一个boot.iso镜像
[root@centos6 tmp]# mkisofs -r -j -t -v --no-emul-boot --boot-load-size 4 --boot-info-table -v "centos 6.8 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/
# 查看生成的镜像文件
[root@centos6 ~]# ls
anaconda-ks.cfg bin boot.iso desktop documents downloads f1 music myks.cfg pictures public templates videos
2、新建一个虚拟机,用创建好的光盘镜像在虚拟机上重新引导安装,如下:
3、成功安装: