linux网络启动

1. 概述

设备开启后通过网络加载操作系统启动。

需网络服务器一台,网络服务器安装syslinux、dhcp、tftp、ftp、nfs等等服务。

syslinux实现网络启动功能

dhcp为设备分配ip地址

tftp通过网络传输启动所需文件,基于udp协议

ftp通过网络传输文件,基于tcp协议

nfs网络文件系统,提供设备启动所需文件系统

2. 服务安装

以fedora14为例:

2.1 安装syslinux工具包

下载syslinux-4.02-3.fc14.i686.rpm安装之

2.1.1 使用/usr/share/syslinux/pxelinux.0作为生产引导文件

2.1.2 配置pxelinux服务

 将pxelinux.0拷贝到/tftpboot/目录下,然后建立/tftpboot/syslinux.cfg/目录。该目录下存放配置文件。

使用default,内容为:

default linux

prompt 1

timeout 600

display boot.msg

menu title Welcome to Fedora 14!

label linux

  menu label ^Install a new system or upgrade an existing system

  menu default

  kernel vmlinuz

  append initrd=initrd.img ro ramdisk_size=262144 root=/dev/ram0 console=ttyS0,115200

将生产内核和文件系统(vmlinuz initrd.img)复制到/tftpboot/下

将系统服务 防火墙和selinux关闭(修改/etc/selinux/config)

2.2 配置DHCP服务

2.2.1 下载dhcp安装包

dhcp-4.2.0-21.P2.fc14.i686.rpm

命令rpm -ivh --force dhcp-4.2.0-21.P2.fc14.i686.rpm 安装之

2.2.2 配置DHCP

设置网口ip地址:192.168.10.254

cp -f /usr/share/doc/dhcp-4.2.0/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

编辑dhcpd.conf

subnet 192.168.10.0 netmask 255.255.255.0 {

   range dynamic-bootp 192.168.10.50 192.168.10.150;#分配ip地址范围

  option domain-name-servers 192.168.10.254;#本机ip,作为DHCP服务器

  option domain-name "local dns";

  option routers 192.168.10.254;#本机ip

  option broadcast-address 255.255.255.255;

  default-lease-time 600;

  max-lease-time 7200;

  filename "pxelinux.0";#通过tftp传送的引导程序,直接放在tftp服务目录下

  next-server 192.168.10.254;#服务器ip地址

}

2.2.3 启动DHCP

service dhcpd start

2.3 配置TFTP服务

2.3.1 下载tftp-server-0.49-7.fc14.i686.rpm安装

2.3.2 下载xinetd-2.3.14-32.fc14.i686.rpm安装

修改文件vim /etc/xinetd.d/tftp

server_args =-s  /tftproot  -c

2.3.3 下载tftp-0.49-7.fc14.i686.rpm安装

2.4 配置FTP服务

2.4.1 安装ftp工具包

安装vsftpd工具包,一般fedora自带

2.4.2 配置/etc/vsftpd/vsftpd.conf

打开

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

这两行即可

2.4.3 添加ftp用户

groupadd ftpusers

useradd -G ftpusers -d /tftpboot/username/ -M username

添加了1个用户,名称是username,对应到目录是/tftpboot/username/

用命令passwd username设置用户密码

2.4.4 配置/etc/vsftpd/chroot_list

添加用户名进去,锁定浏览目录

2.4.5 开启ftp服务

service vsftpd restart

2.5 配置nfs服务

2.5.1 安装工具包

安装nfs-kernel-server和nfs-common软件包

2.5.2 配置/etc/exports

添加语句

/tftpboot/targetfs *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)

将/tftpboot/targetfs设为nfs目录

2.5.3 开启nfs服务

启动portmap服务:
service portmap start
启动NFS服务:
service nfs start

3. 环境搭建

将网络服务器和设备通过交换机置于同一子网内,设置设备BIOS,选择从网络启动。

4. 启动流程

4.1 开启设备

4.2 设备网卡通过服务器dhcp服务获取ip地址

4.3 服务器传送pxelinux.0文件到设备

4.4 设备运行pxelinux.0,通过tftp读取pxelinux.cfg下配置文件default

4.5 解析default文件,获取内核文件和内核启动参数

4.6 设备通过tftp从服务器下载kernel

4.7 如果内核启动参数中有initrd=xxx,设备会下载xxx作为文件系统

4.8 设备启动内核

4.9 如果已下载文件系统,那么就挂载文件系统,系统启动

4.10 使用nfs文件系统,需修改pxelinux.cfg/default文件

append noinitrd init=/linuxrc root=/dev/nfs rw console=ttyS0,115200 nfsroot=192.168.10.254:/tftpboot/targetfs ip=192.168.10.100:192.168.10.254:192.168.10.1:255.255.255.0:96.12:eth0:off

内核编译时需要选择:

--- Networking support

Networking options  --->

[*]   IP: kernel level autoconfiguration

[*]     IP: DHCP support

[*]     IP: BOOTP support

[*]     IP: RARP support

Device Drivers  --->

Block devices  --->

<*>   Network block device support

File systems  --->

Network File Systems  --->

<*>   NFS client support

[*]     NFS client support for NFS version 3

[*]       NFS client support for the NFSv3 ACL protocol extension

[*]     NFS client support for NFS version 4

[*]       NFS client support for NFSv4.1 (EXPERIMENTAL)

[*]   Root file system on NFS

以支持nfs作为根文件系统

5. 总结

syslinux作用像是一种网络bootloader

网络启动在系统启动时可以抛开ROM,可实现产品生产、调试、系统安装、功能测试等等功能。

产品生产:

通过网络启动,使用简单版本的linux内核和文件系统,编写脚本,将软件烧写到存储器上。

产品调试:

通过网络启动,推荐选择nfs方式挂在根文件系统,可从串口或者网络输出查看信息,可方便的调试内核和文件系统。

系统安装:

将光盘上所有文件复制到服务器ftp目录下,参照光盘启动的cfg文件修改pxelinux.cfg/default文件,启动光盘上系统,然后选择通过FTP安装,配置好服务器地址和路径即可。

功能测试:

通过网络启动,启动测试版本的 linux 系统,检测系统硬件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值