红联Linux门户
Linux帮助

PXE全自动安装FreeBSD操作实例

发布时间:2006-10-22 00:49:15来源:红联作者:Service
0、概述
当需要在多台计算机上安装FreeBSD操作系统时,我们可以使用PXE全自动安装方式,来减少重复工作量,这里以实例介绍PXE安装FreeBSD的实现过程。
整体思路是:
     PXE客户端启动 -> 从PXE服务端获取IP地址和pxeboot ->
     pxeboot开始运行,以TFTP方式获取/boot/loader.rc ->
     按照loader.rc设置启动系统 -> 运行sysinstall,通过FTP获取安装文件,开始自动安装
接下来,让我们按照这个思路来一步步实现。
1、安装DHCP服务
PXE启动主要是通过DHCP服务实现,所以我们首先需要安装DHCP服务,这里使用isc-dhcp,并使用ports方式安装。
# cd /usr/ports/net/isc-dhcp3-server # make install clean
出现ports选项,使用默认值。
server-name "PXE Server";
server-identifier 192.168.7.1;
subnet 192.168.7.0 netmask 255.255.255.0 {
range 192.168.7.10 192.168.7.250;
option routers 192.168.7.1;
option broadcast-address 192.168.7.255;
filename "boot/pxeboot";
next-server 192.168.7.1;
}
2、准备PXE环境
我们将PXE环境所需要的文件全部放于/home/pxe目录下,首先要准备的就是pxeboot文件,pxeboot实际就是loader,只是它用于PXE环境。
标准的pxeboot默认使用NFS获取启动文件、内核等文件,但我们这里设计的是TFTP方式,所以我们需要重新编译pxeboot,让它使用TFTP来获取启动文件,按照下面的步骤操作:
# cd /usr/src/sys/boot
# vi i386/libi386/pxe.c
将第339行
pxe_setnfshandle(rootpath);
注释掉或者删除,这样可以避免pxeboot尝试使用NFS而带来的超时等待。
# setenv LOADER_TFTP_SUPPORT
# make clean && make
接下来把pxeboot放到/home/pxe中
# mkdir -p /home/pxe/boot
# cp /usr/src/sys/boot/i386/pxeldr/pxeboot /home/pxe/boot/
现在/home/pxe/boot目录中有了pxeboot文件,现在我们需要准备/home/pxe/boot目录中的其它文件,这里我们使用安装软盘中的文件。
# mkdir -p /mnt/cd # mkdir -p /mnt/fd # mount -t cd9660 /dev/acd0 /mnt/cd # cp /mnt/cd/floppies/boot.flp /tmp # mdconfig -a -t vnode -u0 -f /tmp/boot.flp # mount /dev/md0 /mnt/fd # cp -RpP /mnt/fd/boot/* /home/pxe/boot/ # cp /boot/kernel/kernel /home/pxe/ # cp /mnt/fd/mfsroot.gz /home/pxe/ # umount /dev/md0 # mdconfig -d -u0
bootfile="/kernel" acpi_load="YES" acpi_name="/acpi.ko" mfsroot_load="YES" mfsroot_type="mfs_root" mfsroot_name="/mfsrot"
3、设置自动安装
sysinstall在执行安装操作前会检查/install.cfg文件是否存在,如果存在则按照文件中的设置,执行全自动安装。我们所使用的是标准安装程序,整个安装所需要的基本环境存放在 /home/pxe/mfsroot.gz 中,由于它没有设置自动安装,所以我们需要修改 mfsroot.tgz 为其增加 install.cfg 文件。
# cd /home/pxe # gzip -d mfsroot.gz # mdconfig -a -t vnode -u0 -f mfsroot # mount /dev/md0 /mnt/fd # vi /mnt/fd/install.cfg
然后输入以下内容:
# 使用DHCP配置网络 tryDHCP=YES
# 设置安装方式为FTP和FTP服务器的地址
_ftpPath=ftp://192.168.7.1/
netDev=lnc0
mediaSetFTP
# 设置安装类型为最小安装,如果你需要全部内容,请改为 distSetDeveloper
distSetMinimum
# 磁盘分区配置
# 这里设置FreeBSD使用整个硬盘,并且安装bootmgr
disk=ad0
partition=all
bootManager=booteasy
diskPartitionEditor
# 设置disklabel
# 注意:所有的大小以512byte为单位
# 为 / 分配 512MB 的空间
ad0s1-1=ufs 1048576 /
# 512MB 交换区
ad0s1-2=swap 1048576 none
# 剩余的磁盘空间全部分配给/usr,并且开启Soft-Updates
ad0s1-3=ufs 0 /usr 1
diskLabelEditor
# 开始执行安装
installCommit
配置中已经简单的说明每个配置的作用,更详细的说明请参照sysinstall(8)
现在重新压制mfsroot.gz
# umount /mnt/fd # mdconfig -d -u0 # gzip mfsroot
4、开启相关服务
(1) DHCP服务
# ifconfig lnc0 192.168.7.1
# /usr/local/etc/rc.d/isc-dhcpd.sh start
(2) TFTP服务
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /home/pxe
现在可以启动tftp服务了
# /usr/sbin/inetd
(3) FTP服务
我们设置了安装程序使用FTP的方式获取安装文件,所以我们需要在这台服务器上开启FTP服务。
首先增加系统用户ftp及ftp组,并设置它的home目录为/mnt/cd,因为我们所有的安装程序都在光盘上,加上先前我们已经将光盘加载到/mnt/cd目录中,所以这里设置ftp帐号的home目录为/mnt/cd,就是设置了Anonymous FTP服务的根目录为/mnt/cd,当PXE客户端安装程序启动时,安装程序会从这里取得安装需要的文件
# pw groupadd ftp -g 21
# pw useradd ftp -u 21 -g ftp -s /usr/sbin/nologin -d /mnt/cd -w no
最后一步,启动FTP服务
# /usr/libexec/ftpd -DA4
现在一切准备已经完成,找到台支持PXE的机器,以PXE方式引导,你就可以看到FreeBSD在它上面自动完成整个安装过程了。
文章评论

共有 2 条评论

  1. junshaohao 于 2010-01-05 12:00:45发表:

    mount 软驱

  2. 于 2006-11-12 10:19:47发表:

    mount /dev/md0 /mnt/fd 这句有什么用?