免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1368 | 回复: 0
打印 上一主题 下一主题

How does PXE booting work? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-02 00:10 |只看该作者 |倒序浏览
From OpenBSD's FAQ
First, it is wise to understand how OpenBSD
boots on i386 and amd64 platforms.
Upon starting the boot process, the PXE-capable NIC broadcasts a DHCP
request over the network.
The DHCP server will assign the adapter an IP address, and gives it
the name of a file to be retrieved from a
tftp(1)
server and executed.
This file then conducts the rest of the boot process.
For OpenBSD, the file is
pxeboot
, which takes the place of the standard
boot(8) file.
pxeboot(8) is then able to load and execute a kernel (such as
bsd or
bsd.rd
) from the
same tftp(1) server.
How do I do it?
The first and obvious step is you must have a PXE-boot capable computer
or network adapter.
Some documentation will indicate all modern NICs and computers are PXE
capable, but this is clearly not true -- many low cost systems do not
include PXE ROMs or use an older network boot protocol.
You also need a properly configured
DHCP
and TFTP server.
Assuming an OpenBSD machine is the source of the boot files (this is
NOT required), your DHCP server
dhcpd.conf
file will need to have the following line:
    filename "pxeboot";
to have the DHCP server offer that file to the booting workstation.
For example:
    shared-network LOCAL-NET {
            option  domain-name "example.com";
            option  domain-name-servers 192.168.1.3, 192.168.1.5;
            subnet 192.168.1.0 netmask 255.255.255.0 {
                    option routers 192.168.1.1;
                    filename "pxeboot";
                    range 192.168.1.32 192.168.1.127;
                    default-lease-time 86400;
                    max-lease-time 90000;
            }
    }
You will also have to activate the
tftpd(8)
daemon.  This is typically done through
inetd(8)
.
The standard OpenBSD install has a sample line in inetd.conf
which will do nicely for you:
    #tftp  dgram   udp  wait  root  /usr/libexec/tftpd   tftpd -s /tftpboot
which simply needs to have the '#' character removed and send inetd(8) a
-HUP signal to get it to reload /etc/inetd.conf.
tftpd(8) serves files from a particular directory, in the case of this
line, that directory is /tftpboot, which we will use for this
example.
Obviously, this directory needs to be created and populated.
Typically, you will have only a few files here for PXE booting:

  • pxeboot
    , the PXE boot loader (serving the same function as
    boot
    on a disk-based system).

  • bsd.rd
    , the install kernel or bsd,
    a customized kernel.

  • /etc/boot.conf
    , a boot configuration file.

Note that /etc/boot.conf is only needed if the kernel you wish to
boot from is not named bsd, or other pxeboot defaults are not
as you need them (for example, you wish to use a serial console).
You can test your tftpd(8) server using a
tftp(1)
client, making sure you can fetch the needed files.
When your DHCP and TFTP servers are running, you are ready to try it.
You will have to activate the PXE boot on your system or network card;
consult your system documentation.
Once you have it set, you should see something similar to the following:
    Intel UNDI, PXE-2.0 (build 067)
    Copyright (C) 1997,1998 Intel Corporation
    For Realtek RTL 8139(X) PCI Fast Ethernet Controller v1.00 (990420)
    DHCP MAC ADDR: 00 E0 C5 C8 CF E1
    CLIENT IP: 192.168.1.76  MASK: 255.255.255.0  DHCP IP: 192.168.1.252
    GATEWAY IP: 192.168.1.1
    probing: pc0 com0 com1 apm pxe![2.1] mem[540k 28m a20=on]
    disk: hd0*
    net: mac 00:e0:c5:c8:cf:e1, ip 192.168.1.76, server 192.168.1.252
    >> OpenBSD/i386 PXEBOOT 1.00
    boot>
At this point, you have the standard OpenBSD boot prompt.  
If you simply type "bsd.rd" here, you will then fetch the
file bsd.rd from the TFTP server.
    >> OpenBSD/i386 PXEBOOT 1.00
    boot> bsd.rd
    booting tftp:bsd.rd: 4375152+733120 [58+122112+105468]=0x516d04
    entry point at 0x100120
    Copyright (c) 1982, 1986, 1989, 1991, 1993
            The Regents of the University of California.  All rights reserved.
    Copyright (c) 1995-2004 OpenBSD.  All rights reserved.  http://www.OpenBSD.org
    OpenBSD 3.6 (RAMDISK_CD) #378: Fri Sep 17 13:04:04 MDT 2004
      ...
The bsd.rd install kernel will now boot.
Can I boot other kinds of kernels using PXE other than
bsd.rd?
Yes, although with the tools currently in OpenBSD 3.6, PXE booting is
primarily intended for installing the OS.

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/2389/showart_19008.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP