如何在 Proxmox 上导入 FreeBSD 14 Qcow2 映像
在 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 映像格式分发的任何其他操作系统。感谢您访问我们的网站并祝您度过愉快的一周/周末。
更新于:5个月前
相关文章
- 【说站】python变量如何在作用域使用
- 【说站】Python如何在列表中添加新值
- 【说站】Java如何在PDF添加注释
- 【说站】java软引用如何在浏览器使用
- 如何在 JavaScript 中使用正则表达式删除 HTML 标签?
- linux的shell脚本中如何在一个字符串中查找指定字符串是否存在
- 你如何在 Python 中循环字典?
- 如何在 Anaconda 中安装 Python 包?
- 你如何在 Python 中编写自动售货机代码?
- 如何在 Python 中读取 .data 文件?
- 如何在 Python 中创建静态类数据和静态类方法?
- 如何在 Python 中使用 Matplotlib 创建一个空的 Figure?
- 如何在 seaborn 中创建三角相关热图?
- 如何在Python中创建AGE计算器Web App PyWebIO?
- 如何在 Python 中只删除空文件夹?
- 如何在 Pandas 中创建一个空的数据帧并向其附加行和列?
- 如何在 Django 中创建抽象模型类?
- 如何在 Python 中使用 Pillow 连接图像?
- 如何在 Python 中将嵌套的 OrderedDict 转换为 Dict?
- 如何在 Python 中将分类特征转换为数字特征?