我有一台装有 CentOS 4 的专用服务器。我想在上面安装 FreeBSD 7,但我没有控制台访问权限,也没有物理访问权限。
我正在考虑在本地机器上进行 FreeBSD 的通用安装,进行配置调整,例如设置网卡等,然后创建安装的磁盘映像。然后我会用 netcat 喂 dd 将此图像写入服务器。唯一的问题是,传输 70G 的数据(磁盘大小)是不切实际的。我想不出一个解决这个问题的好方法,同时仍然确保系统在重新启动时能够正确启动 FreeBSD。
当然,为了让它工作,我需要尽量减少重新启动并尝试从工作的 Linux 安装中做所有事情。以前有人做过这样的事情吗?你是怎么做到的?
如果我是你,我会首先设置一个测试台服务器来复制你的远程系统,然后尝试在内部进行转换,这样搞砸不会杀死你的系统。
关于远程系统的托管方式,我不知道您有哪些可用选项。理想情况下,您可以启动或让它启动 RIP Linux 之类的东西,这是一种内存托管操作系统,这样您就可以在不运行任何东西的情况下操作硬盘。我认为除非你有办法控制什么时候启动,否则你在运行系统的同时操作系统磁盘会遇到麻烦。
您可以尝试使用 gparted 缩小您的分区,然后在空白空间中创建一个新分区,然后将 FreeBSD 安装到该切片中并在另一个系统中执行“双启动”。这或许是可行的。
不过,无论如何,我仍然会尝试在内部使用测试平台进行所有操作,以确保您可以在使用工作服务器之前使其正常工作。
正如其他人所提到的,如果您的时间和理智值得任何东西,您应该向您的提供商支付一次性支持费用以安装 FreeBSD。
如果你真的想自己做这件事,并且你有一个单独的交换分区或其他未使用的分区,你可以通过将引导映像写入额外的分区并告诉 grub 引导到它来做到这一点。Depenguinator应该能够为您执行此操作。我自己没有使用过,但我使用相同的方法远程切换 Linux 发行版。
(您可能还想看看像SoftLayer这样的提供商,它以相当不错的价格提供具有远程控制台访问功能的专用服务器。)
制作映像,压缩它,将其传输到您要转换的 Linux 服务器,然后将该映像安装到该服务器的第二个分区上。然后配置引导加载程序以引导到新分区。我不认为在活动分区上写入可能会顺利进行。
这太疯狂了,我喜欢它:-)
如果他们允许,您首先需要咨询您的托管服务提供商。如果有,请询问他们是否可以为您安装。
无论如何,你的想法肯定会奏效,但是如果没有控制台访问权限就远程执行太冒险了……你最终可能会把自己锁在外面。
我认为,您需要使用归零程序或类似的东西来减小硬盘图像的大小
您想在不与物理服务器交互的情况下远程完成这一切吗?我的好人!
我能想到的唯一方法是创建一个带有您的操作系统的 ramdisk,预先配置为在您的数据中心的网络上工作。一旦重新启动(并且 ramdisk 正在您的服务器上运行该节目),您就可以执行您的计划,只要您:
不管怎样,祝你在这个项目中好运,但是你可能想问一下,考虑到所涉及的时间,它是否会更便宜,只需向数据中心支付 20 美元或其他任何费用来使用 FreeBSD 重新映像您的服务器!
简单的选择:如果你有一个支持硬件虚拟化的处理器,你可以剥离 CentOS 安装,给自己足够的磁盘空间,安装 kvm 并为自己创建一个虚拟 FreeBSD 系统,这是服务器上唯一运行的进程。性能损失不会太差,而且您最终只是将您的 CentOS 系统用作 FreeBSD 系统的复杂引导加载程序。
或者,使用 resize2fs 缩小文件系统,使用 cfdisk 缩小分区以给自己一些空闲磁盘,最后创建一个新分区。然后下载你仍然可以使用kvm(甚至qemu)并使用参数 -hda=/dev/hda (即告诉kvm它允许写入你的原始硬盘 - 现在小心)你可以直接运行FreeBSD安装程序你的新分区。
最后,您可以尝试通过在 CentOS 中摆弄 grub 来引导您的新分区,并使用“一次性”选项来对冲您的赌注。假设您可以重新启动系统,那么如果它无法启动,您只需重新启动以重新启动回到您可靠的 CentOS 安装。
有点麻烦,但我们之前在 Linux->Linux 系统上做过类似的事情。