Total Pageviews

Wednesday, 8 November 2017

通过PXE引导,安装CentOS

    .实现过程
    PXE称为网络批量部署安装,且可支持多版本选择安装,方便快捷。具体实现过程如下:
    2.1 DCHP服务器
    要求可以正常分配ip并且指定TFTP服务器
    2.2 TFTP 服务器
    存放系统安装所需要的引导文件pxelinux.0文件、启动菜单、内核vmlinuz及initrd.ing、ks无人值守配置文件
    启动菜单:有两种菜单类型可以选择
    1、menu.c32为菜单主程序(不可修改),添加配置文件即可
    2、boot.msg general.msg options.msg param.msg rescue.msg为菜单配置,可 手动修改
    2.3 准备下载镜像服务器HTTP/FTP/移动介质
    准备客户端获取系统镜像文件及自动安装配置文件ks.cfg的服务器(FTP NFS Samaba 等都可以 这里用HTTP)
    (注:客户端需要获取的安装文件和自动安装ks文件放在这里,客户端选读取ks文件再根据ks文件里面的具体配置进行安装)
    Linux
    首先关闭防火墙(service iptables stop)
    注:防火墙默认不允许dhcp、tftp、http通过,所以为了简便直接把防火墙关闭.
    3.1 安装配置DHCP服务器
    [root@TJ-2013 ~]# yum -y install dhcp #安装dchp.
    [root@TJ-2013 ~]# vim /etc/dhcp/dhcpd.conf #修改dhcp配置文件.
    默认配置文件什么都没有,提示参考文件/usr/share/doc/dhcp*/dhcpd.conf.sample或者查看帮助文件;
    [root@TJ-2013 ~]# cat /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample
    查看参考文件如下图:
    可以把这个文件直接复制并覆盖 /etc/dhcp/dhcpd.conf文件,然后再修改这个文件,因为这个参考文件的内容比较多,这里直接保留需要的东西,其他的都删除。如下:
    [root@TJ-2013 dhcp]# vim /etc/dhcp/dhcpd.conf
    option domain-name-servers 8.8.8.8; #域名服务器ip
    default-lease-time 600; #指定缺省租约时间,单位是秒
    max-lease-time 7200; #指定最大租约时间,单位是秒
    subnet 10.0.1.0 netmask 255.255.255.0 { #指定作用网络和子网掩码
    range dynamic-bootp 10.0.1.2 10.0.1.100; #指定起始ip和终止ip地址
    option broadcast-address 10.0.1.255; #指定广播地址
    option routers 10.0.1.1; #指定默认网关
    server-name “10.0.1.11”; #通知dhcp客户,服务器的地址 filename “pxelinux.0”; #启动引导文件的文件名和路径,
    }
    保存退出!
    [root@TJ-2013 ~]# service dhcpd start #启动dhcpd服务
    [root@TJ-2013 ~]# chkconfig dhcpd on #设置开机启动
    3.2 配置TFTPsyslinuxxinetd
    [root@TJ-2013 ~]# yum -y install tftp-server syslinux xinetd
    [root@TJ-2013 ~]# vim /etc/xinetd.d/tftp
    # default: off
    # description: The tftp server serves files using the trivial file transfer \
    # protocol. The tftp protocol is often used to boot diskless \
    # workstations, download configuration files to network-aware printers, \
    # and to start the installation process for some operating systems.
    service tftp
    {
    socket_type = dgram
    protocol = udp
    wait = yes
    user = root
    server = /usr/sbin/in.tftpd
    server_args = -s /var/lib/tftpboot #tftp目录的根目录
    disable = yes #把yes改成no
    per_source = 11
    cps = 100 2
    flags = IPv4
    }
    [root@TJ-2013 ~]# service xinetd start # tftp依靠xinetd启动
    [root@TJ-2013 ~]# chkconfig tftp on #设置开机启动
    [root@TJ-2013 ~]# chkconfig xinetd on #设置开机启动
    3.3 tftp准备pxe所需要文件
    1.拷贝启动引导文件到tftp目录/var/lib/tftpboot
    [root@TJ-2013 /]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
    2.创建启动菜单配置文件夹
    [root@TJ-2013 /]# mkdir /var/lib/tftpboot/pxelinux.cfg
    3.挂载centos6.3系统光盘,并拷贝需要的系统安装文件default
    [root@TJ-2013 /]# mount /dev/cdrom /mnt
    [root@TJ-2013 /]# cd /mnt
    [root@TJ-2013 mnt]# ls
    CentOS_BuildTag isolinux RPM-GPG-KEY-CentOS-Debug-6
    EFI Packages RPM-GPG-KEY-CentOS-Security-6
    EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6
    GPL repodata TRANS.TBL
    images RPM-GPG-KEY-CentOS-6
    4.从光盘中提取启动引导配置菜单到工作目录的下的pxelinux.cfg目录下。稍后根据要引导安装的系统修改菜单的内容。
    注:为方便安装可以复制全部isolinux文件夹内容。不过isolinux.cfg必须放到pxelinux.cfg文件夹中并改名。
    [root@TJ-2013 mnt]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
    [root@TJ-2013 mnt]# cp /mnt/isolinux/boot.msg /var/lib/tftpboot/pxelinux.cfg/
    [root@TJ-2013 mnt]# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/pxelinux.cfg/
    5.从光盘中提取准备要安装系统的安装引导内核文件
    [root@TJ-2013 tftpboot]# cd /mnt/images/pxeboot/
    [root@TJ-2013 pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
    6.修改default文件
    [root@TJ-2013 pxelinux.cfg]# vi /var/lib/tftpboot/pxelinux.cfg/default
    default vesamenu.c32 #默认使用图形菜单
    #prompt 1 #不使用图形时,启用该项
    timeout 600 #引导菜单的等待时间,自动安装的话得把这个时间调小,
    #display boot.msg #文本背景模式
    menu background splash.jpg #图形背景模式
    menu title Welcome to CentOS 6.3! #菜单标题
    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 #把linux改成centos6.3
    menu label ^Install or upgrade an existing system
    menu default #等待时间过后默认加载的选项
    kernel vmlinuz
    append initrd=centos6.3/initrd.img ks=http://10.0.1.11/ks.cfg
    label vesa
    menu label Install system with ^basic video driver
    kernel vmlinuz
    append initrd=initrd.img xdriver=vesa nomodeset
    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
    3.4 安装http,修改ks文件
    1.安装dhcp,并把系统光盘中的所有内容复制到http目录/var/www/html #这个目录主要做共享文件用
    [root@TJ-2013 pxelinux.cfg]# yum -y install httpd #安装http
    [root@TJ-2013 pxelinux.cfg]#service httpd start #启动http服务
    [root@TJ-2013 pxelinux.cfg]#chkconfig httpd on #设置开机启动
    [root@TJ-2013 html]# cp -rf /mnt/* /var/www/html/ #拷贝光盘文件到html目录
    2.复制并修改ks文件
    默认的linux在安装完成后会在/root目录下自动生成一个anaconda-ks.cfg文件,只需要把这个文件修改一下就可以了,修改后的文件要放到共享目录/var/www/html下面并且改名为ks.cfg。如下:
    [root@TJ-2013 ~]# cp /root/anaconda-ks.cfg /var/www/html/ks.cfg #拷贝并改名为ks.cfg
    [root@TJ-2013 ~]# vi /var/www/html/ks.cfg #编辑ks文件
    # Kickstart file automatically generated by anaconda.
    install
    url –url=”http://192.168.1.11/” #获取文件的服务器ip地址,就是现在这台机器ip
    lang en_US.UTF-8 #设置语系
    keyboard us #键盘类型
    network –onboot yes –device eth0 –bootproto dhcp –noipv6 #网络配置
    rootpw –iscrypted $1$0BOd5js0$pw3awOY8ahzKSNexO5Obj #密码设置
    firewall –disabled #设置防火墙开启enable或关闭disabled
    authconfig –enableshadow –enablemd5 #加密方式
    selinux –disabled #selinux开启或关闭,
    timezone Asia/Shanghai #设置时区,这里是上海
    Zerombr #设置主引导信息MBR
    bootloader –location=mbr –driveorder=sda –append=”crashkernel=auto rhgb quiet”
    clearpart –all –initlabel #分区信息设置分区大小
    part /boot –fstype ext3 –size=100
    part / –fstype ext3 –size=10000
    part swap –size=2048
    part /home –fstype ext3 –size=100 –grow
    Reboot
    skipx
    %packages #选择要安装的软件包,可以最简安装,也可以选择其他软件包
    @base
    @core
    %end
    Ks文件因为牵扯东西比较多,具体详细的说明可以参考下面这个文章
    总结一下:制作pxe安装服务器主要是安装这几个东西dhcp tftp-server syslinux httpd,要修改的文件主要就这4个/var/lib/tftpboot/pxelinux.cfg/default、/etc/dhcp/dhcpd.conf /var/www/html/ks.cfg /etc/xinetd.d/tftp。
    3.5 启动客户端开始安装
    以此次服务器为例,不使用ks安装,启动机器按F12选择网络启动.

No comments:

Post a Comment