如何通过SSH远程安装Linux?


22

我需要在当前运行RHEL 3.4(x86)的服务器上远程安装Ubuntu Server 10.04(x86)。我必须非常小心,因为如果发生任何问题,没人可以为我按下重新启动按钮。

您是否曾经远程安装过Linux?您会推荐哪种方式?有什么建议要提防吗?


更新:

谢谢你的帮助。我设法“边开车边换轮胎”

我的方法的主要组件来自HOWTO-将Debian安装到远程Linux系统上grub遗留:仅引导一次grub单次引导和内核panic重新引导,以及Ubuntu社区文档:InstallationFromKnoppix

这是我所做的概述:

  1. 现有的 Ubuntu服务器上运行debootstrap
  2. 将文件传输到RHEL 3.4服务器的交换分区
  3. 引导到Tha交换分区(debootstrap系统)
  4. 将文件传输到原始根分区
  5. 引导到新的Ubuntu系统,并使用taskel,apt-get等完成安装

我在VM中测试了该方法,然后将其应用于服务器。我很幸运,一切进展顺利:)


17
听起来就像在开车时尝试将新轮胎装配到汽车上。
2010年

10
@Orbling:youtube.com/watch?
v=

从理论上讲是可能的。就像Orbling所说的那样,在开车时要更换轮胎。不太容易!
马特2010年

@ephemient太棒了。您会看到有可能,只是极其困难。
2010年

也许,如果您提供了有关局限性的更多详细信息,Server Fault的这些非常聪明,有创造力和机智的人可以为您提供其他选择或建议,这些建议或建议可能会为实现目标提供更现实的途径。
杰德·丹尼尔斯

Answers:


8

我同意其他答案的情绪在这里:虽然它可能是可以远程对RHEL 3.4安装Ubuntu,你很可能会被一些踩着非常薄的冰。

我认为您可能遇到的最大问题是现有系统上的内核和libc的年龄。那是2.4.x系列内核吗?如果是这样,我不确定您能否实现这一目标,因为在安装过程中的某个时候,您将需要运行已编译为在Ubuntu的内核和libc中运行的工具,而这些工具可能无法正常运行(或根本没有)在较旧的运行时环境中。如果您不在远程服务器上运行2.6.x系列内核,那么我认为您成功的机会不大。

如果您仍然认为您可能想尝试此操作,我知道一些指南:

这两个指南都有些过时,因此都无法将其视为与剪切和粘贴指南相近的内容。我强烈建议您遵循这里其他人的建议,并在本地服务器或VM上进行一些试运行,因为肯定存在一些缺陷和陷阱,您需要先进行研究,然后再进行实际操作。


12

远程安装任何操作系统的最佳实践是购买带外管理的服务器硬件(HP ilo,Dell drac),该软件可让您远程重启并查看服务器的控制台。甚至不要尝试其他方式。


我同意,但是我仍然需要处理当前的情况
netvope 2010年

6
许多已经这样做了十年的有经验的人会告诉你“为此带来好运”。
troyengel 2010年

1
embobo和troyengel都在现场;如果您尝试远程执行此操作,只会使情况变得更糟。我的建议?与数据中心联系。
Andrew M.

1
远程管理卡很棒,大多数新的Supermicro系统都内置了它们,包括远程电源,键盘/视频/鼠标和远程CD / DVD驱动器。对于这种情况,我无法想象没有人。
肖恩·赖夫施奈德

5

可以完成安装新发行版的过程,但这非常困难。这件事情,你几乎肯定会得到正确的第一次。实际上,如果您第三次或第四次都做对了,那将会很幸运。

此外,这里没有人能够提供您可以遵循的洗衣单,这将会发生。您将不得不尝试不同的替代方法,具体取决于您的确切磁盘分区和文件系统布局,硬件配置等。

就是说,如果需要的话,这就是我要做的事情:

  • 获得一台与现有计算机配置尽可能相似的计算机:硬盘驱动器,网卡,磁盘适配器,RAM,随便命名。
  • 设置此计算机以模拟该主机上的当前设置。
  • 尝试在此测试系统上做您需要做的事情。
  • 在上面做很多笔记,以便您可以在“实时”系统上重现它。
  • 在进行最终迁移之前,请在测试系统上再次运行这些说明。

一些可以帮助您的技术:

  • 确定是要安装到新分区还是尝试在现有文件系统上安装。如果创建新分区,则始终可以通过引导旧分区退出。但是,这可能意味着您需要缩小当前文件系统,而该文件系统必须脱机完成。 早在2007年,我就写了一些笔记
  • 您可能能够在测试计算机上的一个小分区上进行安装,然后进行适当的更改,例如IP地址和“ dd”此文件系统映像,以用于在新分区上填充基本安装。仅当您为新安装使用单独的分区时才如此。
  • 您可以改为将根文件系统放在子目录中,然后在initrd中执行某些操作,以便:“ cd / target; mv * oldroot; mv oldroot / newos / *。” 将所有旧目录移到适当位置,然后将新目录移到适当位置。必须在initrd进行“ pivotroot”操作之前完成此操作,可能是在挂载文件系统之后。
  • 在initrd脚本中添加一些代码可以使您在系统引导期间执行各种出色的操作。有关更多详细信息,请参见我上面引用的博客文章。
  • 期望您会失败。这是非常冒险的尝试。当我调整文件系统的大小(如上所述)时,如果重新正确启动,我会感到震惊。
  • 您必须决定要对引导扇区执行什么操作,它是运行LILO还是GRUB?您要尝试使用当前的引导加载程序,还是切换到10.04版?可能理想的情况是使用现有的加载程序引导到新的操作系统,然后从该操作系统运行“ grub-install”以将新的加载器安装到位。

祝好运!您将需要它。:-)


1

如果您有其他分区,则可以使用该分区安装在可查看整个磁盘的VM中。只要您不在虚拟机和主机中都挂载相同的分区,或者不使用分区表,就可以安全。另一种方法是从网络启动并使用预置或kickstart进行安装。在远程播放之前,请在本地环境中进行实验。


1

我写了一个基于前提的简单解决方案。

https://github.com/mhf-ir/ubuntu-overssh-reinstallation

您需要安装具有ssh的ubuntu版本。另一个用于提供预置文件的http服务器。我在许多数据中心进行了多次测试。

如果您有ubuntu,则可以通过ssh重新安装和重新分区,而无需KVM / IPMI / VNC或任何远程应用程序。只是使用ssh。并使用ubuntu服务器的netiso / miniiso进行纯安装。

它基于grub图像加载器引导包含网络设置和ssh密码的自定义iso文件。


0
  1. 祝好运。

  2. 可以想象,在某些情况下(这可能不适用于您)。

  3. 这很难; 我建议您在本地(必要时使用虚拟机)上练习。很多。


0

如果只能访问服务器一次,则可以将KVM over IP端口添加到系统。我在CDW上找到了一个价格为310美元的Lantronix Spider 1端口,即可做到这一点。尽管您可以在重新引导时进入BIOS并更改引导顺序,从而忽略CD,但“重新启动按钮”或使媒体弹出都无济于事。


0

我以前做过测试。但是,如果没有后备计划,我不建议您这样做。

事实证明,如果所有需要的应用程序都已加载,则系统是相当可靠的。我成功运行了dd并使用默认的Ubuntu安装覆盖了目标服务器的前8GB左右,然后将服务器重新引导到Ubuntu中而没有任何问题。然后,您可以从那里扩展分区以填充驱动器的其余部分。

您还可以设置一个新分区,将新安装程序解除引导,然后修改引导加载程序以引导到该新分区中。再次,期望失败和成功的希望。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.