如何设置linux从网络启动
如何设置linux从网络启动详细介绍
在 Linux 系统中设置从网络启动(通常通过 PXE 技术实现)需要客户端和服务器端的配合,以下是详细步骤:
一、客户端配置(目标启动设备)
1.
启用 BIOS/UEFI 网络启动
- 开机时按特定按键(如
Del、F2、F12等,取决于主板品牌)进入 BIOS/UEFI 设置。 - BIOS 模式:
- 找到 Boot Options 或 启动设置,启用 PXE Network Boot 或 Network Boot(可能显示为 “Enable PXE” 或 “Onboard LAN Boot”)。
- 将 网络启动 设置为优先启动项(调整启动顺序,确保网络启动在硬盘之前)。
- UEFI 模式:
- 进入 启动选项,找到 UEFI PXE 引导 选项(通常在 “Boot from Ethernet” 或 “Network Device” 下),启用并设置为首选启动设备。
- 保存设置并重启。
2.
启动时选择网络启动(临时方案)
- 开机时按
F12(或厂商指定的启动菜单键),在启动菜单中选择 Network Boot 或 PXE 选项。
二、服务器端配置(提供引导资源)
服务器需部署 DHCP、TFTP 和(可选)NFS/HTTP 服务,用于分配 IP、提供引导文件和系统资源。以下以 Ubuntu/Debian 为例:
1.
安装 DHCP 服务器
bash
isc-dhcp-server
- 编辑配置文件
/etc/dhcp/dhcpd.conf,添加子网和 PXE 引导参数(示例):dhcpsubnet 192.168.1.0 netmask 255.255.255.0 {range 192.168.1.100 192.168.1.200; # IP地址池
option routers 192.168.1.1; # 网关
option domain-name-servers 8.8.8.8; # DNS
# PXE引导配置
next-server 192.168.1.10; # TFTP服务器IP
filename "pxelinux.0"; # 引导文件(BIOS模式)或"uefi/pxelinux.efi"(UEFI模式)
}
- 重启 DHCP 服务:bash
systemctl restart isc-dhcp-server
2.
安装 TFTP 服务器
bash
tftpd-hpa
- 配置 TFTP 根目录(如
/var/lib/tftpboot),编辑/etc/default/tftpd-hpa:confTFTP_DIRECTORY="/var/lib/tftpboot"TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"
- 重启 TFTP 服务:bash
systemctl restart tftpd-hpa
3.
准备引导文件
- BIOS 模式:下载
syslinux工具,获取引导文件pxelinux.0并放入 TFTP 根目录:bashsyslinux-common/usr/lib/syslinux/modules/bios/pxelinux.0 /var/lib/tftpboot/
- UEFI 模式:使用 UEFI 版本的引导文件(如
syslinux-efi包中的pxelinux.efi):bashsyslinux-efi/usr/lib/syslinux/modules/efi64/pxelinux.efi /var/lib/tftpboot/uefi/
- 添加引导菜单文件(在 TFTP 根目录创建
pxelinux.cfg/default):confDEFAULT linuxLABEL linux
KERNEL vmlinuz # 内核文件路径(需从网络或本地获取)
INITRD initrd.img # 初始化镜像
APPEND root=/dev/nfs nfsroot=192.168.1.10:/nfs/rootfs ip=dhcp # 根文件系统通过NFS挂载
4.
提供系统资源(可选)
- 通过 NFS 共享根文件系统(适用于无盘工作站):bash
nfs-kernel-server/nfs/rootfs
nobody:nogroup /nfs/rootfs
/nfs/rootfs .1.0/24rw,sync,no_subtree_check,no_root_squash
exportfs
- 或通过 HTTP/FTP 提供安装镜像(适用于网络安装系统):
将 ISO 镜像解压到 Web 服务器目录(如/var/www/html/ubuntu-install),引导菜单中指定内核和镜像路径。
三、测试启动
- 客户端重启,确保从网络启动(观察是否获取 IP 并加载引导文件)。
- 若出现引导菜单,选择对应的启动项(如 “Install Linux” 或 “Boot from NFS”)。
- 若失败,检查:
- DHCP 是否分配正确 IP 和 TFTP 服务器地址。
- TFTP 目录权限是否正确(需允许匿名访问)。
- 防火墙是否放行 UDP 67(DHCP)、UDP 69(TFTP)、TCP 80/NFS 端口(按需):bash
ufw allow dhcpufw allow tftp
ufw allow nfs
注意事项
- UEFI 与 BIOS 差异:UEFI 需使用
.efi后缀的引导文件,并确保服务器提供 UEFI 兼容的引导资源。 - 无盘系统:根文件系统需通过 NFS/NAS 挂载,或使用 iSCSI 远程磁盘。
- 安全增强:SELinux 或 AppArmor 可能需要调整策略,允许 DHCP/TFTP 服务访问相关目录。
通过以上步骤,Linux 设备即可通过网络(PXE)启动,适用于批量部署、无盘工作站或远程系统维护场景。