FreeBSD类别中的文章

  1. FreeBSD 10.1基于PXE和HTTP的无人值守安装(无NFS)

    2015年1月16日星期五

    为了获得更多使用FreeBSD的经验,我决定制作一个基于pxe的FreeBSD 10.1的无人值守安装。

    我的目标是建立一些类似Debian/Ubuntu + pre播种或Redhat/CentOS + kickstart的东西。

    获得一个基于pxe的无人值守的FreeBSD 10.1安装并不容易,而且我无法使用bsdinstall自动化基于zfs的安装。

    我希望类似netboot安装的东西

    下面,我记录了仅使用DHCP、TFTP而不需要NFS来完成FreeBSD的基本安装。

    所有步骤概述:

    1. 有PXE启动选项的工作DHCP
    2. 你有TFTP服务器吗
    3. 自定义pxelinux引导菜单
    4. 手动安装FreeBSD盒,或使用现有的
    5. 下载和安装mfsbsd在FreeBSD系统上
    6. 在FreeBSD系统上下载一个FreeBSD发行版iso镜像
    7. 配置和自定义你的FreeBSD PXE启动镜像设置
    8. 构建PXE启动映像并将其复制到TFTP服务器
    9. PXE启动系统并启动FreeBSD映像

    配置DHCP服务器+ TFTP服务器

    请看一下另一篇文章我写了关于设置PXE引导的文章。

    配置PXE启动菜单

    添加这些行到你的PXE菜单:

    LABEL FreeBSD10 kernel memdisk appinitrd =BSD/FreeBSD/10.1/mfsbsd-10.1-RC3-amd64.使用实例Img硬盘raw

    设置或访问FreeBSD主机

    您需要设置或获得访问FreeBSD系统的权限,因为mfsbsd工具只能在FreeBSD上工作。您将使用该系统生成一个FreeBSD PXE启动映像。

    安装mfsbsd

    首先我们下载mfsbsd

    获取http://mfsbsd.vx.sk/release/mfsbsd-2.1.tar.gz tar XZF mfsbsd-2.1.tar.gz

    然后我们得到一个FreeBSD ISO:

    获取http://ftp.freebsd.org/pub/freebsd/releases/iso images/10.1/freebsd - 10.1 -释放- amd64 disc1.iso

    挂载ISO:

    mdconfig -a -t vnode -f /root/FreeBSD-10.1-RELEASE-amd64-disc1.使用实例Iso mount_cd9660 /dev/md0 /cdrom/

    设置自动加载

    进入mfsbsd-2.1目录。将以下内容放在conf/rc文件中。本地文件。

    获取http:///pxe/installerconfig -o /etc/installerconfig tail -n 7 /etc/rc. txtLocal > /tmp/start.sh chmod +x /tmp/start.sh /tmp/start.sh exit 0 #!/bin/csh setenv分发txz基地。txz" setenv BSDINSTALL_DISTDIR /tmp setenv BSDINSTALL_DISTSITE ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.1-RELEASE bsdinstall distfetch bsdinstall script /etc/installerconfig . txt

    正如你所看到的,在一个脚本中有一个脚本是由rc.local单独执行的。这有点难看,但确实管用。

    安装FreeBSD无人值守安装

    'installerconfig'脚本是bsdinstall工具使用的一种特殊格式的脚本,用于自动化安装。顶部用于控制无人值守安装过程中使用的变量。底部是在新系统上安装chroot后执行的脚本。

    把这个放到'installerconfig'中

    分区= = da0分布”的内核。txz基地。txz" BSDINSTALL_DISTDIR=/tmp BSDINSTALL_DISTSITE=ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.1-RELEASE #!/bin/sh echo "安装完成,运行在主机系统" echo "hostname=\"FreeBSD\"" >> /etc/rc.conf echo "autoboot_delay=\"5\"" >> /boot/loader.conf echo "sshd_enable=YES" >> /etc/rc.conf echo "Setup done" >> /tmp/log.txt echo "Setup done."下电

    如您所见,安装后脚本启用了SSH,设置了主机名并减少了自动引导延迟。

    请注意,我遇到了一个问题,bsdinstall程序不会解释installerconfig脚本中设置的选项。这就是为什么我在rc中用“setenv”导出它们。本地脚本。

    通过Debian预播种或Redhat启动,您可以在web服务器上托管预播种或启动文件。更改基于pxe的安装只是在web服务器上编辑preseed或kickstart文件的问题。

    因为每次要更新无人参与的安装时都必须生成一个新映像并不有趣,所以建议将installerconfig文件托管在web服务器上,就像它是一个预种子文件或kickstart文件一样。

    这使您不必每次都重新生成PXE-boot映像文件。

    您仍然可以将安装程序配置放在映像本身中。如果你想要一个包含bsdinstall指令的固定'installerconfig'文件,把这个文件也放在'conf'目录下。接下来,编辑Makefile。搜索这个字符串:

    .for文件在rc.conf ttys

    对我来说,是第315行。改为:

    .for文件在rc.conf ttys installerconfig

    构建PXE引导映像

    现在一切都配置好了,我们可以使用mfsbsd生成引导映像。运行“使”。然后当它失败并出现以下错误时:

    正在创建图像文件…/root/mfsbsd-2.1/tmp/mnt: write failed, filesystem is full ***错误码1停止。Make:停止在/root/mfsbsd-2.1

    只需再次运行“make”。根据我的经验,make第二次就会一直起作用。我不知道为什么会这样。

    整个过程的最终结果是一个类似“mfsbsd-se-10.1-RC3-amd64.img”的文件。

    您可以将此映像复制到TFTP服务器上的适当文件夹。在我的例子中,它将是:

    /电脑/ tftp / BSD / FreeBSD / 10.1 / mfsbsd - 10.1 - rc3 amd64.img

    测试PXE安装

    从PXE启动测试机器并启动自定义生成的映像。

    最后的话

    创建一个基于pxe的无人值守的Fre欧宝体育直播官网eBSD安装非常困难,这让我有点不高兴。在我看来,bsdinstall安装软件有bug。然而,可能只有我:我误解了它是如何运作的。但是,我似乎找不到任何关于如何正确使用bsdinstall系统进行无人值机安装的文档。

    如果有人有关于在ZFS支持下“正确”实现无人值守的bsdinstall脚本的建议或想法,我洗耳恭听。

    这是我试图使用的方法来安装root-on-zfs:

    ZFSBOOT_POOL_NAME=TEST_ROOT ZFSBOOT_VDEV_TYPE=mirror ZFSBOOT_POOL_SIZE=10g ZFSBOOT_DISKS="da0 da1" ZFSBOOT_SWAP_SIZE=2g ZFSBOOT_CONFIRM_LAYOUT=1

    安装程序将永远无法识别第二块磁盘,脚本将卡住。

    我知道mfsbsd有一个选项可以使用自定义root-on-zfs脚本,但我想使用“官方”FreeBSD工具。

    标记为: PXE

第1页/ 1

Baidu
map