通过 ssh 远程重新安装 Linux

通过 ssh 远程重新安装 Linux

我有一台小型 Linux 服务器,需要在其上重新安装 Linux(Debian 稳定版 64 位 x86)。

我可以物理访问该机器,但它没有任何外部设备(如 cdrom),并且似乎无法从网络或 USB 驱动器启动。

它确实有一个现有的 Linux 安装,而且我可以通过 ssh 连接到该机器并拥有 root 访问权限,但它已严重损坏,而且我真的不知道机器处于什么状态,所以希望将其清除并进行全新安装。

有什么方法可以让我仅使用 ssh 进行远程访问并将其下载到机器上吗?

答案1

在没有从 cd/网络/外部设备启动的能力的情况下,实现目标的方法是使用现有安装将新操作系统安装到另一个文件系统,然后在完成后告诉引导加载程序启动到新文件系统。这在过去(可能 10 年前或更早)比现在更常见,如果你搜索一下,你会发现关于这一点的讨论。我很久以前就用 slackware、gentoo、linuxfromscratch 和其他软件做过这件事,但我认为用大多数现代 linux/BSD 发行版都可以做到这一点,而且不需要太多努力。

例如,在 Slackware 的设置中,您可以指定一个默认为 / 的“目标”,但您可以将其设置为安装辅助文件系统的位置。

Gentoo 的安装手册说得很清楚;您需要考虑的只是“准备磁盘”和“配置引导加载程序”部分。

话虽如此,但这并不是一件小事,如果你对事情的工作原理没有很好的理解,你不太可能第一次就做对。这将是一次有趣的教育体验,但由于你有物理访问权限,通过弄清楚如何消除限制(这意味着你不能使用更典型的安装过程),你可能会得到更快、更好的结果。换句话说,添加一个 cd 驱动器或类似的东西。

答案2

虽然本文谈论的是 Suse 而不是 Debian,过程大致相同。作者似乎正在通过 SSH 远程安装 Linux,就像您所说的那样。看一下屏幕截图,您应该能够完成此操作。

祝你好运并希望这对一些人有所帮助。

答案3

查看链接我们使用 redhat 或 centos 进行远程安装的操作http://kbase.redhat.com/faq/docs/DOC-10526如果能帮助你

答案4

为了澄清你最初的问题,我猜你所说的“小型服务器”不是指具有附加功能的服务器级硬件,这些附加功能可以让你模拟连接的 CD-ROM 或进行带外远程控制台访问,对吗?它只是用作服务器的台式电脑?

回答是,当然可以发起通过 ssh 从现有操作系统安装 Linux 发行版。我做过多次类似的事情,通常是使用 Red Hat 衍生的发行版,但这些原则应该适用于此处。

将安装内核和 initrd 复制到旧操作系统的 /boot,编辑启动配置(GRUB/LILO/whatever),以便默认启动安装内核,以及来自安装介质启动配置(如果是传统 CD 或 DVD,则为 isolinux.cfg)的参数,添加您需要的任何参数以允许安装 init 系统找到安装介质(在我的情况下,我通常进行 NFS 安装)。一旦安装程序启动,它与从 PXE/DVD/任何其他方法启动的安装没有什么不同。

根据传递给 kernel/init/installer 的启动参数,您可以启动一个交互式安装并以某种方式进行控制(我使用过 Red Hat 的 vnc 安装功能 [我不知道 Debian 是否提供类似的功能],通常连接到我桌面上运行的监听查看器;对于您,您可以站在机器前面)或完全脚本化安装,这样一旦从安装内核启动,您就不需要与它交互,直到它重新启动到您新安装的操作系统。请注意,使用此方法,如果您要清除旧操作系统,如果在重新分区或 mkfs 了 /boot FS 后失败,您将得到一个无法启动的系统,因此我建议先彻底测试任何脚本安装。

就我而言,这节省了我伟大的大量时间(无人值守安装的大部分工作已经完成),就您而言,如果只是一台机器,您可能会发现采用另一种方法的工作量更少。

关于网络启动,完全可以让 GRUB 或 LILO 启动 gPXE 映像,然后可以在您的 NIC 上执行 PXE。从以下位置获取预构建的 .lkrn 映像http://rom-o-matic.net/gpxe/gpxe-1.0.0/contrib/rom-o-matic/。如果你不介意等待,你可以使用来自http://boot.kernel.org/通过互联网启动 Debian Live(我相信它可以让您安装到硬盘上)。

相关内容