<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Diskless_Booting</id>
	<title>Diskless Booting - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Diskless_Booting"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Diskless_Booting&amp;action=history"/>
	<updated>2026-04-07T12:12:33Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Diskless_Booting&amp;diff=724&amp;oldid=prev</id>
		<title>2022年3月5日 (六) 03:50 Zhang3</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Diskless_Booting&amp;diff=724&amp;oldid=prev"/>
		<updated>2022-03-05T03:50:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2022年3月5日 (六) 03:50的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;第13行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第13行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;编译syslinux; 将创建一个 &amp;lt;tt&amp;gt;pxelinux.0&amp;lt;/tt&amp;gt; 文件。 它是一个简单的通过tftp引导加载程序的PXE二进制文件，可以由客户端计算机 (而不是带有TFTP服务器的计算机) 引导。 相应地设置DHCP和TFTP以便文件启动后，你可以使用pxelinux加载syslinux附带的 “memdisk”。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;编译syslinux; 将创建一个 &amp;lt;tt&amp;gt;pxelinux.0&amp;lt;/tt&amp;gt; 文件。 它是一个简单的通过tftp引导加载程序的PXE二进制文件，可以由客户端计算机 (而不是带有TFTP服务器的计算机) 引导。 相应地设置DHCP和TFTP以便文件启动后，你可以使用pxelinux加载syslinux附带的 “memdisk”。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;此文件加载了一个 &lt;/del&gt;&amp;lt;tt&amp;gt;memdisk initrd = grub.ima&amp;lt;/tt&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;语法，这将导致pxelinux通过TFTP加载memdisk和grub&lt;/del&gt;.ima。 Memdisk将拦截中断0x13，并以这种方式引导磁盘映像。 (但是，似乎并非所有 [[GRUB Legacy]] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;磁盘映像都通过bios访问软盘。 如果你有这样的映像，你就被卡住了。&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;此文件使用&lt;/ins&gt;&amp;lt;tt&amp;gt;memdisk initrd=grub.ima&amp;lt;/tt&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;语法加载，这将导致pxelinux通过TFTP加载memdisk和grub&lt;/ins&gt;.ima。 Memdisk将拦截中断0x13，并以这种方式引导磁盘映像。 (但是，似乎并非所有 [[GRUB Legacy]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;磁盘映像希望都通过bios访问软盘。 如果你有这样的映像，你在这里就被卡住了。&lt;/ins&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;你应该得到一个 &lt;/del&gt;&amp;lt;tt&amp;gt;pxelinux.0&amp;lt;/tt&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;文件，该文件可以通过例如etherboot加载。 &lt;/del&gt;许多现代计算机允许从NIC启动，因此你只需要启动TFTP和DHCP服务器。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;你应该获得一个 &lt;/ins&gt;&amp;lt;tt&amp;gt;pxelinux.0&amp;lt;/tt&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;文件，该文件可以通过例如etherboot的方式加载。 &lt;/ins&gt;许多现代计算机允许从NIC启动，因此你只需要启动TFTP和DHCP服务器。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;此时，你可以对grub.ima磁盘映像进行更改，并在此处放置 [[GRUB Legacy]] 配置文件和内核的二进制文件。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;此时，你可以对grub.ima磁盘映像进行更改，并在此处放置 [[GRUB Legacy]] 配置文件和内核的二进制文件。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l23&quot;&gt;第23行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第23行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== gPXE + GRUB方式 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== gPXE + GRUB方式 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[GRUB]] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;从版本2可以支持 &lt;/del&gt;[http://www.etherboot.org/wiki/start gPXE] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;的网络支持，不像GRUB &lt;/del&gt;Legacy不支持更新的网卡。 gPXE项目是当前维护的一个开源免费网络引导加载程序。 从他们的网站上获取gPXE ISO，磁盘或USB磁盘映像很容易，但是你需要做一些额外工作才能使GRUB成功加载。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[GRUB]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;从版本2可以在 &lt;/ins&gt;[http://www.etherboot.org/wiki/start gPXE] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;的网络上piggy-back，不像GRUB &lt;/ins&gt;Legacy不支持更新的网卡。 gPXE项目是当前维护的一个开源免费网络引导加载程序。 从他们的网站上获取gPXE ISO，磁盘或USB磁盘映像很容易，但是你需要做一些额外工作才能使GRUB成功加载。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;gPXE支持多引导，但是如果它检测到多引导映像，则它将不提供PXE服务。  不幸的是，它将你生成的GRUB映像检测为multiboot，而我发现解决此问题的唯一方法是在没有multiboot支持的情况下重新编译gPXE。  重新编译gPXE很容易: 解压缩，&amp;lt;tt&amp;gt;cd src; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;制作 &lt;/del&gt;&amp;lt;/tt&amp;gt;。  在此之前，你将需要编辑 &amp;lt;tt&amp;gt;src/config/defaults/pcbios.h&amp;lt;/tt&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;并注释掉定义 &lt;/del&gt;&amp;lt;tt&amp;gt;IMAGE_MULTIBOOT&amp;lt;/tt&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;的行。 &lt;/del&gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;编译后，你应该剩下 &lt;/del&gt;&amp;lt;tt&amp;gt;bin/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;gpxe。&lt;/del&gt;{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dsk，iso，usb&lt;/del&gt;}&amp;lt;/tt&amp;gt;，你可以将其写入磁盘或CD。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;gPXE支持多引导，但是如果它检测到多引导映像，则它将不提供PXE服务。  不幸的是，它将你生成的GRUB映像检测为multiboot，而我发现解决此问题的唯一方法是在没有multiboot支持的情况下重新编译gPXE。  重新编译gPXE很容易: 解压缩，&amp;lt;tt&amp;gt;cd src; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;make&lt;/ins&gt;&amp;lt;/tt&amp;gt;。  在此之前，你将需要编辑 &amp;lt;tt&amp;gt;src/config/defaults/pcbios.h&amp;lt;/tt&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;并注释掉预定义 &lt;/ins&gt;&amp;lt;tt&amp;gt;IMAGE_MULTIBOOT&amp;lt;/tt&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;的代码行。 &lt;/ins&gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;编译后，你应该得到 &lt;/ins&gt;&amp;lt;tt&amp;gt;bin/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;gpxe.&lt;/ins&gt;{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dsk,iso,usb&lt;/ins&gt;}&amp;lt;/tt&amp;gt;，你可以将其写入磁盘或CD。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;要创建GRUB PXE可引导映像，可以按照 [http://www.gnu.org/software/grub/manual/grub.html#Network GRUB手册的网络章节] 中的建议进行操作。 &amp;lt;tt&amp;gt;grub-mkimage&amp;lt;/tt&amp;gt; 的几个选项在过去的版本中不存在，如果不支持，则需要升级。 如果从源代码编译，则可以在源目录中获取所需的所有 &amp;lt;tt&amp;gt;*.{lst，mod，img}&amp;lt;/tt&amp;gt; 文件。  如果你编译自己的GRUB，则不需要安装它，只需执行以下命令:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;要创建GRUB PXE可引导映像，可以按照 [http://www.gnu.org/software/grub/manual/grub.html#Network GRUB手册的网络章节] 中的建议进行操作。 &amp;lt;tt&amp;gt;grub-mkimage&amp;lt;/tt&amp;gt; 的几个选项在过去的版本中不存在，如果不支持，则需要升级。 如果从源代码编译，则可以在源目录中获取所需的所有 &amp;lt;tt&amp;gt;*.{lst，mod，img}&amp;lt;/tt&amp;gt; 文件。  如果你编译自己的GRUB，则不需要安装它，只需执行以下命令:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l37&quot;&gt;第37行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第37行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;interface=...                # &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;be careful what interface the dhcp server runs on!&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;interface=...                # &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;注意dhcp服务器运行在什么接口上！&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;bind-interfaces              # *&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;really&lt;/del&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;only bind that interface&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;bind-interfaces              # *&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;真的&lt;/ins&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;只绑定该接口&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;dhcp-range=a.b.c.d,e.f.g.h   # &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;whatever your private network uses&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;dhcp-range=a.b.c.d,e.f.g.h   # &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;无论你的专用网络使用什么&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;dhcp-boot=boot/grub/grub2pxe # &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tells machine to boot grub&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;dhcp-boot=boot/grub/grub2pxe # &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;告诉机器启动grub&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;dhcp-no-override             # &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;some kind of workaround that gpxe needs&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;dhcp-no-override             # &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;gpxe需要的某种工作环境&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;enable-tftp&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;enable-tftp&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;tftp-root=/tftp              # &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;or wherever&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;tftp-root=/tftp              # &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;或任何方式&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l61&quot;&gt;第61行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第61行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;确保你的内核和模块出现在tftp根目录中，并且你应该设置为通过工作站之间连接的专用网络连接使用gPXE介质引导。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;确保你的内核和模块出现在tftp根目录中，并且你应该设置为通过工作站之间连接的专用网络连接使用gPXE介质引导。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;直接方式 &lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;自制直接方式 &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Main|PXE}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Main|PXE}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;上面的两个选项都涉及使用别人的代码来完成繁琐的工作，在某些情况下可能是不希望这么做 - &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;许可权冲突，技术问题 &lt;/del&gt;(例如，对于 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;“memdisk”，中断0x13挂钩在受保护模式下无法工作&lt;/del&gt;) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;以及可能的个人自豪感。 &lt;/del&gt;幸运的是，编写自己的PXE引导代码并不像听起来那么困难。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;上面的两个选项都涉及使用别人的代码来完成繁琐的工作，在某些情况下可能是不希望这么做 - &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;许可证冲突，技术问题 &lt;/ins&gt;(例如，对于 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;“memdisk”，中断0x13钩子拦截在受保护模式下无法工作&lt;/ins&gt;) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;以及可能出于个人自豪感。 &lt;/ins&gt;幸运的是，编写自己的PXE引导代码并不像听起来那么困难。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;乍一看，PXE规范看起来相当令人生畏，但是其中大部分与BIOS和网卡有关，可以放心地忽略。 重要的部分是在第3章，PXE API。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;乍一看，PXE规范看起来相当令人生畏，但是其中大部分与BIOS和网卡有关，可以放心地忽略。 重要的部分是在第3章，PXE API。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Diskless_Booting&amp;diff=351&amp;oldid=prev</id>
		<title>Zhang3：创建页面，内容为““Diskless Booting无盘引导” 是通过网络引导的同义词。 操作系统的内核及其模块是从网络计算机下载的。 这对于Bochs模拟器太慢或必须使用软盘的大型项目非常有用，并且在某些公司环境中用于启用集中式操作系统更新。  为了通过网络启动内核，你需要一个DHCP服务器，一个TFTP服务器以及在另一台计算机上充当客户端的程序。  == GRUB Legacy方式 ==  首…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Diskless_Booting&amp;diff=351&amp;oldid=prev"/>
		<updated>2022-01-29T01:34:50Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为““Diskless Booting无盘引导” 是通过网络引导的同义词。 操作系统的内核及其模块是从网络计算机下载的。 这对于Bochs模拟器太慢或必须使用软盘的大型项目非常有用，并且在某些公司环境中用于启用集中式操作系统更新。  为了通过网络启动内核，你需要一个DHCP服务器，一个TFTP服务器以及在另一台计算机上充当客户端的程序。  == GRUB Legacy方式 ==  首…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;“Diskless Booting无盘引导” 是通过网络引导的同义词。 操作系统的内核及其模块是从网络计算机下载的。 这对于Bochs模拟器太慢或必须使用软盘的大型项目非常有用，并且在某些公司环境中用于启用集中式操作系统更新。&lt;br /&gt;
&lt;br /&gt;
为了通过网络启动内核，你需要一个DHCP服务器，一个TFTP服务器以及在另一台计算机上充当客户端的程序。&lt;br /&gt;
&lt;br /&gt;
== GRUB Legacy方式 ==&lt;br /&gt;
&lt;br /&gt;
首先，你必须创建一个配置为支持网络的 [[GRUB Legacy]] 软盘。 你可以下载 [[GRUB Legacy]] 的当前源代码版本，并 &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; 支持你的网卡。&lt;br /&gt;
&lt;br /&gt;
尽管这是最简单的方法，但GRUB Legacy似乎并不支持所有的网卡。&lt;br /&gt;
&lt;br /&gt;
== PXELINUX方式 ==&lt;br /&gt;
&lt;br /&gt;
编译syslinux; 将创建一个 &amp;lt;tt&amp;gt;pxelinux.0&amp;lt;/tt&amp;gt; 文件。 它是一个简单的通过tftp引导加载程序的PXE二进制文件，可以由客户端计算机 (而不是带有TFTP服务器的计算机) 引导。 相应地设置DHCP和TFTP以便文件启动后，你可以使用pxelinux加载syslinux附带的 “memdisk”。&lt;br /&gt;
&lt;br /&gt;
此文件加载了一个 &amp;lt;tt&amp;gt;memdisk initrd = grub.ima&amp;lt;/tt&amp;gt; 语法，这将导致pxelinux通过TFTP加载memdisk和grub.ima。 Memdisk将拦截中断0x13，并以这种方式引导磁盘映像。 (但是，似乎并非所有 [[GRUB Legacy]] 磁盘映像都通过bios访问软盘。 如果你有这样的映像，你就被卡住了。)&lt;br /&gt;
&lt;br /&gt;
你应该得到一个 &amp;lt;tt&amp;gt;pxelinux.0&amp;lt;/tt&amp;gt; 文件，该文件可以通过例如etherboot加载。 许多现代计算机允许从NIC启动，因此你只需要启动TFTP和DHCP服务器。&lt;br /&gt;
&lt;br /&gt;
此时，你可以对grub.ima磁盘映像进行更改，并在此处放置 [[GRUB Legacy]] 配置文件和内核的二进制文件。&lt;br /&gt;
&lt;br /&gt;
例如，在linux下尝试 &amp;lt;tt&amp;gt;mount /tftpboot/grub.ima /mnt/fpy -o loop&amp;lt;/tt&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
== gPXE + GRUB方式 ==&lt;br /&gt;
&lt;br /&gt;
[[GRUB]] 从版本2可以支持 [http://www.etherboot.org/wiki/start gPXE] 的网络支持，不像GRUB Legacy不支持更新的网卡。 gPXE项目是当前维护的一个开源免费网络引导加载程序。 从他们的网站上获取gPXE ISO，磁盘或USB磁盘映像很容易，但是你需要做一些额外工作才能使GRUB成功加载。&lt;br /&gt;
&lt;br /&gt;
gPXE支持多引导，但是如果它检测到多引导映像，则它将不提供PXE服务。  不幸的是，它将你生成的GRUB映像检测为multiboot，而我发现解决此问题的唯一方法是在没有multiboot支持的情况下重新编译gPXE。  重新编译gPXE很容易: 解压缩，&amp;lt;tt&amp;gt;cd src; 制作 &amp;lt;/tt&amp;gt;。  在此之前，你将需要编辑 &amp;lt;tt&amp;gt;src/config/defaults/pcbios.h&amp;lt;/tt&amp;gt; 并注释掉定义 &amp;lt;tt&amp;gt;IMAGE_MULTIBOOT&amp;lt;/tt&amp;gt; 的行。  编译后，你应该剩下 &amp;lt;tt&amp;gt;bin/gpxe。{dsk，iso，usb}&amp;lt;/tt&amp;gt;，你可以将其写入磁盘或CD。&lt;br /&gt;
&lt;br /&gt;
要创建GRUB PXE可引导映像，可以按照 [http://www.gnu.org/software/grub/manual/grub.html#Network GRUB手册的网络章节] 中的建议进行操作。 &amp;lt;tt&amp;gt;grub-mkimage&amp;lt;/tt&amp;gt; 的几个选项在过去的版本中不存在，如果不支持，则需要升级。 如果从源代码编译，则可以在源目录中获取所需的所有 &amp;lt;tt&amp;gt;*.{lst，mod，img}&amp;lt;/tt&amp;gt; 文件。  如果你编译自己的GRUB，则不需要安装它，只需执行以下命令:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
./grub-mkimage -d . --format=i386-pc --output=core.img --prefix=&amp;quot;(pxe)/boot/grub&amp;quot; pxe pxecmd&lt;br /&gt;
cat pxeboot.img core.img &amp;gt; grub2pxe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
你需要做的最后一件事是设置一个DHCP/BOOTP/TFTP服务器。  我使用了 &amp;lt;tt&amp;gt;dnsmasq&amp;lt;/tt&amp;gt;，它预先安装在我的工作站上，并且似乎在发行版中广泛可用。  可以轻松地在命令行或 &amp;lt;tt&amp;gt;/etc/dnsmasq.conf&amp;lt;/tt&amp;gt; 中进行配置，该命令行使用与长格式命令行选项相同的语法，但没有前导破折号。  你将需要以下选项:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
interface=...                # be careful what interface the dhcp server runs on!&lt;br /&gt;
bind-interfaces              # *really* only bind that interface&lt;br /&gt;
dhcp-range=a.b.c.d,e.f.g.h   # whatever your private network uses&lt;br /&gt;
dhcp-boot=boot/grub/grub2pxe # tells machine to boot grub&lt;br /&gt;
dhcp-no-override             # some kind of workaround that gpxe needs&lt;br /&gt;
enable-tftp&lt;br /&gt;
tftp-root=/tftp              # or wherever&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
还有其他选择可以探索。  现在，请确保从GRUB源中获取 &amp;lt;tt&amp;gt;grub2pxe，*.lst，*.mod&amp;lt;/tt&amp;gt;，并将它们放入 &amp;lt;tt&amp;gt;/tftp/boot/grub&amp;lt;/tt&amp;gt; 或等效项中。  也把你的 &amp;lt;tt&amp;gt;grub.cfg&amp;lt;/tt&amp;gt; 文件放在那里。  格式相当简单。  这是我使用的关键代码:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
set timeout=0&lt;br /&gt;
set default=0&lt;br /&gt;
menuentry &amp;quot;MY OS&amp;quot; {&lt;br /&gt;
  set root=(pxe)&lt;br /&gt;
  multiboot /kernel&lt;br /&gt;
  module    /shell&lt;br /&gt;
  module    /test&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
确保你的内核和模块出现在tftp根目录中，并且你应该设置为通过工作站之间连接的专用网络连接使用gPXE介质引导。&lt;br /&gt;
&lt;br /&gt;
== 直接方式 ==&lt;br /&gt;
&lt;br /&gt;
{{Main|PXE}}&lt;br /&gt;
&lt;br /&gt;
上面的两个选项都涉及使用别人的代码来完成繁琐的工作，在某些情况下可能是不希望这么做 - 许可权冲突，技术问题 (例如，对于 “memdisk”，中断0x13挂钩在受保护模式下无法工作) 以及可能的个人自豪感。 幸运的是，编写自己的PXE引导代码并不像听起来那么困难。&lt;br /&gt;
&lt;br /&gt;
乍一看，PXE规范看起来相当令人生畏，但是其中大部分与BIOS和网卡有关，可以放心地忽略。 重要的部分是在第3章，PXE API。&lt;br /&gt;
&lt;br /&gt;
PXE API能够在本机和其他几台电脑之间进行原始UDP连接，在这里首先，你可能只想使用TFTP来读取文件。&lt;br /&gt;
&lt;br /&gt;
== 另见 ==&lt;br /&gt;
=== 外部链接 ===&lt;br /&gt;
*[http://osdev.berlios.de/netboot.html Tutorial on network booting]&lt;br /&gt;
*[http://home.dei.polimi.it/fornacia/progetto_minazzi/index.html#HOW%20TO%20INSTALL%20A%20TFTP%20SERVER Setting up a TFTP server]&lt;br /&gt;
*[http://tftpd32.jounin.net/ TFTP32 server]&lt;br /&gt;
*[http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf PXE Specification] &lt;br /&gt;
&lt;br /&gt;
[[Category:Bootloaders]]&lt;/div&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
</feed>