系统安装的方式
1 本地关盘
2 本地硬盘
3 URL
4 NFS
5 手动指定安装源
esc进入光盘引导;再esc呼出; boot:linux askmethod
yum安装及启动菜单
iso里关于启动的相关文件
MBR:isolinux/boot.cat
stage2:isolinux/isolinux.bin
配置文件:isolinux/isolinux.cfg(菜单文件)
每个对应的菜单选项:
加载内核:isolinux/vmlinux
向内核传递参数:append initrd=initrd.img ...
装载根文件系统,并启动anaconda
默认启动GUI
若是显示指定使用TUI接口:向内核传递参数即可
tab;增加text
ESC;boot:定义的lable
参数
配置yum源
yum可以通过http,ftp,
dhcp协议进行配置。这里实验是dhcp的yum源。
步骤
1 将关盘路径放在dhcp的/var/www.html/centos/6/下;
2 在确保yum没有问题之后;
在装机端esc:
boot:linux ip=192.18.32.16 netmask=255.255.255.0 repo=http://192.168.32.6/centos/6/
装机的主机配置yum,安装必所须的软件
1.挂在光盘
2./etc/yum.repo.d/base.yum
[bsse]
baseurl:file:///mut/
gpgcheck=0
3.yum安装包组 yum grouplist
安装包组的图形界面包
yum groupinstall desktop
自动化安装及kickstart文件
kickstart文件制作-系统自带
每个系统安装成功之后都会在用户的家目录下生成anaconda-ks.cfg文件,此文件定义了当前系统安装时的设定。
1 命令段:指名安装前各种配置
2 anaconda-ks.cfg 程序包段格式:
%packages
@代表包组
autofs 没有@代表包
vim-enhanced
-package 删除某个包
%end
3 脚本段格式:
%pre;安装前脚本
程序
%end
%post;安装后脚本
程序
%end
设置完成之后(非全英文输入)
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
#文本界面安装
text
#安装完成之后自动重启
reboot
#自定义url下载路径
url --url=http://192.168.31.6/cengtos/6/
#cdrom
lang en_US.UTF-8
keyboard us
network --onboot no --device eth0 --bootproto dhcp --noipv6
firewall --disabled #防火墙关闭
authconfig --enableshadow --passalgo=sha512
selinux --disaled #关闭selinux
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# 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
#清空分区表;不然会有等待的界面
zerombr
#启动分区
clearpart --all --initlabel #分区全部初始化
part /boot --fstype=ext4 --size=1024
part / --fstype=ext4 --size=50000
part /data --fstype=ext4 --size=30000
part swap --size=2048
#指定安装仓库
repo --name="CentOS" --baseurl=http://192.168.32.6/centos/6/ --cost=100
#安装包自定义
%packages
@core
@base
@workstation-policy
autofs
vim-enhanced
%end
#开启之后执行的脚本
%post
useradd wang
echo mage |passwd --stdin wang &> /dev/null
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repo.d/bak
#设置yum仓库
cat > /etc/yum.repo.d/base.repo <<EOF
[base]
name base
baseurl=file:///misc/cd
gpgcheck=0
EOF
#设置key
mkdir /root/.ssh
cat /root/.ssh/authorized_keys <<EOF
#拷贝公钥的内容
EOF
chmod 600 /root/.ssh/authorized_keys
chmod 700 /root/.ssh
%end
检查引导文件语法
安装命令需要的包:
yum install system-config-kickstart
验证引导文件语法:
ksvalidator /var/www/html/ks/ks_centos6.cfg
图形界面制作应答文件:
包名:system-config-kickstart
执行:system-config-kickstart
在7上面yum仓库包必须改成[development],否则打开界面之后不能选择安装的包
安装ssh客户端:
yum install openssl-client
查看yum的repo:
yum repolist
开始安装
1.光盘启动
2.通过应答文件定义的内容传给安装向导:
boot:linux ks=http://192.168.32.6/ks/ks_centos6.cfg 192.168.32.11 netmask=255.255.255.0
制作boot.iso实现自动安装
-
相关文件
光盘isolinux目录文件;拷贝到/data/boot下
准备好的ks应答文件;将应答文件拷贝到/data/boot/ksdir里面 -
修改isolinux.cfg文件制作启动菜单文件,^快捷键
default vesamenu.c32
default vesamenu.c32
#prompt 1 #默认第一个启动
timeout 600 #60秒的选择时间
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.10!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
#自定义启动
label linux
menu label ^Auto Install an system
menu default
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/ksdir/ks_centos6.cfg
label desktop
menu label Install An ^Desktop system
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/ksdir/ks_centos6_desktop.cfg
label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue
label local
menu label Boot from ^local drive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append -
- 刻录光盘命令(里面的路径是相对于/data/boot/的相对路径)
我们将上述的文件拷贝到/data/boot下,分别做成两个文件夹,然后把该目录做成iso文件
命令:
mkisofs -R -J -T -v --no-meul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.10 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso /data/boot/
模拟u盘;将光盘的文件内容拷贝到磁盘
- iso转换工具
isopybrid boot.iso
- 完成之后可以查看文件是否有完整的引导扇区
hexdump -C boot.iso -n 512
- 刻录命令
dd if=boot.iso of/dev/sdb
-
载有iso数据的磁盘放进虚拟机
-
设置bios启动:F2
注意:由于是硬盘模拟u盘,可能存在路径不匹配,安装失败
DHCP
网络配置
静态制定
动态获取:bootp强制将ip与mac做一一对应;dhcp是增强的bootp,可以实现动态分配。
DHCP:
动态主机配置协议
句以往协议,UDP协议
续租:
50%
87.5%
DHCP中继代理
dhcp是基于广播
通过中继代理解决不在同一个网段的情况。
工作原理:
中继代理,是搜集网络中的require广播,然后单播传给dhcp server和shcp client ,现在的路由器端口支持这个功能
DHCP八种报文.
DHCP DISCOVER
DHCP OFFER
DHCP REQUEST
DHCP ACK
DHCP NAK
DHCP DECLINE
DHCP INFORM
DHCP RELEASE
DHCP服务
服务包及文件:
安装包名:dhcp,dnsmasq(dns,dhcp)
rpm -ql dhcp
1./usr/sbin/dhcpd;二进制程序所在文件夹
2./etc/dhcp/dhcp.conf,一般为空,所以直接启动服务不能,需要查看/usr/share/doc/dhcp*/dhcp.conf.example 进行修改替换
3./usr/sbin/dhcrelay 中继程序
4. .server 是服务程序
5./var/lib/dhcpd/数据库文件,存放ip的地址的数据库
端口的分配:
dhcp server:UDP的67端口
dhcp client:UDP的68端口
/var/lib/dhclient;客户端程序所在文件夹
/etc/resolv.conf 查看dns
客户端命令:
dhclient;直接触发网卡会在在次获取一个ip地址
-d 跟踪网络连接的详细信息
主配置文件(/etc/dhcp/dhcp.conf;此时已经经过替换):
1.domain-name "mage.org";设置默认网段
2.domain-name-servers 114.114.114.114,1.1.1.1 指定dns的ip,在文件原默认制定的是域名存在一定的问题
3.lease-time 默认租期
4.subnet 192.152.187.0 netmask 255.255.255.0 {
range 192.168.32.10 192.168.32.200;指定网段范围
option routers 192.168.32.123;指定网关
option domain-name-server 8.8.8.8 dns也可以放在subnet里面,但是dns指定时跟它来之那个网段有一定的关系
}
5.host fantasia { mac地址和ip可以实现固定的绑定
}
6.filename "pxelinux.0"; 指名引导的文件名称,相当于grub
next-server 192.168.100.100 ;引导文件的服务器地址;此两项是指定tftp服务器的ip和文件所在的位置。
7.检查语法
6版本 service dhcpd configtest
7版本 systenctl
arping 192.168.32.10 可以测试网络ip冲突的机子。
PXE工作原理
PXE(与启动执行环境),基于C/S的网络模式,可以引导和安装window,linux等多种操作系统
工作原理
1. udp发送广播,filename和next-service
2. 访问tftp服务器
3. 通过PXElinux.0启动
4. 去tftp在下载内核和伪根文件
5. tftp服务器下载应答文件,url通过yum仓库进行安装0.
tftp服务
服务器包:tftp-server
客户端包:tftp
服务名:tftp-server/socket
两个都可以
主程序:in.tftpd
依赖xinted,systemd
启用:systemctl start tftp.socket/servive
工作目录:/var/lib/tftpboot
客户端包:tftp
端口号:UDP的69
下载文件命令
tftp ip
get filename
自动安装实验
7版本
在虚拟机关闭虚拟网卡自动的dhcp
1.关闭selinux ,iptables
iptables -vnL
gentenforce
2.启动相关的三个服务
yum install dhcp tftp-server httpd
3.准备仓库
cd /var/www/html
mkdir centos/7 -pv
mount /dev/sr0 centos/7
4.应答文件
修改url,root密码
mkdir ksdir
将自制的应答文件ks_centos7.cfg导入到当前目录:ksdir
修改ks_centos7中的:
url --url="http://192.168.32.7/centos/7"
修改rootpw密码:自己生成或者将anacode里面的密码拷贝
5.修改dhcp配置文件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
修改:
domain-name-servers 114.114.114.114;
subnet 192.168.32.0 netmask 255.255.255.0 {
range 192.168.32.10 192.168.32.200;
next-server 192.168.32.7;
filename "pxelinux.0";
}
systemctl restart dhcpd重启服务
6.tftp配置
cd /var/lib/tftpboot/
systemctl enable httpd tftp dhcpd设置服务为开机启动。
注意将挂载命令写道tftp文件
yum install syslinux安装syslinux 引导启动工具,包含pxelinux.0包
rpm -ql
cp /usr/share/syslinux/pxelinux.0 .;拷贝到当前目录
cp /usr/share/syslinux/menu.c32 .;复制蓝色背景启动菜单到当前目录
cp /misc/cd/isolinux/{initrd.img,vmlinuz} .;虚拟磁盘文件和内核文件到当前目录
mkdir pxelinux.cfg
cp /misc/cd/isolinux/isolinux.cfg pxelinux.cfg/default
修改default文件
最终tftp目录下文件:
tftp
initrd.img
menu.c32
pxelinux.0
pxelinux.cfg
default
vmlinuz
7. 再次确认服务是否全部启动
8. 开启网卡引导启动PXE安装
实现PXE自动化安装cnetos系统
实验:centos7实现PXE自动化安装centos7
1 yum install httpd dhcp tftp-server syslinux
systemctl enable httpd tftp dhcpd
2 准备yum 和ks文件
mkdir /var/www/html/centos/7 -pv
mount /dev/sr0 /var/www/html/centos/7
mkdir /var/www/html/ksdir
cp ks7.cfg /var/www/html/ksdir/
vim /var/www/html/ksdir/ks7.cfg
url --url="http://192.168.32.6/centos/7"
rootpw xxx
systemctl restart httpd
3 配置dhcp服务
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
subnet 192.168.32.0 netmask 255.255.255.0 {
range 192.168.32.10 192.168.32.200;
next-server 192.168.32.7;
filename "pxelinux.0";
}
systemctl restart dhcpd
4 准备启动相关文件
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
cp /misc/cd/isolinux/{initrd.img,vmlinuz} /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 60
menu title PXE CentOS Install
label linux
menu label Auto Install ^Mini CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.32.7/ksdir/ks7.cfg
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
systemctl start tftp
5测试,网卡启动
实验:centos6上实现PXE自动化安装centos6
1 syslinux-nonlinux
chkconfig tftp on
chkconfig httpd on
chkconfig dhcpd on
service xinetd start
准备yum仓库
cd /var/www/html
mkdir centos/6 ksdir pv
mount /dev/sr0 centos6
2 yum ks
创建应答文件并拷贝到当前目录(ksdir)重命名叫ks6.cfg
3 dhcp服务
主要的配置内容
subnet 192.168.32.0 netmask 255.255.255.0 {
range 192.168.32.10 192.168.32.100;
net-server 192.168.32.6;
filename "pxelinux.0"
}
service dhcpd restart
4 启动相关文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cp /misc/cd/isolinux/{boot.msg initrd.img splash.jpg vesamenu.c32 vmlinuz} /var/lib/tftpboot/
修改
vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
menu label ^Auto Install an Mini system
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.32.6/ksdir/ks6.cfg
label vesa
menu label ^Manual Install an system
kernel vmlinuz
append initrd=initrd.img repo=http://192.168.32.6/centos/6
label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue repo=http://192.168.32.6/centos/6
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
[root@centos6 tftpboot]#tree
.
├── boot.msg
├── initrd.img
├── pxelinux.0
├── pxelinux.cfg
│?? └── default
├── splash.jpg
├── vesamenu.c32
└── vmlinuz
cobbler
cobbler web服务
pam验证