1、安装程序
CentOS系统安装
系统启动流程:
bootloader-->kernel(initramfs)-->rootfs-->/sbin/init
anaconda: 系统安装程序
gui:图形窗口
tui: 基于图形库curses的文本窗口
2、安装程序启动过程
MBR:isolinux/boot.cat ---之所以可以用光盘启动是因为在光盘目录下有这个文件,相当于硬盘的MBR
stage2: isolinux/isolinux.bin ----当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
配置文件:isolinux/isolinux.cfg ---是isolinux.bin的配置文件
每个对应的菜单选项:
加载内核:isolinuz/vmlinuz
向内核传递参数:append initrd=initrd.img...
装载根文件系统,并启动系统安装程序anaconda
默认启动GUI接口
若是显式指定使用TUI接口:向内核传递text参数即可
(1)按tab键,在后面增加text
(2)按ESC键:在boot:后面加 linux text
进入救援模式的几种方式
第一种直接在光盘引导界面下进入救援模式
第二种在光盘引导界面下的第一行按tab键,输入rescue ---相当于直接在isolinux.cfg文件中label linux中的 append initrd=initrd.img后面加内核参数rescue
第三种在光盘引导界面下按ESC,输入linux rescue ---相当于直接在isolinux.cfg文件中label linux后面加recure,也就是加内核参数
3、anaconda工作过程
Anaconda安装系统分成三个阶段:
安装前配置阶段
安装过程使用的语言
键盘类型
安装目标存储设备
Basic Storage:本地磁盘
特殊设备:iSCSI
设定主机名
配置网络接口
时区
管理员密码
设定分区方式及MBR的安装位置
创建一个普通用户
选定要安装的程序包
安装阶段
在目标磁盘创建分区,执行格式化操作等
将选定的程序包安装至目标位置
安装bootloader和initramfs
图形模式首次启动
iptables
selinux
core dump
4、系统安装
启动安装过程一般位于引导设备;后续的anaconda及其安装用到的程序包等可来自下面几种方式:
本地光盘
本地硬盘
NFS:远程存储设备
URL:ftp server: yum repository、http server: yum repostory
如果想手动指定安装源:
boot: linux askmethod
anaconda的配置方式:
(1) 交互式配置方式
(2) 通过读取事先给定的配置文件自动完成配置
按特定语法给出的配置选项
kickstart文件
安装boot引导选项:boot:
text: 文本安装方式
askmethod: 手动指定使用的安装方法
与网络相关的引导选项:
ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
ifname=NAME:MAC_ADDR
指明kickstart文件的位置:ks=
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
系统安装过程总结:isolinux/boot.cat(相当于硬盘的mbr)----->isolinux/isolinux.bin(光盘引导程序)---->读取isolinux/isolinux.cfg---->加载内核:isolinuz/vmlinuz并向内核传递参数:append initrd=initrd.img...---->装载根文件系统----->启动anaconda系统安装程序
5、kickstart文件的格式
命令段:指明各种安装前配置,如键盘类型等
程序包段:指明要安装的程序包组或程序包,不安装的程序包等
%packages
@group_name
package
-package
%end
脚本段:
%pre: 安装前脚本
运行环境:运行于安装介质上的微型Linux环境
%post: 安装后脚本
运行环境:安装完成的系统
命令段中的命令:
必备命令
authconfig: 认证方式配置
authconfig --useshadow --passalgo=sha512
bootloader:bootloader的安装位置及相关配置
bootloader --location=mbr--driveorder=sda–
append="crashkernel=auto rhgbquiet"
keyboard: 设定键盘类型
lang: 语言类型
part: 创建分区
rootpw: 指明root的密码
timezone: 时区
可选命令
install OR upgrade
text: 文本安装界面
network
firewall
selinux
halt
poweroff
reboot
repo
user:安装完成后为系统创建新用户
url: 指明安装源
key –skip 跳过安装号码,适用于rhel版本
6、kickstart文件创建
创建kickstart文件的方式
直接手动编辑
依据某模板修改
可使用创建工具:system-config-kickstart ---必须在图形界面下使用此命令
依据某模板修改并生成新配置
/root/anaconda-ks.cfg
检查ks文件的语法错误:ksvalidator
ksvalidator/PATH/TO/KICKSTART_FILE
7、系统光盘中isolinux目录列表
solinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
isolinux.cfg:isolinux.bin的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
vesamenu.c32:是光盘启动后的安装图形界面,也属于SYSLINUX项目,menu.c32版本是纯文本的菜单
Memtest:内存检测,这是一个独立的程序
splash.jgp:光盘启动界面的背景图
vmlinuz是内核映像
initrd.img是ramfs (先cpio,再gzip压缩)
8、制作引导光盘和U盘
创建引导光盘:
cp-r /misc/cd/isolinux/ /tmp/myiso/
vim /tmp/myiso/isolinux/isolinux.cfg
initrd=initrd.img text ks=cdrom:/myks.cfg
cp/root/myks.cfg /tmp/myiso/
cd /tmp;mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.isomyiso/
注意:以上命令的路径都是相对于光盘的根,而和工作目录无关
创建U盘启动盘
dd if=/dev/sr0 of=/dev/sdb
mkisofs选项
-o 指定映像文件的名称。
-b 指定在制作可开机光盘时所需的开机映像文件。
-c 制作可开机光盘时,会将开机映像文件中的no-eltorito-catalog 全部内容作成一个文件。
-no-emul-boot 非模拟模式启动。
-boot-load-size 4 设置载入部分的数量
-boot-info-table 在启动的图像中显示信息
-R 或-rock 使用Rock RidgeExtensions
-J 或-joliet 使用Joliet 格式的目录与文件名称
-v 或-verbose 执行时显示详细的信息
-T 或-translation-table 建立文件名的转换表,适用于不支持Rock Ridge Extensions 的系统上
9、用kickstart文件自动安装centos6.9系统实验
1、生成mkstart文件
在图形界面下输入命令system-config-kickstart,按照如下图所示进行操作
也可以对gurb设置密码,也就是设置进单用户密码,这里为了方便就不设置了
创建分区
点击file保存和退出既可以生成kickstart文件。
生成的kickstart文件如下
[root@centos6 app]#cat ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="http://172.18.21.106/centos6" ---基于网络路径安装,也就
后面安装的时候安装的各种包和包组来自哪里,这里是自己搭建的一
个http服务,在/var/www.html/目录下创建了一个centos6目录,将光
盘挂载到这个目录下,当成安装源,也可以在网络上找各种centos安
装源,比如搜狐、阿里云等
# Root password
rootpw --plaintext 123456ab
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Network information
network --bootproto=static --device=eht0 --gateway=172.18.0.1 --ip=172.18.21.100 --netmask=255.255.0.0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record ---清空原有的mbr
zerombr
# Partition clearing information ---清空分区信息
clearpart --all --initlabel
# Disk partitioning information ---设置分区
part /boot --fstype="ext4" --size=500
part / --fstype="ext4" --size=50000
part /app --fstype="ext4" --size=40000
part swap --fstype="swap" --size=2048
%post ---安装后脚本
rm /etc/yum.repos.d/*
cat >/etc/yum.repos.d/base.repo<<end
[base]
name=base
baseurl=file:///misc/cd
gpgcheck=0
end
useradd zhang
echo magedu |passwd --stdin zhang
%end
%packages ---安装的包和包组,带@的是包组
@base
@basic-desktop
@debugging
@core ---后加的
@workstation-policy ---后加的
@server-policy ---后加的
autofs ---后加的
vim --- 后加的
%end
后加的几个安装包和包组也很重要,最小化安装的时候一般都需要安装
2、搭建一个hhtp服务或者ftp服务,将生成的kickstart文件存放到网络路径下,这里使用http服务,比如/var/www/html/anacondam目录下,centos7中用命令生成kickstarts文件时,要把yum仓库的名称[base]改为[development]才能看到安装的包,如果不更改yum仓库的名称如下图所示,是看不到安装包的。
3、新建一个虚拟机,挂载centos6.9的光盘做为启动光盘,然后进行如下界面设置
总结:centos6.9的自动化安装和centos7.3中,不同的是centos7.3虚拟机的内存要大于1G才能安装。不然安装的时候会出问题。
10、制作引导光盘和U盘
生成kickstart文件后要有引导光盘才能安装系统,上述方法安装系统时用的是系统光盘做为引导,下面我们将制作一个引导光盘和U盘做为引导来自动安装系统。
1、将光盘isolinux目录中的内容拷贝到/app/isolinux目录下,并定制引导界面
[root@centos6 ~]#cd /misc/cd/isolinux/
[root@centos6 isolinux]#ls
boot.cat boot.msg grub.conf initrd.img isolinux.bin isolinux.cfg memtest splash.jpg TRANS.TBL vesamenu.c32 vmlinuz
[root@centos6 isolinux]#mkdir /app/isolinux
[root@centos6 isolinux]#cp * /app/isolinux ---把光盘isolinux/目录里
面的文件拷贝到这个目录下
[root@centos6 isolinux]#vim isolinux.cfg ---定制安装界面,可以以原
来光盘里面的安装界面为模板进行修改,修改后格式如下
主要修改标签行,并在内核参数处指明ks文件的路径,kickstart文件可以用命令生成,也可以自己修改。
2、将引导文件制作成iso镜像文件
[root@centos6 isolinux]#mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos6.9_boot.iso /app/myiso/ ----将/app/目录中的内容制作成
iso镜像文件,并保存为 /root/centos6.9_boot.iso文件
[root@centos7 app]#tree
.
└── isolinux
├── boot.cat
├── boot.msg
├── grub.conf
├── initrd.img
├── isolinux.bin
├── isolinux.cfg
├── memtest
├── splash.png
├── TRANS.TBL
├── vesamenu.c32
└── vmlinuz
这里需要注意的是目录结构, 从光盘拷贝的文件的文件要放到
isolinux目录下,至于它的父目录是谁,不做要求,但制作镜像文件的
时候,命令中要制作成镜像文件的目录为isolinux的父目录
3、将 /root/centos6.9_boot.iso镜像文件导出
4、新建一个虚拟机或者在原来虚拟机上将这个镜像文件光盘挂载上
5、开启虚拟机,进入如下图界面就可以自动安装了
如果要创建U盘启动,这里新加了一块硬盘来模拟U盘。在虚拟机上新加一块硬盘,进行如下操作
[root@centos6 isolinux]#!echo
echo '- - -' >/sys/class/scsi_host/host2/scan
[root@centos6 isolinux]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 5.8G 0 rom /media/CDROM
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1000M 0 part /boot
├─sda2 8:2 0 48.8G 0 part /
├─sda3 8:3 0 39.1G 0 part /app
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 0 100G 0 disk
sdc 8:32 0 150G 0 disk
sdd 8:48 0 80G 0 disk
sr1 11:1 1 7.7G 0 rom /media/CentOS 7 x86_64
sde 8:64 0 20G 0 disk
[root@centos6 isolinux]#cd
[root@centos6 ~]#ls
anaconda-ks.cfg Desktop Downloads install.log.syslog Music Public Videos
centos6_boot.iso Documents install.log mbr Pictures Templates
[root@centos6 ~]#dd if=centos6_boot.iso of=/dev/sde ---如果/dev/sde换成U盘,操作相同,也可以用cp命令
91372+0 records in
91372+0 records out
46782464 bytes (47 MB) copied, 0.997652 s, 46.9 MB/s
将硬盘拆除后安装到另外一个虚拟机上,然后开机后进行如下设置。进入entersetup,进入硬盘驱动,将新装的硬盘设置为第一个启动。
11、DHCP服务
DHCP: (Dynamic Host Configuration Protocol)动态主机配置协议,传输层协议,UDP协议
主要用途:
用于内部网络和网络服务供应商自动分配IP地址给用户
用于内部网络管理员作为对所有电脑作集中管理的手段
DHCP共有八种报文
1、DHCP DISCOVER:客户端到服务器
2、DHCP OFFER :服务器到客户端
3、DHCP REQUEST:客户端到服务器
4、DHCP ACK :服务器到客户端
5、DHCP NAK:服务器到客户端,通知用户无法分配合适的IP地址
6、DHCP DECLINE :客户端到服务器,指示地址已被使用
7、DHCP RELEASE:客户端到服务器,放弃网络地址和取消剩余的租约时间
8、DHCP INFORM:客户端到服务器,客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,极少用到
续租
50% :租赁时间达到50%时来续租,刚向DHCP服务器发向新的DHCPREQUEST请求。如果dhcp服务没有拒绝的理由,则回应DHCPACK信息。当DHCP客户端收到该应答信息后,就重新开始新的租用周期
87.5%:如果之前DHCP Server没有回应续租请求,等到租约期的7/8时,主机会再发送一次广播请求
同网段多DHCP服务
DHCP服务必须基于本地
先到先得的原则
相关协议
Arp 地址解析协议,把ip地址解析成mac地址
rarp 反向的,把mac地址解析成ip地址
跨网段
RFC 1542 Compliant Routers:符合1542标准的路由器是允许dhcp广播通过的,这种路由器就不需要中继器了。
dhcrelay: 中继 ---中继器就是个dhcp服务器的代理,当dhcp服务器和客户端之间有路由器时,跨网段,客户端发广播申请ip地址时,dhcp服务器收不到,通过中继器将客户端的请求发给dhcp服务器,因为他们之间的通讯是单播,可以穿过路由器,dhcp服务器收到请求后,把ip地址发给中继器,中继器再转发给客户端。