假设您正在一台具有以下限制的陌生机器上工作:
- 你根本没有物理访问权限。你得到的是一个串行控制台和一个网络。
- 你可以获得六种 Linux 安装之一,并且
- 通过网络启动的 Debian 安装根本不接触硬盘。
假设您想在机器上安装一个新的 unixy 操作系统。Linux、BSD、Solaris 等等。该怎么做?在 gentoo 中,您只需:
- 从恢复映像启动,
- 根据需要对硬盘进行分区和格式化,
- 将驱动器挂载在 /mnt/new (/mnt/new/boot, .../home 等)
- 将 gentoo stage-3 解压到 /mnt/new 中,
- chroot /mnt/new
此时,您所处的环境与从 Gentoo CD 启动并按照安装说明所获得的环境基本相同。
据我回忆,Arch Linux 可以做类似的游戏,尽管它对此并不那么高兴。
那么,你选择的操作系统是怎样的呢?我对 NetBSD 或 OpenBSD 并不感兴趣,但如果他们愿意这样做的话,我很乐意听听。
如果你能想出一种方法来在这里安装 Windows,那么你就是一个变态,但我会给你点赞。
调频(W)S
(这是经常提出的(错误)建议)
- “通过网络启动安装程序”
- 这样做是可行的,但是我们已经通过网络启动了恢复磁盘。我无法控制执行该操作的服务器,而且我没有任何可以赢得 BOOTP 竞赛的东西。
- “告诉托管公司放入您选择的 CD”
- 那当然很好,但他们的定价模式基于我称之为“我们不接触您的硬件”的原则。此外,他们并不喜欢我这样做,他们宁愿我运行他们为我安装
后门的操作系统。
编辑:我意识到这确实应该是一个社区维基,因为没有“正确”的答案。我给每个给我答案的人点赞,谢谢!
答案1
我支持在基于 Debian 的系统中使用 debootstrap。我以前使用过类似的工具 rpmstrap,正如您所期望的,它与基于 RPM 的发行版的概念相同。
但是我在 Ubuntu 中找不到它,并且它没有在 debian 稳定仓库中列出 - 仅限 oldstable/etch:http://packages.debian.org/search?keywords=rpmstrap
另外,还有许多预构建的 VM 或 UML 映像存储库,例如stacklet.com。如果小心一点,你可以将其中一个 dd 或 untar 到分区中。解压后,你可以 chroot 进入并使用发行版的包管理工具来完成它。
答案2
我昨晚用 OpenBSD 做了类似的事情(如果我们考虑某个法国托管公司的话,可能是同一件事),使用这。您可以从救援模式将其 dd 到硬盘,然后它会通过 ssh 访问启动安装程序。尽管它确实需要其他地方的 OpenBSD 机器进行编译,如果我们谈论的是同一家公司,除非您的 / 特别小(我的是 500MB。我知道 5GB 及以上不行),否则安装将无法启动。
答案3
Debian(可能还有 Ubuntu)有一个名为“debootstrap”的系统,它可以为这些系统做你想做的事情。有一个很好的基本文章在上面。
答案4
Linux 从头开始。这是整个系统的理念——你自己下载并安装 Linux 软件包,无需任何外部安装程序,只需要现有环境和网络连接。
我找不到这方面的文档,但出于某种原因,我认为Slackware也能做这样的事。
最坏的情况是什么?找到并安装一些虚拟机管理器的软件包到您的网络启动的 Debian 安装中,创建一个新的 VM,将安装程序磁盘的 ISO 作为您的 CD-ROM 驱动器,将实际目标安装磁盘作为您的 VM 的磁盘。执行安装,确保在内核/任何其他需要的地方支持 VM 硬件和实际硬件。现在只需在 VM 之外根据需要配置您选择的引导程序并重新启动。瞧。(这可能如果您将其安装为通用 PC,而不是允许它执行特定于硬件的操作,它也可以与 Windows 一起使用。YMMV。)