当前位置:首页 > 免费资源 > 正文内容

OpenWrt 实现 PXE 服务器 (TFTP+NFS) 以引导无盘工作站

admin2年前 (2022-05-08)免费资源774


一、综述
顾名思义,无盘系统是用于网吧、机房等公用计算机的一种网络传输技术。使用无盘系统启动的计算机将不使用本机的硬盘获得启动系统,而是通过网络的指定服务器去获得启动系统的镜像,并下载回本机后用于机器启动。PXE (Pre-boot Execution Environment) 是由 Intel 设计的协议,它是无盘系统的一种实现形式。很巧,OpenWrt 作为路由器操作系统,工作在网关模式下支持标准 DHCP, TFTP 和 NFS 协议实现;而目前大多数带有板载有线网卡的机器都支持网络启动 (Network Boot),能够在客户端侧支持 PXE。
本文以 https://blog.nanpuyue.com/2013/027.html 为原本,适当修改了部分内容以适应时代的变化,旨在使其能够支持 Ubuntu 22.04 LTS 的启动,为近世治理提供参考(错乱)。
需求硬件:

- 运行在网关模式下的 OpenWrt 设备(一般是路由器);
- 附着在上述 OpenWrt 设备上的至少 8GB 的空闲存储空间(路由器自带的也行,外接的 U 盘也行);
- 有线连接至上述 OpenWrt 设备的支持网络启动的计算机。


本方案继承原文,以 Ubuntu 作为案例,能够向旧兼容到 Ubuntu 12.04 LTS,其他发行版亦可参考本文。
二、下载 Ubuntu 镜像
对于 Ubuntu 镜像,问就是清华大学的 OpenTUNA https://opentuna.cn/ubuntu-releases/22.04/ubuntu-22.04-desktop-amd64.iso (通过亚马逊云科技的 CloudFront 分发,基本没有限速)。对于 8GB 及以上内存的电脑来说,64 位的 Ubuntu Desktop 还是能够轻松对付的。
三、调整和挂载相关目录
OpenWrt 挂载目录的方案请自行查找,本文将 13.94GB 的分区

  1. /dev/mmcblk0p3

复制代码

挂载为

  1. /mnt/main

复制代码

.

目录详情如下:

  1. /mnt/main/nfsroot

复制代码

NFS 根目录;

  1. /mnt/main/tftproot

复制代码

TFTP 根目录。


四、TFTP 和 NFS 环境配置
安装软件包

  1. nfs-kernel-server-utils

复制代码

(一般都安装了):

NFS 设置共享目录,“路径”填写

  1. /mnt/main/nfsroot/

复制代码

,“允许的客户端”填写

  1. *

复制代码

  1. 选项

复制代码

填写

  1. rw,no_root_squash,async,insecure,no_subtree_check

复制代码



如果 OpenWrt 没有图形界面,或未安装 NFS 管理的 LuCI APP,则修改

  1. /etc/exports

复制代码

,加入一行

  1. /mnt/main/nfsroot/    *(rw,no_root_squash,async,insecure,no_subtree_check)

复制代码

,保存后执行

  1. exportfs -rv

复制代码



网络-DHCP/DNS 处提供了 TFTP 配置,其中“启用 TFTP 服务器”调整为“使能”(即勾选),“TFTP 服务器根目录”填写

  1. /mnt/main/tftproot

复制代码

,“网络启动镜像”填写

  1. pxelinux.0

复制代码



如果 OpenWrt 没有图形界面,则修改

  1. /etc/config/dhcp

复制代码

,在

  1. config dnsmasq

复制代码

内写入以下内容:

  1. option enable_tftp '1'

  2. option tftp_root '/mnt/main/tftproot'

复制代码


新起一行,填入以下内容:

  1. config boot linux

  2.         option filename 'pxelinux.0'

  3.         option serveraddress '172.18.54.1'

  4.         option servername 'OpenWrt'

复制代码


其中,

  1. 172.18.54.1

复制代码

为 OpenWrt 的 IP 地址。

执行

  1. /etc/init.d/dnsmasq restart

复制代码

重启 DNSmasq。
五、上传镜像
打开步骤二下载的镜像,解压其

  1. .disk

复制代码

  1. casper

复制代码

文件夹。

将其上传到 OpenWrt 的

  1. /mnt/main/nfsroot

复制代码

目录。

六、配置 PXELinux
将步骤五中

  1. casper

复制代码

文件夹中的

  1. initrd

复制代码

  1. vmlinuz

复制代码

文件上传到 OpenWrt 的

  1. /mnt/main/tftproot

复制代码

目录。
下载 Debian Installer for NetBoot (Ubuntu 没有这个) https://opentuna.cn/debian/dists/bullseye/main/installer-amd64/current/images/netboot/netboot.tar.gz ,解压以下文件至同一文件夹:

  1. debian-installer/amd64/pxelinux.0

复制代码
  1. debian-installer/amd64/boot-screens/ldlinux.c32

复制代码
  1. debian-installer/amd64/boot-screens/libcom32.c32

复制代码
  1. debian-installer/amd64/boot-screens/libutil.c32

复制代码
  1. debian-installer/amd64/boot-screens/vesamenu.c32

复制代码





将其上传到 OpenWrt 的

  1. /mnt/main/tftproot

复制代码

目录。

  1. /mnt/main/tftproot

复制代码

目录新建目录

  1. pxelinux.cfg

复制代码

,在

  1. /mnt/main/tftproot/pxelinux.cfg

复制代码

目录新建文件

  1. default

复制代码

并填入以下内容:

  1. default vesamenu.c32

  2. prompt 0

  3. timeout 30

  4. menu title UBUNTU LIVE

  5. label ^Ubuntu Desktop

  6. kernel vmlinuz

  7. append initrd=initrd ip=dhcp boot=casper netboot=nfs nfsroot=172.18.54.1:/mnt/main/nfsroot locale=zh_CN.UTF-8

复制代码


其中,

  1. 172.18.54.1

复制代码

为 OpenWrt 的 IP 地址。

  1. /mnt/main/tftproot

复制代码

目录的文件如下:

七、引导
不同主板开启“从网络引导 ROM”功能的操作步骤不尽相同,建议联系主板制造商获得支持。

由于 NVIDIA 显卡对 Linux 一贯以来的不友好和 Ubuntu 22.04 的 bug,部分使用 NVIDIA 显卡输出的设备在 Ubuntu 22.04 下默认色彩异常,可以通过“设置”里的“色彩”调整解决。

文件系统结构欣赏:

鸣谢

https://blog.nanpuyue.com/2013/027.html 基于 OpenWrt 的 Linux 无盘工作站方案 - 南浦月
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1877618 Bug #1877618 “20.04 fails to boot via PXE (amd64) - “hidden .dis...” : Bugs : ubiquity package : Ubuntu
https://askubuntu.com/questions/1371786/problem-setting-up-pxe-boot-with-diskless-client-ubuntu-20-04-dnsmasq-nfs-serve dhcp - problem setting up pxe boot with diskless client ubuntu 20.04 (dnsmasq,nfs server) ltsp like - Ask Ubuntu
https://askubuntu.com/questions/1404516/screen-turns-yellow-even-using-the-live-option-ubuntu-22-04 drivers - Screen turns yellow even using the live option Ubuntu 22.04 - Ask Ubuntu

原载于 https://blog.iks.moe/archives/OpenWrt-PXE-Server-TFTP-NFS-diskless-Ubuntu.html
作者:iks


扫描二维码推送至手机访问。

版权声明:本文由博赚恋吧资源站发布,如需转载请注明出处。

本文链接:https://432l.com/post/9706.html

标签: OpenWrt
分享给朋友:

相关文章

中国财富网 - 看广告、玩游戏得大奖

中国财富网是类似PC蛋蛋的网站,你可以通过参加广告问答活动、体验广告、推荐好友加入、网上购物、玩竞猜游戏等方式赚取中国财富网金币,然后用你赚取的金币兑换各类你喜欢的奖品,有:Q币、手机充值卡、手机、MP3、MP4、数码相机、笔记本电脑、化妆品、玩具礼品等。注册为中国财富网会员需要手机验证,但完全免费,只是为了限制一人仅有一个帐户,成功注册会员可得50个金币见面礼。网址:http://www.c58...

恋吧分享—09年最新QQ空间免费代码大全

09年最新QQ空间免费代码大全使用方法和步骤:登陆进入自己的QQ空间,点击自定义,然后在QQ空间地址栏输入以上免费QQ空间代码.输入代码看到效果后,接着随便移动一下模块,最后点保存方案即可.1、QQ空间皮肤代码 黑色皮肤: javascript:window.top.space_addItem(1,9475,20,100,0,0,93); javascript:window.top.space_a...

ZetaBoards—高速可绑域名免费论坛申请

ZetaBoards是来自美国的免费论坛服务,服务器放置在著名的ThePlanet机房,速度不错。申请简单,功能强大,可自定义页面风格在内的很多内容,完全支持中文,不会出现乱码,可上传单个200K以内的附件。ZetaBoards免费论坛完全支持免费绑定域名,而且还可以绑定CO.CC这样的免费二级域名。关于co.cc域名,本站首页顶部有介绍!ZetaBoards免费论坛虽然很不错,但美中不足是全英文...

佳能—免费冲印照片(免费邮寄)并且拿奖品

佳能(中国)于2009年5月5日隆重推出“炫飞SELPHY,照片传心意”有奖活动!免费注册为会员即可参与赚积分免费冲印照片活动,成功注册为会员可得5个积分、邀请朋友参与可得5个积分、上传1张照片可得1个积分、参与有奖问答可得3个积分、填写调查问卷可得3个积分。只要花费5个积分可以免费冲印照片1张(免费邮寄给你),还可以用来兑换奖品,奖品有:SELPHY ES3小型照片打印机、SELPHY CP77...

Freepowerboards提供phpBB3可绑米免费论坛申请

FreePowerBoards提供phpBB3免费论坛申请,英文界面,但可以添加中文语言包。不过申请画面比较特殊,是利用引导方式在建立帐号前就可以挑选自己的喜爱的模板,并提供一个二级域名www.freepowerboards.com/yourname及一堆次网域选择喔(近30个左右)!更棒的是可以转向到您的顶级域名、把它变成您的专属讨论区。 还有它可以让您自行挂载语言包、想要英文也可以是正体中文喔...

大米盘 - 无限容量且几乎无限制的免费网络硬盘

大米盘免费网络硬盘,名字有点向纳米盘叫板的意思^_^。大米盘无限容量,无限流量,不限文件类型,不限单个文件大小,也没有存储时间限制,无需注册也无需安装任何插件即可上传文件,支持电驴、迅雷、旋风下载。为了方便管理文件,你也可以注册为大米盘会员,还可以尝试使用大米盘开发的插件来上传文件。之前打算介绍大米盘给大家,但当时实在是很不稳定,尤其下载文件的时候,现在已经比较稳定了,只是下载速度不太令人满意,大...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。