是否可以通过网络从 ISO 启动?如何启动?

是否可以通过网络从 ISO 启动?如何启动?

我有一台机器,上面存储了可启动 ISO,还有另一台空白机器,我想在上面安装 ISO。它们都在同一个 LAN 上(连接到同一个交换机)。我该如何从主计算机上存储的 ISO 启动空白机器?

答案1

我认为你需要一种从 ISO 映像进行 pxe 启动的方法。我搜索了一下,找到了这篇文章。我相信该方法应该适用于您可能拥有的任何可启动 ISO 映像。这是另一篇类似的文章

最后,似乎本文讨论如何从 Windows 运行的 PXE(预启动执行环境)服务器执行此操作。

答案2

是的,这是完全有可能的。您可以启动的系统类型取决于该系统的运行方式。

通常你会发现,简单系统(如 DOS 或 Win98)并且非常复杂系统(与现代 Linux 发行版一样)可以通过网络轻松启动。

在两种类型的系统上实现此目的的方式非常不同。

让我们更详细地了解这两种方式。我假设你已经有一个远程控制 引导 服务器 设置;如果没有,那就继续做吧,这很容易。

我还假设dnsmasq在 Linux 服务器上安装了 tftproot /var/lib/tftpboot,但您应该能够根据任何其他设置调整说明。

对于简单系统

对于简单的系统,您只需将映像 (ISO) 加载到 RAM 中,并欺骗系统相信它是一个实际单元。这可以通过 BIOS 和一个名为记忆磁盘

您想要通过网络加载的系统是 freedos:

# /var/lib/tftpboot/pxelinux.cfg/default
UI vesamenu.c32

PROMPT 0
TIMEOUT 0

MENU DEFAULT freedos

LABEL freedos
MENU LABEL FreeDOS
KERNEL /syslinux/memdisk
INITRD /freedos.iso iso

差不多就是这样了。前几行是菜单样板;重要的是最后四行:使用给定的 ISO 加载 memdisk。

对于复杂系统

现代系统具有良好的内存管理和适当的硬件检测等奇特功能,几乎忽略了 BIOS 所说的任何内容。

这使得memdisk上面使用的方法几乎毫无用处,因为如果您以这种方式加载 ISO,一旦从 ISO 读取内核并将其加载到内存中(这是由 ISO 中的引导加载程序完成的;引导加载程序确实会注意 BIOS),ISO 数据就会消失。

那你该怎么做呢?嗯,你实际上并不是从网络加载 ISO,而是告诉系统它可以从那里访问所需的文件。

对于 Linux 系统,将 ISO 内容提取到 tftproot 中的某个位置并直接加载内核和 initrd,然后让它们自行查找根文件系统并挂载它。

下面是一个使用神奇的系统救援光盘。我实际上将整个 ISO 提取到了 TFTP 服务器的根目录,因为它正好适合我的目录结构,所以内核就在里面/syslinux

# /var/lib/tftpboot/pxelinux.cfg/default
UI vesamenu.c32

PROMPT 0
TIMEOUT 0

MENU DEFAULT sysrescd64

LABEL sysrescd64
MENU LABEL 1) SysResCD 4.2.0 (x64)
KERNEL /syslinux/rescue64
APPEND setkmap=us nomodeset netboot=nbd://pxe:sysrcd.dat
INITRD /syslinux/initram.igz

这里最重要的部分是这APPEND行。看到netboot=末尾的了吗?这就是操作系统知道其根文件系统在哪里的方式。语法是<protocol>://<server>:<path>

我已pxe为我的服务器设置了 DNS 名称。如果没有,您可以使用服务器的 IP 地址。

此外,sysresccd 是最简单的之一,因为它使用 squashfs 映像作为其根文件系统,可以使用任何方法轻松下载并加载到 RAM。这里我使用 nbd;你也可以使用 tftp、nfs 和 http

对于其他发行版,比如 Ubuntu,我认为您只能使用 nfs。

对于 Windows 系统做起来有点复杂. 概要如下:

  • 在服务器上的共享文件夹中安装 Windows 7
  • 在 TFTP 根目录中的服务器上拥有完整的 Windows PE 环境
  • 让客户端计算机通过网络加载 WinPE,然后按F12以获取命令提示符
  • 将 Windows 7 安装的共享文件夹映射到驱动器号
  • 从映射文件夹开始安装

我从未尝试过这种方法,而且似乎对某些人不起作用。对于 Vista 之前的 NT 版本,我认为这根本不可能。对于 NT 之前的 Windows(95、98、ME 等),您可以使用 memdisk 方法,但启动这些系统对您的健康有害 :-p

答案3

终极部署设备提供您所需的一切。他们的主页描述了它的功能;为方便起见,这里重新格式化了它:


什么是终极部署设备?

  • 几分钟内即可通过网络完成无人值守操作系统安装(Windows、Linux、ESX、Solaris)!
  • 通过网络发布您最喜欢的恢复/系统维护工具!
  • PXE 启动、远程安装服务、Kickstart、Jumpstart、Autoyast 尽在一个盒子里!

什么时候会用到它?

  • 当您尝试安装没有 CDROM 驱动器但有网卡的系统时(如今的超薄笔记本电脑等都没有光驱)
  • 当您必须在不同的硬件上安装操作系统时。
  • 当您必须安装系统并希望事情自动化和可重复时。
  • 当你去朋友家修理电脑时,你希望做好准备。与其删除所有不需要的东西,不如重新开始。带上你自己的系统(笔记本电脑?),用交叉电缆将其连接到混乱的系统,然后完全无人看管地从头开始重新安装系统。去冰箱……
  • 当您需要对系统进行维护时,无需随身携带一堆实时 CD。
  • 当您想做到这一点但又不想花很多钱购买商业产品时。

它是如何工作的?

  • 无人值守安装设备会安装一个包含您喜欢的操作系统发行版的 iso 文件,并导入必要的(网络)启动文件。它会为您的自动安装创建一个默认配置文件,并开始托管操作系统发行版文件以进行网络启动。
  • 系统工具发布 Live CD 和其他工具被全部导入到 Ultimate Deployment 设备中并通过 PXE 发布以通过网络启动。

UDA 有一个 YouTube 频道,你可以在那里找到他们的视频以安装 Windows 7 为例从 UDA 内部设置到 Windows 完全安装。

答案4

如果你有兴趣扩展这项研究,我建议使用各种工具来完成这项工作:

相关内容