我从 OVH 订购了一个带有 Debian 9 Stretch 的 VPS,但他们不支持 FreeBSD,所以他们告诉我使用 KVM 来安装 FreeBSD,但由于某种原因我无法挂载 iso 文件。
我不知道应该采取什么步骤来安装包含 FreeBSD 的 iso 文件。
已经打电话给他们以获取更多信息,但是接听电话的那个人告诉我自己做,他可以帮助我,因为没有官方的“食谱”来做到这一点,但他知道他们的很多用户这样做。
答案1
对于初学者来说,这是一个“有趣”的先有鸡还是先有蛋的问题。有很多方法可以实现您想要的目标,但您需要对所有要素有令人难以置信的良好理解,才能选择对您来说最容易的方法。
请注意,您可能会通过以下一些步骤杀死您的服务器 - 但幸运的是,通过快速重新安装很容易回到原点。
Debian 9
VPS 现在运行的是 Debian 9。如果这是您想要的,那就没问题。但从您一直在做的事情来看,virt-install
您似乎尝试使用 Debian 9 充当 FreeBSD Guest 的虚拟机管理程序/主机。如果这就是您想要的 - 一切都很好。你可以看看现成的FreeBSD 虚拟机镜像为目的。
但从你的问题来看,听起来你只想在主机上运行 FreeBSD。那么我会选择另一条路。熟悉这条道路将带来额外的好处,即在事情变得非常糟糕时学习一些非常好的恢复技巧。
换鞋
在正在运行的服务器上将一个操作系统替换为另一个操作系统类似于两个人穿鞋时交换鞋子。这是可以做到的,但很少值得这么麻烦。您当前的 Debian 9 目前很可能已使用所有磁盘空间。然后你需要调整分区大小,添加启动选择器等。
如果您不想双引导进入 Debian 9,更简单的方法是替换磁盘上的内容。为此,我们需要将 VPS 引导到内存中的操作系统而不是使用磁盘。
BSD
如果您能够通过 KVM 启动,那么使用光盘ISO或者DVD光盘文件相当完整。
但是,当我们通过网络完成所有这些操作时,我们不妨启动一个最小的映像,并让安装程序通过网络获取软件包。
有一个名为“最小”的官方 FreeBSD iso仅引导但它的大小为 298 MB。
人们常用的是BSD普通版的大小为 57 MB,甚至还有 23 MB 的迷你版。它是 FreeBSD 的精简实时(内存中)版本,非常适合安装或救援操作。好的托管服务提供商通常会提供此选项作为 PXE 启动选项,即使它们并不正式支持 FreeBSD。
多年来,我发现 mfsBSD 对于在许多远程系统上安装 FreeBSD 非常有用。这是一个需要了解的重要工具,它在相当复杂的示例中使用FreeBSD 手册
开机
有 3 种典型的系统启动方式:
- 光盘
- PXE(网络启动)
- 硬盘
现在您正在将 VPS 从虚拟硬盘驱动器 (HDD) 引导到 Debian 9。如果您想将整个 VPS 安装到 FreeBSD 中,那么我们需要编写一个 FreeBSD 文件系统并将其传输到磁盘上。最简单的方法是使用 FreeBSD 安装程序来完成此操作,这需要我们首先启动到实时 FreeBSD。
光盘
最简单的方法是“插入”启动 CD。物理 CD 不再那么常见,但它们以 ISO 映像的形式存在。您不应该尝试从 Debian 9 中挂载 ISO 映像,因为这不会帮助您启动到 FreeBSD。相反,您应该查看 KVM 界面,该界面将通过 OVH 的 http/web 界面进行。如果他们允许您附加 ISO 文件,那么 VPS 重新启动时将启动到此文件。当这样做时,在系统启动时,它看起来就像是一个正确的 CD 驱动器。
如果有人告诉我通过 KVM 安装某些东西,这就是我所期望的。
您很少透露有关您的 VPS 的信息。据我所知 OVH 正在使用 OpenStack,但我不知道它们的接口/限制。
如果您无法遵循启动到 iso 映像的简单路线 - 那么我们需要使用网络启动来走中间路线。
PXE(网络启动)
网络启动服务器需要对网络环境进行一些控制。我知道 OVH 以前有一个网络启动选项,允许您在网络启动阶段获取 ISO 文件。您可能可以使用该功能,也可以不可以使用。
即使它不可用,我也知道 OVH 提供启动进入救援模式的功能。他们的在线文档非常稀疏,所以我们不知道实际发生了什么。
可能发生的情况是,服务器将在不接触 HDD 的情况下对内存受限的实时系统进行 PXE 引导。对于许多其他提供商,我希望看到许多不同的救援图像。有些甚至提供在此阶段启动到 mfsBSD。如果没有向您提供列表,我希望它们能够启动到“某些”基于 Linux 的系统。
如果您无法通过 PXE 或网络引导直接进入 mfsBSD,那么如果我们可以找到一些不绑定到 HDD 的 Linux 实时救援解决方案,那么一切都不会丢失。我们只需更进一步,进入更先进的领域
硬盘
如果我们设法启动到另一个未绑定到 HDD 的系统,那么我们可以使用该系统将 mfsBSD 直接写入磁盘。我们不在乎我们使用什么样的救援系统,只要他们有wget
或curl
和dd
。如果没有,那么您需要任何可用的工具来获取图像并将其写入磁盘。
现在我们假设您已经启动到内存中的通用 Linux 救援系统。然后,我们可以从命令行获取 mfsBSD 磁盘映像(不是 iso 映像!)并将其直接写入磁盘。
警告: 此时你是覆盖无论你的系统盘上有什么!
如果你有wget
:
wget -qO- http://mfsbsd.vx.sk/files/images/11/mfsbsd-11.1-RELEASE-amd64.img | dd of=/dev/sda bs=1m
或者与curl
您一起可以使用:
curl -s http://mfsbsd.vx.sk/files/images/11/mfsbsd-11.1-RELEASE-amd64.img | dd of=/dev/sda bs=1m
确保您使用正确的设备名称 - 但大多数情况下是
/dev/sda
买者自负:使用默认的 mfsBSD 映像时,您将通过 DHCP 获取 IP 并使用默认密码。使用默认密码有被 0wned 的风险。为了避免默认情况,您可以构建自己的图像,但这远远超出了这个“简短”答案的范围。请参阅FreeBSD 手册
当映像写入磁盘后,服务器 (VPS) 就可以启动到 mfsBSD 了。您可以通过 KVM 或 ssh 访问它。
mfsBSD 正在内存中运行 - 现在我们可以选择将 FreeBSD 正确安装到磁盘上。我们可以这样做,因为 mfsBSD 完全绑定到内存,并且不关心我们是否覆盖启动的磁盘。您可以通过键入以下内容启动安装程序:
bsdinstall
因此,即使采用这种迂回方式,只要我们可以启动到实时 Linux,我们就可以运行本机安装程序。
答案2
我通过以下步骤成功在我的 OVH VPS 上运行 FreeBSD 12.1-STABLE
从 OVH 的管理面板以救援模式重新启动。登录后(通过 SSH 或 KVM,两者均可),执行以下命令序列
使用 卸载原始文件系统
umount /dev/sdb*
。请注意,救援系统是从安装的/dev/sda
。别碰/dev/sda
。使用 fdisk 销毁原始文件系统及其所在分区。
fdisk -u /dev/sdb
接下来一系列d
直到分区表为空,然后w
。- 安装(或确认您的救援映像具有)该软件包
xz-utils
。由于我的 VPS 一开始是作为 Ubuntu 服务器,对我来说这意味着运行apt-get install xz-utils
. - 获取一份副本生的虚像来自 FreeBSD.org,解压它,并将其写入
/dev/sdb
.从救援系统的命令行中,您可以输入wget https://download.freebsd.org/ftp/snapshots/VM-IMAGES/12.1-STABLE/amd64/Latest/FreeBSD-12.1-STABLE-amd64.raw.xz | xz -dc | dd of=/dev/sdb bs=1M
然后重新启动并通过 OVH 控制面板中的 KVM 登录来配置您的 FreeBSD 服务器。