【网启树莓派】无SD卡 从网络驱动树莓派_ raspberry boot via pxe
问题:无 SD 卡如何启动树莓派
环境:树莓派 4B+openwrt+ 群晖
解法:从网络启动 + tftp+nfs 挂载
背景说明:
在某个保密场景下,车间严禁使用 SD 卡和 U 盘,但树莓派需要 SD 卡才能启动,故需要一种无盘启动树莓派的解决方案
架构:
步骤:
- 第一步还是需要一张带系统的 SD 卡,插入树莓派,正常进入系统,使用下列命令将树莓派设置为从网络启动
1 | sudo raspi-config |
拔卡重启,你可以看到屏幕上的 TFTP 字样,这样客户端网启已经设置完成了
设置 DHCP,我的路由器是 openwrt,修改 dhcp 服务配置如下:
1 | vi /etc/dnsmasq.conf |
- 在路由器上设置 TFTP 服务器和路径,虽然开了 TFTP 服务,但是不用他,路径指向别的服务器
这时候路由器上的配置已经做完了
- 设置 TFTP 服务,路由器空间有限,将 TFTP 起在群晖上,并设置目录
6. 设置 NFS 服务,用来存放树莓派的操作系统 / 和 / BOOT 目录,这里同样使用群晖做 NFS 服务器
7. 这个时候 NFS 服务器就做好了,插入 SD 卡到树莓派开机,在树莓派上挂载群晖的 nfs 目录到 / mnt/nfs
1 | sudo rsync -xa --progress --exclude /mnt/nfs/ \ |
- 将要装的软件、应用在树莓派上装好后开始上传文件到 NFS 上
1 | sudo rsync -xa --progress --exclude /mnt/nfs/ \ |
将树莓派的 / boot 目录拷贝到群晖 TFTP 的根目录,关机拔卡
设置树莓派的启动文件,直接在群晖上编辑:tftp 目录下的 cmdline.txt
1 | console=serial0,115200 console=tty1 root = /dev/nfs nfsroot=192.168.31.ip:/你的nfs上的root目录,proto=tcp rw ip=dhcp rootwait elevator=deadline |
- 修改上传到群晖上的根目录下的 /etc/fstab,挂载 / boot 为远程 NFS 目录
1 | 192.168.31.192:/volume1/USB/tftp /boot nfs defaults,vers=3,proto=tcp 0 0 |
- 至此全部完成,插网线重启树莓派,系统启动后 df -h 可以看到 / 和 / boot 为远程 NFS 目录
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Real的博客!
评论
TwikooWaline