我有不少机器,有时需要从映像中恢复。但有一个小问题,这些机器位于不同位置,没有键盘,有时甚至没有显示器,因此需要以完全无人值守的方式进行恢复。
一些细节:这些机器不是服务器。它们有 AMT,但仅此而已。我读到 Ghost 有一种称为 LightsOut 的东西,但它需要在机器上安装,这是不可能的。
我的理想解决方案是使用一个软件来制作整个磁盘的映像(磁盘在任何地方都相同;有多个分区,但所有盒子上的布局也相同),并制作一个可启动的恢复 iso,适合从 USB 闪存驱动器启动,除了“请移除恢复磁盘并重新启动我”之外不会询问任何问题。这个想法是非技术人员应该能够仅通过技术人员的远程协助来执行恢复 - AMT 将在这里提供帮助。
我一直在考虑采用 SystemRescueCD - 启动、ssh、恢复磁盘 - 但我更喜欢完整的现有解决方案。有什么可以满足我的要求吗?
答案1
这个问题会定期出现,但我认为从您的描述来看,您的情况略有不同,因为您可以远程操控。通常答案是“您这样做是在冒险,因为没有外围设备,操作系统无法保证正常工作,如果出现错误而无人能帮助,您将面临被远程锁定的风险...”
我不知道 AMT 是什么。我不知道你运行的是什么操作系统。如果它是基于 UNIX 的,你可以做一些事情,比如运行 DD 将磁盘映像到文件,然后返回该映像就是将映像反向 DD 回驱动器驱动器卸载后,系统完全依靠内存运行。
在这种情况下,您可以编写一个程序来遵循。我使用 Rescue Is Possible Linux (RIP) 以这种方式恢复了一些磁盘;启动它,以 root 身份登录,然后设置密码并运行 /usr/sbin/sshd 并获取 IP(如果还没有 IP,请运行 netconfig),然后您可以挂载远程共享并复制(或挂载 USB 设备)。
我读过通过卸载文件系统并在操作系统在内存中运行时进行远程恢复的文章。但请注意,这样做非常危险。路由器出问题,网卡重置,如果您的磁盘出现问题,这意味着它会产生错误而您却看不到它……您可能会浪费数小时的工作时间并完全失去对机器的访问权限。
此外,如果更换磁盘,您的映像可能无法完全正常工作,因为扇区/磁头/磁柱数可能不稳定,而 DD 将拥有原始 MBR 的副本。许多映像实用程序(dd、partimage、gparted 等)都会因此遇到麻烦。
需要考虑的选项...重新构建这些系统以从内存运行并安装硬盘作为数据存储区域,就像 Devil Linux(我相信它的名字是这样的)。您可以使用从 CD 运行的发行版创建 Squid 服务器或邮件服务器或其他东西,它会安装本地磁盘(如果您需要它)仅用于数据。如果有人破解了系统,他们就无法安装自己的二进制文件,因为 CD 是只读的。使更新变得像使用新 CD 和重新启动一样简单(配置可以保存在只读媒体上或仅保存配置文件的 USB 驱动器上,易于备份)。
您还可以考虑从外部驱动器(如果基于 Linux)或可移动驱动器运行操作系统。然后,您可以升级/更新/恢复,只需将驱动器运送到远程位置即可,如果是可交换磁盘,最终用户只需滑出一个磁盘并弹出新的磁盘即可。
无论如何,你必须测试程序。很容易就想到“理论上”,然后在您真正需要恢复时却发现它失败了,并且当您与无法区分 NIC 和电话另一端的硬盘的用户一起工作时才发现您的恢复无法使用。
您的最后一个选择是查看完整的备份包(可能是基于 Linux 的 Amanda,Windows 也有很多选择),它可以从裸机恢复您的系统。裸机恢复通常允许您从恢复磁盘启动,并允许您从最近的备份中提取数据。Ghost 和其他映像工具实际上是映像实用程序,而不是数据的真正备份(此外,映像占用大量数据,而且就像我说的,当磁盘在需要恢复的过程中更改品牌或大小时可能会出现问题)。商业备份允许差异备份和系统状态备份来帮助恢复。
我现在更喜欢找到一种方法,尽可能将操作系统、应用程序和数据分开。然后,您可以让操作系统与数据分开运行,并使其更容易恢复或移动到新系统(这有点像 Devil Linux 所做的,操作系统在 CD 的内存中运行,而数据在驱动器或外部驱动器中运行,因此,当操作系统仅包含在 CD 中时,您的数据可以轻松迁移或备份。Linux 可以设置为将操作系统设置为 /root、/bin、/sbin(系统二进制文件)和另一个磁盘来保存数据和日志。
希望这些可能对你有用...
答案2
您可以像硬件制造商那样做,创建一个恢复分区,当主分区损坏时可以从该分区启动。这样您就可以从已知分区启动,并且在那里拥有必要的工具将主分区恢复到已知的好位置,可以是 Ghost 映像或类似的东西。
如果您无法以足够低的级别访问主机,也可以使用通过 TCP/IP 工作的 KVM 切换器。它们价格昂贵,但比每次出现问题时派技术人员上门要便宜。这可能与您提到的 AMT 类似,但我没有使用 AMT 的经验。
答案3
很多年前,我刷新大量机器的方法是创建一个可启动 CD(是的,那时的映像更小),其中包含 Ghost 和标准机器映像。批处理脚本将从命令行启动 Ghost,并提供复制映像并在完成后退出的选项。之后,批处理作业将弹出 CD 并重新启动。从技术上讲,开始时有一个启动菜单,让用户有 30 秒的时间选择正常启动,然后它会自动开始映像。虽然它用于快速刷新(制作一些副本,然后将它们放入机器中并让它们自行运行),但不需要任何用户交互,直到系统重新启动并运行映像,这似乎属于您正在寻找的区域。