⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 network-diskless.html

📁 这是很好的学习嵌入式LINUX的文章
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>无盘操作</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /><link rel="HOME" title="FreeBSD 使用手册" href="index.html" /><link rel="UP" title="高级网络" href="advanced-networking.html" /><link rel="PREVIOUS" title="桥接" href="network-bridging.html" /><link rel="NEXT" title="ISDN" href="network-isdn.html" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /></head><body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="NAVHEADER"><table summary="Header navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><th colspan="3" align="center">FreeBSD 使用手册</th></tr><tr><td width="10%" align="left" valign="bottom"><a href="network-bridging.html"accesskey="P">后退</a></td><td width="80%" align="center" valign="bottom">章 24. 高级网络</td><td width="10%" align="right" valign="bottom"><a href="network-isdn.html"accesskey="N">前进</a></td></tr></table><hr align="LEFT" width="100%" /></div><div class="SECT1"><h1 class="SECT1"><a id="NETWORK-DISKLESS" name="NETWORK-DISKLESS">24.6.无盘操作</a></h1><i class="AUTHORGROUP"><span class="CONTRIB">更新:</span> Jean-Fran&#231;oisDockès.</i> <i class="AUTHORGROUP"><span class="CONTRIB">重新组织及增强:</span> AlexDupre.</i> <i class="AUTHORGROUP"><span class="CONTRIB">中文翻译:</span> 张 雪平 和 袁苏义.</i> <p>FreeBSD主机可以从网络启动而无需本地磁盘就可操作,使用的是从<acronymclass="ACRONYM">NFS</acronym>服务器装载的文件系统。除了标准的配置文件,无需任何的系统修改。很容易设置这样的系统因为所有必要的元素都很容易得到:</p><ul><li><p>至少有两种可能的方法从网络加载内核:</p><ul><li><p><acronym class="ACRONYM">PXE</acronym>: <spanclass="TRADEMARK">Intel</span>&reg;的先启动执行环境(Preboot XecutionEnvironment)系统是一种灵活的引导ROM模式,这个ROM内建在一些网卡或主板的中。查看<spanclass="CITEREFENTRY"><spanclass="REFENTRYTITLE">pxeboot</span>(8)</span>以获取更多细节。</p></li><li><p><b class="APPLICATION">Etherboot</b> port (<ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/net/etherboot/pkg-descr"><ttclass="FILENAME">net/etherboot</tt></a>)产生通过网络加载内核的可ROM代码。这些代码可以烧入网卡上的PROM上,或从本地软盘(或硬盘)驱动器加载,或从运行着的<span class="TRADEMARK">MS-DOS</span>&reg;系统加载。它支持多种网卡。</p></li></ul></li><li><p>一个样板脚本(<ttclass="FILENAME">/usr/share/examples/diskless/clone_root</tt>)简化了对服务器上的工作站根文件系统的创建和维护。这个脚本需要少量的自定义,但你能很快的熟悉它。</p></li><li><p><tt class="FILENAME">/etc</tt>存在标准的系统启动文件用于侦测和支持无盘的系统启动。</p></li><li><p>可以向<acronym class="ACRONYM">NFS</acronym>文件或本地磁盘进行交换(如果需要的话)。</p></li></ul><p>设置无盘工作站有许多方法。有很多相关的元素大部分可以自定义以适合本地情况。以下将介绍一个完整系统的安装,强调的是简单性和与标准FreeBSD启动脚本的兼容。介绍的系统有以下特性:</p><ul><li><p>无盘工作站使用一个共享的只读<tt class="FILENAME">/</tt>文件系统和一个共享的只读<ttclass="FILENAME">/usr</tt>。</p><p>root 文件系统是一份标准的FreeBSD根文件系统(一般是服务器的),只是一些配置文件被特定于无盘操作的配置文件覆盖。</p><p>root文件系统必须可写的部分被 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">mfs</span>(8)</span> (FreeBSD 4.X) 或 <spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">md</span>(4)</span> (FreeBSD 5.X)文件系统覆盖。任何的改写在重启后都会丢失。</p></li><li><p>内核由<b class="APPLICATION">etherboot</b> 或 <acronym class="ACRONYM">PXE</acronym>传送和加载, 有些情况可能会指定使用其中之一。</p></li></ul><div class="CAUTION"><blockquote class="CAUTION"><p><b>注意</b>如上所述,这个系统是不安全的。它应该处于网络的受保护区域并不被其它主机信任。</p></blockquote></div><p>这部分所有的信息都已使用FreeBSDreleases 4.9-RELEASE 和5.2.1-RELEASE测试过。文本主是使用4.X格式组织的。为适应5.X的改变,都有注释被加入。</p><div class="SECT2"><h2 class="SECT2"><a id="AEN36473" name="AEN36473">24.6.1. 背景信息</a></h2><p>设置无盘工作站相对要简单而又易出错。有时分析一些原因是很难的。例如:</p><ul><li><p>编译时选项在运行时可能产生不同的行为。</p></li><li><p>出错信息经常是加密了的或根本就没有。</p></li></ul><p>在这里,涉及到的一些背景知识对于可能出现的问题的解决是很有帮助的。</p><p>要成功地引导系统还有些操作需要做。</p><ul><li><p>机子需要获取初始的参数,如它的IP地址、执行文件、服务器名、根路径。这个可以使用或BOOTP协议来完成。<acronymclass="ACRONYM">DHCP</acronym>是BOOTP的兼容扩展,并使用相同的端口和基本包格式。</p><p>只使用BOOTP来配置系统也是可行的。 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">bootpd</span>(8)</span>服务程序被包含在基本的FreeBSD系统里。</p><p>不过,<acronym class="ACRONYM">DHCP</acronym>相比BOOTP有几个好处(更好的配置文件,使用<acronymclass="ACRONYM">PXE</acronym>的可能性,以及许多其它并不直接相关的无盘操作),接着我们会要描述一个<acronym class="ACRONYM">DHCP</acronym>配置,可能的话会利用与使用<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">bootpd</span>(8)</span>相同的例子。这个样板配置会使用<bclass="APPLICATION">ISC DHCP</b>软件包(3.0.1.r12发行版安装在测试服务器上)。</p></li><li><p>机子需要传送一个或多个程序到本地内存。<acronym class="ACRONYM">TFTP</acronym> 或<acronym class="ACRONYM">NFS</acronym> 会被使用。选择<acronymclass="ACRONYM">TFTP</acronym> 还是 <acronym class="ACRONYM">NFS</acronym>需要在几个地方的“编译时间”选项里设置。 通常的错误源是为文件名指定了错误的协议:<acronymclass="ACRONYM">TFTP</acronym>通常从服务器里的一个单一目录传送所有文件,并需要相对这个目录的文件名。<acronym class="ACRONYM">NFS</acronym>需要的是绝对文件路径。</p></li><li><p>介于启动程序和内核之间的可能的部分需要被初始化并执行。在这部分有几个重要的变量:</p><ul><li><p><acronym class="ACRONYM">PXE</acronym> 会装入 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">pxeboot</span>(8)</span>——它是FreeBSD第三阶段装载器的修改版。<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">loader</span>(8)</span>会获得许多参数用于系统启动,并在传送控制之前把它们留在内核环境里。在这种情况下,使用<tt class="FILENAME">GENERIC</tt>内核就可能了。</p></li><li><p><bclass="APPLICATION">Etherboot</b>会做很少的准备直接装载内核。你要使用指定的选项建立(build)内核。</p></li></ul><p><acronym class="ACRONYM">PXE</acronym> 和 <b class="APPLICATION">Etherboot</b> 在 4.X系统里工作得一样的好。因为5.X 内核通常让 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">loader</span>(8)</span> 做了更多的事情,<acronymclass="ACRONYM">PXE</acronym> 比较适合5.X系统。</p><p>如果你的 <acronym class="ACRONYM">BIOS</acronym> 和网卡支持<acronymclass="ACRONYM">PXE</acronym>,你应该使用它。当然,使用<bclass="APPLICATION">Etherboot</b>依然可以启动5.X系统。</p></li><li><p>最后,机子需要访问它的文件系统。 <acronym class="ACRONYM">NFS</acronym>使用在所有的情况下。</p></li></ul><p>查看<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">diskless</span>(8)</span>手册页。</p></div><div class="SECT2"><h2 class="SECT2"><a id="AEN36542" name="AEN36542">24.6.2. 安装说明</a></h2><div class="SECT3"><h3 class="SECT3"><a id="AEN36544" name="AEN36544">24.6.2.1. 配置使用<bclass="APPLICATION">ISC DHCP</b></a></h3><p><b class="APPLICATION">ISC DHCP</b>服务器可以回应 BOOTP 和 <acronymclass="ACRONYM">DHCP</acronym> 的请求。</p><p>对于4.9的发行版,<b class="APPLICATION">ISC DHCP 3.0</b>并不属于基本系统。首先你需要安装 <ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/net/isc-dhcp3-server/pkg-descr"><ttclass="FILENAME">net/isc-dhcp3-server</tt></a> port 或相应的“包”。</p><p>一旦安装了<b class="APPLICATION">ISC DHCP</b>, 还需要一个配置文件才能运行(通常名叫<ttclass="FILENAME">/usr/local/etc/dhcpd.conf</tt>)。这里有个注释过的例子,里边主机<ttclass="HOSTID">margaux</tt> 使用 <b class="APPLICATION">Etherboot</b> ,而主机<ttclass="HOSTID">corbieres</tt> 使用 <acronym class="ACRONYM">PXE</acronym>:</p><pre class="PROGRAMLISTING">default-lease-time 600;max-lease-time 7200;authoritative;option domain-name "example.com";option domain-name-servers 192.168.4.1;option routers 192.168.4.1;subnet 192.168.4.0 netmask 255.255.255.0 {  use-host-decl-names on; <a id="CO-DHCP-HOST-NAME" name="CO-DHCP-HOST-NAME"><imgsrc="./imagelib/callouts/1.png" hspace="0" vspace="0" border="0" alt="(1)" /></a>  option subnet-mask 255.255.255.0;  option broadcast-address 192.168.4.255;  host margaux {    hardware ethernet 01:23:45:67:89:ab;    fixed-address margaux.example.com;    next-server 192.168.4.4; <a id="CO-DHCP-NEXT-SERVER" name="CO-DHCP-NEXT-SERVER"><imgsrc="./imagelib/callouts/2.png" hspace="0" vspace="0" border="0" alt="(2)" /></a>    filename "/data/misc/kernel.diskless"; <a id="CO-DHCP-FILENAME"name="CO-DHCP-FILENAME"><img src="./imagelib/callouts/3.png" hspace="0" vspace="0"border="0" alt="(3)" /></a>    option root-path "192.168.4.4:/data/misc/diskless"; <a id="CO-DHCP-ROOT-PATH"name="CO-DHCP-ROOT-PATH"><img src="./imagelib/callouts/4.png" hspace="0" vspace="0"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -