假设以下情况:您的计算机硬盘是空的,并且您身边没有 CD、软盘或 U 盘来启动计算机。但您已连接到互联网。
现代计算机支持使用 PXE 进行网络启动,但我还没有发现任何有关通过互联网启动的信息。
那么,是否可以使用 PXE 从互联网加载映像并启动它?通过在 RAM 中运行系统(即使是最小的 Linux),应该可以将其安装在硬盘上,并从这里构建一个工作系统。
答案1
尝试一下 gPXE。
答案2
是的,这是可能的。你只需要一个友好的环境来指示你的机器要启动什么。大约 10 年前,我使用 DNS、DHCP 和 TFTP 来启动和安装 RHEL。引导程序内核和boot.fedora项目...但这已经不再流行了。
如果没有这样“友好”的网络环境恐怕是不可能的。
答案3
2017 年 11 月 29 日更新:那个负值很激励人心……
我已经将“Clonezilla Live”和 ESXi 5.5.0 从 USB 拇指驱动器启动到系统内存。没有硬盘。两者的映像都在互联网上,它们基本上都是 Ubuntu。但 ISO 映像不包含将加载到内存或大容量存储(HDD、SSD)的前导码。PXE 支持“Legacy”和“uEFI”启动。如果您可以在互联网上找到配置为严格在内存中加载和运行的 Legacy 或 uEFI 可启动映像,那么 PXE 应该可以加载它,就像它在我们的实验室中加载 Clonezilla 一样。您可以在 Clonezilla 的网站或 Linux 发行版网站上查看。
您可能还会考虑从互联网上获取某些东西并用其启动计算机的安全隐患。我的经验让我信任我下载的 Clonezilla 和 ESXi 以及 Ubuntu 和 OpenSUSE 映像。来自其他地方的可执行文件?嗯。最好制作一个拇指驱动器或连接 DVD/CD rom 读取器。或者在另一台本地机器上设置 Clonezilla。
我最熟悉的是从 Clonezilla 进行 PXE 启动。我们的 Clonezilla 服务器设置为必须提前知道客户端计算机的 MAC 地址。它还会为其知道的每个 MAC 地址创建一个 IP 地址。
客户端的 PXE 接入网络并通过 MAC 宣布自己,询问是否有人有东西可以供它使用。Clonezilla 可以告诉客户端在本地启动自己,或者它可以将全内存 Linux 发送到客户端,然后使用它下载磁盘映像(Win、Linux、Mac 等),然后启动该映像。默认情况下,我们让 Clonezilla(服务器)告诉 PXE 从本地存储启动并为其提供正确的 IP 地址。这一切都是从网络接口完成的,CPU 不知道发生了什么。它被告知要启动本地卷,然后它就启动了。
如果 Clonezilla 服务器要求其重新映像,PXE 会下载驻留在内存中的 Clonezilla 客户端可启动文件的第一部分,将其放入 CPU 的内存中,然后让 CPU 跳转到该部分。第一部分足以让 CPU 获得 PXE 和网络接口来获取和下载至少一个其他块,有了这两个块,它就可以获得更多块,直到最终下载所有驻留在内存中的 Clonezilla 客户端操作系统,将其正确安装在内存中,并让 CPU 运行它。
一旦 Clonezilla 客户端在目标机器上运行,Clonezilla 服务器就会发送它设置的磁盘映像,当该磁盘映像加载完成后,CPU 将从它。
答案4
在路由器上配置正确的 DHCP 选项,您应该不会遇到任何问题:
060:PXE客户端
066:您的互联网服务器的 DNS 名称 (server.domain.com)
067:boot\x86\wdsnbp.com(以WDS为例,您需要找到要加载的文件)
更多关于选项的信息这里