雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

如何在 Proxmox 上导入 FreeBSD 14 Qcow2 映像

2024-06-24 50

在 Proxmox VE 上安装操作系统可以通过多种方法完成。最常见的是从 ISO 映像安装,但还有另一种选择是使用现成的 Qcow2 映像。 QCOW2(QEMU Copy-On-Write 2)是虚拟机领域使用的一种流行的映像格式,以提供出色的压缩和克隆速度而闻名。这种映像格式受到许多人的喜爱,因为它可以有效减少空间使用,并且数据复制所需的时间很短,从而普遍提高了虚拟机性能。

如果您使用 Proxmox 虚拟环境,导入 Qcow2 操作系统映像的过程非常简单直接。当从其他虚拟化环境(例如 KVM 或 OpenStack)迁移虚拟机实例时,通常会使用此方法。在这个简短的教程中,我们很荣幸向您介绍下载、导入 qcow2 映像以及在 Proxmox VE 上运行 FreeBSD 14 操作系统实例的必要步骤。

下载 FreeBSD 14 Qcow2 镜像

FreeBSD 是最流行的 BSD 开源操作系统,可以安装在 amd64、i386、aarch64 和 riscv64 硬件上。 FreeBSD 支持各种外围设备和配置,适合托管生产服务、软件开发或 Internet 服务提供。

访问 FreeBSD 14 下载页面并获取最新的 VM 映像版本。

FreeBSD 14 版本附带了运行系统所需的一切,其中包括内核的源代码以及基础发行版中捆绑的其他实用程序。 FreeBSD 14.0 获得了许多改进的硬件支持,现在 CPU 核心数限制从 256 个增加到 1024 个。其他更新包括 OpenZFS 文件系统和升级的 LLVM Clang 工具链等。所有新的改进都是为了保证更好的稳定性、性能和安全性

在我的本地系统中,该文件位于“下载”文件夹中。

$ ls FreeBSD-14.0-RELEASE-amd64.qcow2.xz
FreeBSD-14.0-RELEASE-amd64.qcow2.xz

让我们将文件复制到 Proxmox VE 服务器。

scp FreeBSD-14.0-RELEASE-amd64.qcow2.xz pve03:

登录您的 Proxmox 服务器。

ssh pve03

创建 FreeBSD 虚拟机

解压下载的文件,因为它具有 .xz 压缩格式。

unxz -v FreeBSD-14.0-RELEASE-amd64.qcow2.xz 

如果您缺少,请查看如何在 Linux 系统上提取 .xz 文件。

$ ls FreeBSD-14.0-RELEASE-amd64.qcow2
FreeBSD-14.0-RELEASE-amd64.qcow2

提取文件后,将基础映像的大小调整为所需的磁盘大小。我们在下面提供的变量中设置尺寸和图像名称。

SIZE=40G
IMAGE=FreeBSD-14.0-RELEASE-amd64.qcow2
qemu-img resize $IMAGE $SIZE

列出系统中的网桥。

$ brctl show
bridge name	bridge id		STP enabled	interfaces
vmbr0		8000.6c4b9008749b	no		enp0s31f6
							tap100i0
							tap102i0
							tap103i0
							veth114i0
vmbr30		8000.6c4b9008749b	no		enp0s31f6.30

检查 Proxmox VE 服务器中的存储池。

# pvesm status
Name              Type     Status           Total            Used       Available        %
extra_data     lvmthin     active       122404864         7026039       115378824    5.74%
local              dir     active       100597760        38148936        62448824   37.92%
local-lvm      lvmthin     active       832888832        28901242       803987589    3.47%

创建虚拟机时还需要一些其他参数,例如网桥名称、默认 RAM 大小、CPU 内核和存储域。我们可以将值设置为变量以便于使用或更新。

#Default network bridge name
BRIDGE=vmbr0 

#Default VM Ram size
RAM=4096 

#Default CPU cores
CORES=1 

#Storage pool name to use, check with pvesm status
STORAGE=local-lvm

获取要使用的下一个虚拟机 ID。

VMID=$(pvesh get /cluster/nextid)

创建虚拟机实例模板。我们将把 Qcow2 图像导入其中。

qm create $VMID --memory $RAM --cores $CORES  --net0 virtio,bridge=$BRIDGE --scsihw virtio-scsi-pci

创建虚拟机后,我们需要将基础镜像导入到实际的虚拟机存储磁盘中。

# qm importdisk $VMID $IMAGE $STORAGE
importing disk 'FreeBSD-14.0-RELEASE-amd64.qcow2' to VM 105 ...
  Logical volume "vm-105-disk-0" created.
transferred 0.0 B of 40.0 GiB (0.00%)
transferred 417.8 MiB of 40.0 GiB (1.02%)
transferred 835.6 MiB of 40.0 GiB (2.04%)
transferred 1.2 GiB of 40.0 GiB (3.05%)
transferred 1.6 GiB of 40.0 GiB (4.07%)
transferred 2.0 GiB of 40.0 GiB (5.08%)
....
transferred 39.6 GiB of 40.0 GiB (98.88%)
transferred 40.0 GiB of 40.0 GiB (99.89%)
transferred 40.0 GiB of 40.0 GiB (100.00%)
transferred 40.0 GiB of 40.0 GiB (100.00%)
Successfully imported disk as 'unused0:local-lvm:vm-105-disk-0'

导入成功后将磁盘附加到虚拟机中。

# qm set $VMID --scsihw virtio-scsi-pci --virtio0 $STORAGE:vm-$VMID-disk-0
update VM 105: -scsihw virtio-scsi-pci -virtio0 local-lvm:vm-105-disk-0

更改引导顺序以从 SCSI 或 VirtIO 块设备启动。

# qm set $VMID --boot c --bootdisk virtio0
update VM 105: -boot c -bootdisk virtio0

为 VM 实例设置名称。

VMNAME=FreeBSD-14
qm set $VMID --name $VMNAME

将虚拟机设置为在系统启动时启动

qm set $VMID --onboot 1

从终端或 Web 界面启动虚拟机实例。

qm start $VMID

从 Proxmox VE Web 控制台您可以看到启动实例的过程。

如果您在尝试启动虚拟机时遇到屏幕截图中显示的错误

然后编辑虚拟机硬件设置并将显示设置为“默认”

启用 SSHD 服务

为了远程访问我们刚刚配置的FreeBSD虚拟机,我们需要启用OpenSSH服务器服务。该软件包应该已经安装在操作系统中,我们只需要启用它即可。

添加行 sshd_enable=YES 以启用虚拟机中 SSH 服务的自动启动。

echo sshd_enable=YES|tee -a /etc/rc.conf

该服务默认情况下未启动,让我们确保它正在运行。

service sshd start

由于我们没有从 ISO 执行安装,因此我们需要将 root 用户密码更改为已知密码。这可以借助 passwd 命令来完成,同时将用户名作为选项传递。

passwd root

安装vim包来帮助您编辑

pkg install vim

编辑该文件并启用 SSH 密码身份验证和通过 ssh 访问 root 用户。这是一种临时措施,可让您复制 SSH 公钥然后禁用。

# vim /etc/ssh/sshd_config
PasswordAuthentication yes
PermitRootLogin yes

这是我的文件编辑的屏幕截图。

将更改保存到文件后重新启动 sshd 服务。

service sshd restart

从本地工作站系统复制 ssh 公钥。

ssh-copy-id root@FreeBSDIP

使用密钥而不是密码身份验证测试 ssh 访问。

Last login: Sat Apr 13 07:14:55 2024 from 192.168.1.151
FreeBSD 14.0-RELEASE (GENERIC) #0 releng/14.0-n265380-f9716eee8ab4: Fri Nov 10 05:57:23 UTC 2023

Welcome to FreeBSD!

Release Notes, Errata: https://www.FreeBSD.org/releases/
Security Advisories:   https://www.FreeBSD.org/security/
FreeBSD Handbook:      https://www.FreeBSD.org/handbook/
FreeBSD FAQ:           https://www.FreeBSD.org/faq/
Questions List:        https://www.FreeBSD.org/lists/questions/
FreeBSD Forums:        https://forums.FreeBSD.org/

Documents installed with the system are in the /usr/local/share/doc/freebsd/
directory, or can be installed later with:  pkg install en-freebsd-doc
For other languages, replace "en" with a language code like de or fr.

Show the version of FreeBSD installed:  freebsd-version ; uname -a
Please include that output and any error messages when posting questions.
Introduction to manual pages:  man man
FreeBSD directory layout:      man hier

To change this login announcement, see motd(5).
root@freebsd:~ #

此后,您可以随意禁用密码身份验证并重新启动 sshd 服务。

PasswordAuthentication no

在FreeBSD系统上添加用户

我们的系统只有 root 用户,但我们可以在 FreeBSD 中添加额外的用户。以下示例添加一个名为 freebsd 的用户并为该用户设置密码。我们还将用户添加到wheel系统组以允许sudo权限。

pw useradd freebsd -m
passwd freebsd
pw groupmod wheel -m freebsd

安装 sudo 软件包以允许用户执行权限提升。

pkg install -y sudo

一旦安装了该软件包,所有 root 权限都将授予用户。

# export EDITOR=vim
# visudo
# add to last line
freebsd    ALL=(ALL:ALL) ALL

复制 ssh 公钥以进行无密码身份验证

 ssh-copy-id freebsd@FreeBSDIP

创建用户时测试 SSH 访问

$ ssh freebsd@FreeBSDIP
freebsd@freebsd14:~ $ sudo su -
Password: <INPUT-USER-PASSWORD>
root@freebsd:~ #

我们可以确认用户能够使用 sudo 登录并取得 root 用户权限。在本文中,我们已成功将 FreeBSD 14 的 Qcow2 映像导入到 Proxmox VE 服务器中。我们继续执行启用 SSH 并向系统添加标准用户的正常额外步骤。类似的过程可用于以 Qcow2 映像格式分发的任何其他操作系统。感谢您访问我们的网站并祝您度过愉快的一周/周末。


更新于:2个月前
赞一波!

文章评论

全部评论