PXE+Clonezilla+kickstart

一、Clonezilla

Clonezilla是由臺灣網絡中心研發的開源軟件,可用於備份還原各類操作系統,包含Linux (ext2, ext3, ext4, reiserfs, reiser4, xfs, jfs), Mac OS (HFS+), Windows (fat, ntfs), FreeBSD, NetBSD, OpenBSD (UFS),以及VMware ESX (VMFS),對於不支持的文件系統,Clonezilla採用全部複製(dd)的方式處理。Clonezilla支持羣播,結合PXE還可以遠程大規模的備份還原系統。
Clonezilla有兩個版本:Clonezilla live和Clonezilla server edition;Clonezilla live可放置在U盤等便攜存儲上,Clonezilla server edition可配合PXE遠程大量備份還原操作系統。

二、PXE

PXE是Inter公司設計的協議,它可以使計算機通過網絡啓動。協議分爲client和server兩端,PXE client在網卡的ROM中,當計算機引導時,BIOS把PXE client調入內存執行,並顯示出命令菜單,經用戶選擇後,PXE client將放置在遠端的操作系統通過TFTP下載到本地運行。

三、PXE+Clonezilla示例

1、配置DHCP服務器
1、安裝
yum install dhcp* -y
2、更改配置文件
vim  /etc/dhcp/dhcpd.conf
  1 subnet 192.168.92.0 netmask 255.255.255.0 {
  2 range 192.168.92.1 192.168.92.128;
  3 filename  "pxelinux.0";
  4 next-server 192.168.92.10;
  5 ddns-update-style none;
  6 ignore client-updates;
  7 default-lease-time 86400;
  8 max-lease-time 518400;
  9 option routers 192.168.92.254;
 10 option domain-name-servers 192.168.92.10;                                                                     
 11 }

我本機地址192.168.92.10,dhcp地址池是1到5,默認網關是254

3、修改網卡文件
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 
  1 TYPE=Ethernet
  2 BOOTPROTO=static
  3 IPADDR=192.168.92.10                                                                                        
  4 NETMASK=255.255.255.0
  5 GATEWAY=192.168.92.254
  6 DNS1=8.8.8.8

systemctl restart network

4、開啓dhcp服務
systemctl start dhcpd

[root@eric-jia ~]# netstat -tunlp | grep 67
udp        0      0 0.0.0.0:67              0.0.0.0:*                           13828/dhcpd     

5關閉防火牆和selinux

2、PXE和TFTP配置

1、安裝
yum install xinetd
yum install syslinux
yum install tftp*
2、編輯tftp配置文件
vim /etc/xinetd.d/tftp 
service tftp
{
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -s /var/lib/tftpboot
    disable         = no
    per_source      = 11
    cps         = 100 2
    flags           = IPv4
}

systemctl restart xinetd.service 

3、複製引導文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /usr/share/syslinux/vesamenu.c32  /var/lib/tftpboot/

4、複製內核文件及引導菜單
mount -o loop clonezilla-live-2.5.2-17-amd64.iso /mnt
cp -r /mnt/live/ /var/lib/tftpboot/
cp /var/lib/tftpboot/live/initrd.img /var/lib/tftpboot
cp /var/lib/tftpboot/live/vmlinuz /var/lib/tftpboot
cp /mnt/syslinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

5、安裝httpd

1、yum install httpd -y
2、cp /mnt/live/filesystem.squashfs /var/www/html/
3、systemctl start httpd

6、修改PXE配置文件

vim /var/lib/tftpboot/pxelinux.cfg/default   # 加入http服務器地址fetch=。。。
kernel /live/vmlinuz
 38   append initrd=/live/initrd.img boot=live union=overlay username=user config components quiet noswap edd=on n    omodeset locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch="no    " vga=788 ip= net.ifnames=0  nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.e    nable_fbdev=1 fetch=http://192.168.92.10/filesystem.squashfs

7、實驗
虛擬機1:192.168.92.10,作爲tftp,http,dhcp服務器,在vmnet8中,vmnet8是NAT模式,不開啓VMware自帶DHCP。虛擬機1需開啓http,dhcp,tftp服務,並將再生龍鏡像掛載在/mnt目錄下。虛擬機2也連接在net8中,開機後進入再生龍界面。

四、PXE + redhat7.2示例

配置PXE安裝紅帽只需要在上面的基礎上稍作修改。

1、掛載redhat7.2.iso
mount -o loop -t iso9660 /dev/sr0 /media
2、複製相應文件
[root@eric-jia ~]# mkdir /var/lib/tftpboot/redhat
[root@eric-jia ~]# cp /media/images/pxeboot/initrd.img /var/lib/tftpboot/redhat/
[root@eric-jia ~]# cp /media/images/pxeboot/vmlinuz /var/lib/tftpboot/redhat/
[root@eric-jia ~]# cp /media/images/pxeboot/vesamenu.c32 /var/lib/tftpboot/redhat/

[root@eric-jia ~]# mkdir /var/lib/tftpboot/pxe
[root@eric-jia ~]# mv /var/lib/tftpboot/initrd.img /var/lib/tftpboot/pxe
[root@eric-jia ~]# mv /var/lib/tftpboot/vmlinuz /var/lib/tftpboot/pxe
[root@eric-jia ~]# mv /var/lib/tftpboot/vesamenu.c32 /var/lib/tftpboot/pxe

[root@eric-jia tftpboot]# cp /var/lib/tftpboot/redhat/* /var/lib/tftpboot/
3、配置ks
yum install system-config-kickstart.noarch 
可以在圖形界面system-config-kickstart配置ks文件,我這裏直接用anaconda-ks.cfg文件
cp /root/anaconda-ks.cfg /var/www/html/ks.cfg
4、掛載鏡像至http根目錄下
mkdir /var/www/html/redhat
umount /media
mount -o loop -t iso9660 /dev/sr0 /var/www/html/redhat/
5、配置引導菜單
vim /var/lib/tftpboot/pxelinux.cfg/default.redhat
  1 default vesamenu.c32
  2  timeout 60
  3  menu title RedHat 7.2 Pxe Menu
  4 label redhat 7.2 --  one
  5  kernel redhat/vmlinuz
  6  append initrd=redhat/initrd.img inst.repo=http://192.168.92.10/redhat inst.ks=http://192.168.92.10/ks.cfg
  7  MENU LABEL Install RedHat 7.2 --> kickstart
  8  MENU default
  9 
 10 label redhat 7.2 --  two
 11  kernel redhat/vmlinuz
 12  append initrd=redhat/initrd.img inst.repo=http://192.168.92.10/redhat
 13  MENU LABEL Install RedHat 7.2  

6、更換引導菜單
[root@eric-jia ~]# mv /var/lib/tftpboot/pxelinux.cfg/default /var/lib/tftpboot/pxelinux.cfg/default.pxe 
[root@eric-jia ~]# mv /var/lib/tftpboot/pxelinux.cfg/default.redhat /var/lib/tftpboot/pxelinux.cfg/default 

7、開啓tftp,http,dhcp服務
systemctl start dhcpd
systemctl start httpd
systemctl start xinetd
[root@eric-jia ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1590/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1928/master         
tcp6       0      0 :::80                   :::*                    LISTEN      6505/httpd          
tcp6       0      0 :::22                   :::*                    LISTEN      1590/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1928/master         
tcp6       0      0 :::443                  :::*                    LISTEN      6505/httpd          
udp        0      0 127.0.0.1:323           0.0.0.0:*                           1325/chronyd        
udp        0      0 0.0.0.0:67              0.0.0.0:*                           6499/dhcpd          
udp        0      0 0.0.0.0:69              0.0.0.0:*                           1604/xinetd         
udp6       0      0 ::1:323                 :::*                                1325/chronyd  

之後就是測試了,有兩種方式,kickstart是無人值守安裝,下一種是手動安裝,實際工作中,都有用武之地。
PXE+Clonezilla+kickstart

附切換腳本:

#!/bin/bash
#
cat <<-EOF
===============================================
    Please enter the service you want to start 
        1、clonezilla
        2、redhat 7.2
        3、quit
===============================================
EOF
read -p "Please enter your choice: "  SER

case $SER in
    "1")
        #Mount Mirror
        mount -o loop /root/clonezilla-live-2.5.2-17-amd64.iso /mnt 

        #Replace the PXE required files
        rm -rf /var/lib/tftpboot/{initrd.img,vesamenu.c32,vmlinuz} &> /dev/null
        cp /var/lib/tftpboot/pxe/* /var/lib/tftpboot/

        #Replace the boot boot menu file
        rm -f /var/lib/tftpboot/pxelinux.cfg/default
        cp /var/lib/tftpboot/pxelinux.cfg/default.pxe /var/lib/tftpboot/pxelinux.cfg/default

        #Start a service
        systemctl restart httpd
        systemctl restart dhcpd
        systemctl restart xinetd
        ;;
    "2")
        #Mount Mirror
        mount -o loop -t iso9660 /dev/sr0 /var/www/html/redhat/ 

        #Replace the PXE required files
        rm -rf /var/lib/tftpboot/{initrd.img,vesamenu.c32,vmlinuz} &> /dev/null
        cp /var/lib/tftpboot/redhat/* /var/lib/tftpboot/

        #Replace the boot boot menu file
        rm -f /var/lib/tftpboot/pxelinux.cfg/default
        cp /var/lib/tftpboot/pxelinux.cfg/default.redhat /var/lib/tftpboot/pxelinux.cfg/default

        #Start a service
        systemctl restart httpd
        systemctl restart dhcpd
        systemctl restart xinetd
        ;;
     "3")
        exit 0
        ;;

     *)
        echo "input error"
        exit 1
        ;;

esac
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章