在 OpenWrt 上搭建 PXE 服务器通过网络启动安装 Debian
前提:拥有一个带USB接口的并且已刷OpenWrt的路由器,路由器可以联网。
将U盘挂载到路由器上,这个不在本文讨论范围之类,故假设U盘已经挂在到/mnt/sda1。
通过SSH登录路由器,在/mnt/sda1下新建一个文件夹名曰pxe:
mkdir -p /mnt/sda1/pxe
下载Debian的网络启动相关文件,文件可以在Debian的ftp上找到:
ftp://ftp.debian.org/debian/dists/squeeze/main/installer-i386/current/images/netboot
ftp://ftp.debian.org/debian/dists/wheezy/main/installer-i386/current/images/netboot
上面分别是两个版本的启动文件,其子目录gtk下也是一套独立的启动文件,是有图形安装界面的。
下载要下载整个目录,不需要图形界面的gtk这个目录可以不要,要图形界面的可以只下载gtk这个目录。
最好是在Linux下使用wget进行递归下载,因为ftp中有些文件和目录是以链接的形式存在的,在Windows下下载可能造成链接丢失从而导致文件不全。
比如:
wget --cut-dirs=9 -nH -P wheezy-netboot-gtk -r ftp://ftp.debian.org/debian/dists/wheezy/main/installer-i386/current/images/netboot/gtk/
或者:
wget --cut-dirs=9 -nH -P squeeze-netboot-gtk -r ftp://ftp.debian.org/debian/dists/squeeze/main/installer-i386/current/images/netboot/gtk/
如果下载很慢,可以换用国内镜像:
wget --cut-dirs=9 -nH -P wheezy-netboot-gtk -r ftp://mirrors.ustc.edu.cn/debian/dists/wheezy/main/installer-i386/current/images/netboot/gtk/
或者:
wget --cut-dirs=9 -nH -P squeeze-netboot-gtk -r ftp://mirrors.ustc.edu.cn/debian/dists/squeeze/main/installer-i386/current/images/netboot/gtk/
如果你要在OpenWrt上直接下载,需要安装wget以替代busybox内建的wget:
opkg update
opkg install wget
这里是上面的命令所下载的文件打包:
wheezy-netboot-gtk_i386.tar.gz
squeeze-netboot-gtk_i386.tar.gz
将所下载的文件放置到/mnt/sda1/pxe下,其目录下有类似以下一些文件和文件夹:
如果你选择下载我提供的打包文件,可以将wheezy-netboot-gtk_i386.tar.gz上传到路由器/mnt/sda1/pxe,然后解压:
cd /mnt/sda1/pxe
tar -xzvf wheezy-netboot-gtk_i386.tar.gz
然后wheezy-netboot-gtk_i386.tar.gz可以删除:
rm wheezy-netboot-gtk_i386.tar.gz
进入OpenWrt的WEB设置界面,在“网络”-“DNS/DHCP”设置(即Dnsmasq设置)下,选择“TFTP设置”,做如下设置:
TFTP服务器根目录 /mnt/sda1/pxe/
网络启动镜像 pxelinux.0
然后点击下方的“保存&应用”。
这样,整个搭建过程就完成了,剩下的,只需要将电脑或者服务器接到路由器LAN口,并选择从网络启动即可。