Clonezilla的PXE安装实验笔记

    xiaoxiao2021-12-01  23

    #这篇是很早写的个人笔记,原文在这里(PDF 文件)。最近有人问及,所以拿出来再重新贴一下,也许对某些人有用。虽然应用于 FreeBSD 上,没有涉及到 Ubuntu ,但对于 Ubuntu 及 Linux 用户来说,方法基本上相通的。

    一、概述

    现在的桌面机集本都集成了带有 PXE 模块的网卡,所以可以有效利用这一功能来进行网络化的系统布置及备份还原。这套方案用到了 VirtualBox ,Freebsd , Clonezilla 等开源操作系统及工具,所有软件都是免费开源的。

    截图1:

    二、设置 DHCP 服务

    我的 DHCP 服务器是现成的,放在 Windows 上,所以只要设置一下 066 和 067 这两个选项就 OK 了, 在 066 中输入启动服务器 IP 地址,在 067 中输入 pxelinux.0 ,如下图。

    这样就可以通过 DHCP 来指定 TFTP 启动服务器及启动文件了。

    当然你也可以在 Freebsd 上安装 DHCP 服务器

    pkg_add -r isc-dhcp31-server

    创建 /usr/local/etc/dhcpd.conf 文件

    allow booting;allow bootp;default-lease-time 600;max-lease-time 7200;authoritative;ddns-update-style ad-hoc;log-facility local7;option domain-name “home.lan”;option domain-name-servers 192.168.1.1;server-name “192.168.1.1″;server-identifier 192.168.1.1;next-server 192.168.1.1;option routers 192.168.1.1;option root-path “192.168.1.1:/usr/tftpboot”;filename “pxelinux.0″;subnet 192.168.1.0 netmask 255.255.255.0 {range 192.168.1.10 192.168.1.11;}

    在 /etc/rc.conf 中加入以下行

    dhcpd_enable=”YES”

    启动 DHCP

     

    /usr/local/etc/rc.d/isc-dhcpd start

    三、架设 PXE Boot 服务

    1) 安装 Freebsd

    这个就不必多说了,可以参考 Freebsd 使用手册-安装 Freebsdhttp://www.freebsd.org/doc/zh_CN/books/handbook/install.html

    2 ) 设置 PXE Boot Server

    编辑 /etc/inetd.conf ,把下面一行的 # 去掉 并把/tftpboot 改为 /usr/tftpboot

    #tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /usr/tftpboot

    编辑 /etc/rc.conf ,加入下面一行

    inetd_enable=”YES”

    在 Shell 下输入以下命令,用来启动 inetd 及 tftp 进程。

    /etc/rc.d/inetd start

    在 /usr/ 目录下创建一个 tftpboot 文件夹

    mkdir /usr/tftpboot

    在 / 根目录下创建一个 tftpboot 的目录链接

    ln -s /usr/tftpboot /tftpboot

    到 http://www.kernel.org/pub/linux/utils/boot/syslinux/ 下载 syslinux,这个文件中包含了用于 pxe 启动的 pxelinux.0 及 vesamenu.c32 文件。

    fetch http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.85.tar.gz

    解压缩

    tar zxvf syslinux-3.85.tar.gz

    复制 pxelinux.0 到 tftpboot 目录中

    cp syslinux-3.85/core/pxelinux.0 /tftpboot/

    复制 vesamenu.c32 到 tftpboot 目录中

    cp syslinux-3.85/com32/menu/vesamenu.c32

    回到 /tftpboot 目录,创建 pxelinux.cfg 目录

    mkdir /tftpboot/pxelinux.cfg

    创建 default 文件,代码如下

    DEFAULT vesamenu.c32MENU TITLE === PXE Boot Server ===menu color title 1;36;44 #ffffffff #00000000 stdLABEL fog.locallocalboot 0MENU DEFAULTMENU LABEL Boot from hard diskTEXT HELPBoot from the local hard drive.If you are unsure, select this option.ENDTEXTLABEL fog.memtestkernel fog/memtest/memtestMENU LABEL Run Memtest86+TEXT HELPRun Memtest86+ on the client computer.ENDTEXTLABEL fog.centoskernel centos/vmlinuzappend initrd=centos/initrd.img ip=dhcp dns=8.8.8.8 mode=quickimage keymap=MENU LABEL Install CentOS 5.4TEXT HELPThis mode will allow you install Centos 5.4!ENDTEXTLABEL fog.freebsdkernel boot/freebsd.0MENU LABEL Install Freebsd 8TEXT HELPThis mode will allow you install Freebsd 8!ENDTEXTLABEL fog.clonezillakernel clonezilla/vmlinuzappend initrd=clonezilla/initrd.img boot=live union=aufs noswap noprompt vga=788 netboot=nfs nfsroot=192.168.1.1:/usr/data/clonezilla ocs_lang=”zh_CN.UTF-8″ ocs_live_keymap=”NONE”MENU LABEL Run ClonezillaTEXT HELPThis mode will allow you run Clonezilla to Backup/Restore OS!ENDTEXTPROMPT 0TIMEOUT 30

    default 里面的设置以后你也可以自已添加其它项目,这里我已包含了 Clonezilla 的启动项。

    四、设置 CloneZilla 远程备份服务

    下载 clonezilla ISO 文件 http://www.clonezilla.org/download/sourceforge/stable/iso-zip-files.php

    加载 ISO 文件

    mdconfig -a -t vnode -f /usr/data/clonezilla-live-1.2.4-28-486.iso -u 0mount -r -t cd9660 /dev/md0 /mnt/clonezilla/

    在 /tftpboot 目录下创建一个 clonezilla 目录

    mkdir /tftpboot/clonezilla

    复制光盘 /live 目录下的 initrd.img 及 vmlinuz 到 /tftpboot/clonezilla 目录下

    cp /mnt/clonezilla/live/vmlinuz /tftpboot/clonezilla/cp /mnt/clonezilla/live/initrd.img /tftpboot/clonezilla/

    五、设置 NFS 服务

    在 /etc/rc.conf 中加入以下几行

    nfs_server_enable=”YES”mountd_enable=”yes”rpcbind_enable=”YES”

    在 /etc 目录下创建 exports 文件,并加入以下一行

    /usr/data/clonezilla /usr/data/freebsd -ro

    在 /usr/data 目录创建 clonezilla 目录

    mkdir /usr/data/clonezilla

    把之前加载到 /mnt/clonezilla 下的 ISO 光盘中的内容全都复制到 /usr/data/clonezilla 目录中

    cp -r /mnt/clonezilla/* /usr/data/clonezilla

    然后,启动 nfs 服务

    /etc/rc.d/rpcbind start/etc/rc.d/mountd start/etc/rc.d/nfsd start

    然后通过以下命令来查看输出情况

    showmount -e

    结果应该为

    Exports list on localhost:/usr/data/clonezilla Everyone

    另外,你也可以通过以下命令来查看 nfs 的运行状态

    nfsstat

    注意:如果修改 /etc/exports 后,可通过以下命令进行重新输出

    /etc/rc.d/mountd reload

    这里的NFS 输出路径与之前 pxelinux.cfg/default 中的 Label 标签设置相联系,主要是指定了 clonezilla netboot 的 nfs 路径,所以这两块必须相匹配,如下。

    LABEL Clonezilla Live    MENU LABEL Clonezilla Live    MENU PASSWD Clonezilla    kernel images/Clonezilla/live/vmlinuz    append initrd=images/Clonezilla/live/initrd.img boot=live config noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="NONE" ocs_live_batch="no" ocs_lang="zh_TW.UTF-8" vga=788 nosplash  netboot=nfs nfsroot=192.168.1.6:/ClonezillaMENU LABEL Run ClonezillaTEXT HELPThis mode will allow you run Clonezilla to Backup/Restore OS!ENDTEXT

    OK ,到这里所有的配置都完成了,试着从 PXE 启动一下 Clonezilla 吧,如果成功的话,你就可以通过它来备份还原系统了。

    截图:启动界面

    六、延伸1:设置可通过 PXE 安装的 CentOS 5

    配置 Centos 的PXE 网络安装非常简单,只要把CentOS 安装 ISO 光盘中 /images/pxeboot 目录下的 vmlinuz 及 initrd.img 这两个文件放在 /tftpboot/centos 目录下,然后配置好 pexlinux.cfg/default 的 centos 标签就OK 了,主要是指定好相应文件地址。如下:

    LABEL fog.centoskernel centos/vmlinuzappend initrd=centos/initrd.img ip=dhcp dns=8.8.8.8 mode=quickimage keymap=MENU LABEL Install CentOS 5.4TEXT HELPThis mode will allow you install Centos 5.4!ENDTEXT

    七、延伸2:设置可通过 PXE 安装的 Freebsd 8

    在 pxelinux 环境下通过 pxe 引导 Freebsd 有点复杂,因为不能通过 DHCP 服务器的 root-path 选项来指定 NFS 引导路径,所以必须通过 TFTP 来加载 freebsd 的引导文件,而且必须把 pxeboot 这个引导文件改成 filename.0 这样格式的文件名,否则不能正常加载引导文件,这应该是 pxelinux 的是一种文件格式规定,所以我们需要重新编译 pxeboot 文件以便可以从 tftp 来加载引导文件,ISO 光盘 /boot/ 目录下的 pxeboot 只能从 NFS 引导。

    设置 nfs 输出及 tftp

    下载 freebsd ISO 安装盘 下载地址:ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.0/

    fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.0/8.0-RELEASE-i386-disc1.iso

    挂载安装盘

    mdconfig -a -t vnode -f /usr/data/8.0-RELEASE-i386-disc1.isomount_cd9660 /dev/md0 /mnt/freebsd/

    复制 boot 目录到 /tftp 目录下

    cp -r /mnt/freebsd/boot /tftp/

    解压缩 /tftp/boot 目录中的 mfsroot.gz 文件

    cd /tftp/bootgunzip mfsroot.gz

    复制 光盘中所有文件到 /usr/data/freebsd 下

    cp -r /mnt/freebsd/* /usr/data/freebsd/

    设置 nfs 输出 ,把 /etc/exprots 文件中

    /usr/data/clonezilla -ro

    改为

    /usr/data/clonezilla /usr/data/freebsd -ro

    重新加载 exports

    /etc/rc.d/mountd reload

    用以下命令查看输出是否正确

    showmount -e

    输出结果应该为

    Exports list on localhost:/usr/data/freebsd Everyone/usr/data/clonezilla Everyone

    重新编译 pxeboot

    获取 /usr/src 源代码,然后利用参数编译引导部分,使 pxeboot 能够从 tftp 上加载引导文件

    cd /usr/src/sys/bootmake -DLOADER_TFTP_SUPPORT=YES

    编译完后,复制 pxeboot 文件到 /tftpboot/boot 目录中,并改名为 freebsd.0

    cp /usr/src/sys/boot/i386/pxeldr/pxeboot /tftpboot/boot/freebsd.0

    部署 pxelinux 启用选项

    编辑 /tftp/pxelinux.cfg/default ,加入以下菜单项

    LABEL fog.freebsdkernel boot/freebsd.0MENU LABEL Install Freebsd 8TEXT HELPThis mode will allow you install Freebsd 8!ENDTEXT

    OK ,到此整个配置过程就完成了,试着从 pxe 启动并安装 freebsd 吧,安装的时候记得通过 nfs 方式来安装

    截图:

    pxe boot

     

    相关网页:http://www.linuxeden.com/html/softuse/20101129/105663.html

                  http://clonezilla.nchc.org.tw/clonezilla-live/livepxe.php

                   http://wenku.baidu.com/link?url=rIrNbB8pPdtkN1kqNAXQMKhMLZZaSakbkP8ZOrQfu6TGceYc0FGI7FKAVp4rLNjGdu_NAfospSRt719WT5P7WZX66M7EKisE8LFnaIgevly

                   http://blog.ilc.edu.tw/blog/blog/25793/post/78473/470502

     
    转载请注明原文地址: https://ju.6miu.com/read-679418.html

    最新回复(0)