查看: 6189|回复: 1

[教程] raspberry pi 配置 pxe server (debian)-转

[复制链接]
  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2012-10-10 14:49:59 | 显示全部楼层 |阅读模式
    分享到:

    (转)以前在大学时用过pxe启动,安装系统或维护等很方便。一直好奇pxe server是怎样工作的。最近入手一个raspberry pi(以下简称rpi),正好搭建一个pxe server玩玩。

    pxe server 大约需要以下组件,但rpi不一定需要全部安装

    • tftp-server (必须安装)
    • dhcp (可以配置已有的dhcp server,比如家里的路由)
    • httpd 或 ftpd (貌似不是必须,详情见下文)
    • syslinux  (提供pxelinux.0等文件)

    因为家里的路由有DNSMasq,所以rpi不需要安装dhcp服务。 以下是我个人的配置,仅供参考。

    1 apt-get install tftpd syslinux-common vsftp


    之所以安装vsftpd,是由于配置clonezilla时其自带的tftpd不能正确下载文件系统文件filesystem.quashfs。可能是clonezilla脚本有点问题吧。

    tftpd的配置文件是 /etc/inetd.conf,默认目录为/srv/tftp。pxe相关的文件都放到这个目录下,要保证所有人可读。拷贝启动用文件pxelinux.0,这里我用gpxelinux.0。

    cp /usr/lib/syslinux/{gpxelinux.0 ,menu.c32} /srv/tftp/ mkdir /srv/tftp/bin cp /usr/lib/syslinux/memdisk /srv/tftp/bin/

    然后需要配置pxe,因为只是在家里玩玩,就只用最简单的方法

    mkdir /srv/tftp/pxelinux.cfg touch /srv/tftp/pxelinux.cfg/default

    把以下内容写到 /srv/tftp/pxelinux.cfg/default 里:

    DEFAULT menu.c32 PROMPT 0 MENU TITLE PXE Boot TIMEOUT 100 ONTIMEOUT local LABEL local MENU LABEL ^Boot from local disk LOCALBOOT 0 LABEL Clonezilla-live-x86_64 MENU LABEL Clonezilla-live-x86_64 kernel clonezilla/vmlinuz APPEND initrd=clonezilla/initrd.img boot=live config noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="" vga=788 nosplash noprompt fetch=ftp://$(FTP_SERVER_IP)/clonezilla/filesystem.squashfs

    其中$(FTP_SERVER_IP)是rpi的ip地址。接着,我们要到路由器(hdcp服务器)里设置一下,详情参考这里,tomato的话参考这里。由于使用的是gpxelinux.0,所以参数应该写成

    dhcp-boot=gpxelinux.0,,X.X.X.X

    X.X.X.X 就是rpi的ip。


    就这样pxe启动部分应该就可以用了。可以找一台支持pxe的机器试试。


    然后很明显clonezilla还不能用,因为还没下载嘛。。。好了,下载完后根据官方教程把 vmlinuz,initrd.img 和 filesystem.squashfs 拷贝到 /srv/tftp/clonezilla 下,其实位置随意,只要是在 /srv/tftp 目录里并且对 /srv/tftp/pxelinux.cfg/default 作出相应改动即可。最后要对vsftpd作些设置。配置文件为 /etc/vsftpd.conf,要改动两个地方

      1) nonymous_enable=NO 改为 nonymous_enable=YES

       2)添加一行anon_root=/srv/tftp


    这样所有工作都完成了,一个简陋的pxe server就搭好了。


    当然,我们还可以启动其他的系统镜像,只需要在 /srv/tftp/pxelinux.cfg/default 添加相应的entry就可以了,格式如下


    LABEL freedos MENU LABEL dos box KERNEL bin/memdisk APPEND initrd=kernels/freedos.img.gz


    补充参考:

    [1] http://www.debian-administration.org/articles/478

    [2] [url=]http://elinux.org/R-Pi_PXE_Server[/url]

    [3] http://technet.microsoft.com/en-us/library/cc732649(v=ws.10).aspx


    回复

    使用道具 举报

  • TA的每日心情
    开心
    2012-11-23 16:50
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2012-10-10 16:28:51 | 显示全部楼层
    支持,顶一个
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条



    手机版|小黑屋|与非网

    GMT+8, 2025-1-30 08:58 , Processed in 0.118396 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.