首页 程序笔记 如何在 Proxmox 上导入 FreeBSD 14 Qcow2 映像

如何在 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 映像格式分发的任何其他操作系统。感谢您访问我们的网站并祝您度过愉快的一周/周末。


站心网

在 Proxmox VE 上安装操作系统可以通过多种方法完成。最常见的是从 ISO 映像安装,但还有另一种选择是使用..

为您推荐

ASP.NET如何将Views文件夹从项目分离

将 Views 文件夹从 ASP.NET 项目中分离是一个常见需求,比如为了实现模块化或分层架构。以下是实现此功能的完整步骤,从项目中分离 Views 文件夹,将其移到另一个独立的文件夹或项目中,并确保视图渲染仍然正常。1. ..

如何让AI写出Google认可的文章?

让 AI 写出 Google 认可的文章,核心在于满足 Google 的搜索排名算法要求。这些要求通常围绕以下几个关键点展开:内容质量、用户体验 和 SEO 优化。以下是详细指导:一、内容质量确保文章原创且有价值避免抄袭:Goog..

如何从.NET Framework迁移到.NET Core或.NET 6/7?

从 .NET Framework 迁移到 .NET Core 或 .NET 6/7 是一个提升性能和跨平台能力的关键过程。以下是迁移的主要步骤和注意事项:迁移步骤1. 评估当前项目依赖项检查:确保所有第三方库和NuGet包都有与 .NET Core/.NET 6..

如何优化ASP.NET Core应用的性能?

优化ASP.NET Core应用性能需要从代码、数据库、配置、服务器和部署等多个层面进行综合考虑。以下是一些优化ASP.NET Core应用性能的关键方法和技巧:1. 代码级优化使用异步编程:避免阻塞线程,通过async和await处理I..

chrome 开发者工具如何查看元素:hover时的样式

在 Chrome 开发者工具中查看元素的 :hover 样式,可以通过以下步骤实现:打开开发者工具:右键点击页面中的元素,然后选择“检查(Inspect)”或按下 F12 或 Ctrl + Shift + I (Windows) / Cmd + Option +..

如何防止web应用DOS攻击?

防止web应用DOS攻击的最好的方法是什么? 如何防止web应用DOS攻击? 与所有的拒绝服务(DOS)攻击相关的一件事是他们都不可能避免。最好的方法是把重点放在减少影响DOS攻击的方法上。如果你有一个网络,黑客想要玩一玩..

数据库SQL Server2014和SQL Server2019的区别和如何选择?

SQL Server 2014和SQL Server 2019是微软公司发布的两个版本的数据库管理系统,它们在性能、安全性以及可扩展性等方面各有特点。在选择这两个数据库版本时,需要根据系统需求、预算状况以及技术团队的熟悉程度等因素..

MySQL如何建数据库

MySQL是一款非常流行的关系型数据库管理系统。无论是在企业还是个人项目中,都经常使用MySQL数据库。在使用MySQL之前,需要先创建一个数据库。本文将介绍如何建立MySQL数据库。一、安装MySQL在开始建立MySQL数据库之..

jwt是什么?.NET Core API如何使用JwtBearer验证

JWT是JSON Web Token的缩写,是一种开放标准(RFC 7519),用于在网络上以安全和可靠的方式传输信息。它是一种被广泛使用的跨域身份验证解决方案,可以将用户信息、访问权限等加密后存储在Token中,然后通过网络传输..

什么是微服务架构?它与单体应用程序架构有什么区别?如何在.NET中实现微服务架构?

微服务架构是一种软件架构风格,通过将应用程序拆分为一组小型、自治的服务来构建应用程序。每个服务都专注于解决特定的业务功能,并通过轻量级的通信机制进行交互。这些服务可以独立开发、部署和扩展,可以使用不同..

winform如何隐藏边框和标题栏

在WinForms中,可以通过以下步骤来隐藏窗体的边框和标题栏:打开WinForms应用程序的窗体设计器。选择窗体控件,然后在属性窗口中找到FormBorderStyle属性。将FormBorderStyle属性设置为None,以指示窗体不显示边框。..

程序员如何量化炒股?原理是什么?

作为程序员,可以运用编程技能和量化分析来帮助量化炒股。量化炒股有哪些步骤和方法?收集数据:需要收集有关股票市场的数据。可以从各种来源获取这些数据,如Yahoo财经、谷歌财经、股票交易所等。可以使用Python等..

如何让Google谷歌搜索引擎找到并收录网站

Google谷歌会使用大量计算机来抓取网络上数十亿的页面, 这个名为 Googlebot 的抓取工具基本上从以前抓取生成的网页 URL 列表开始,然后使用 Google Search Console 中提供的站点地图数据扩充这些页面。 在抓取过程..

如何把网站提交到Google谷歌搜索引擎google search console收录

发布新的网站后,它并不会立即被搜索引擎收录。为了让网站出现在搜索结果中,Google 需要“抓取”您的内容并“编制索引”。 这会在数天或数周内自动发生,但如果您是网站所有者,则可以在Google search console手动..

百度文心一言邀请码如何获得?

3月16日下午,百度于北京总部发布了新一代大语言模型、生成式AI产品文心一言。首批用户即可通过邀请测试码,在文心一言官网体验产品,后续将陆续开放给更多用户。邀请码申请方式请往下看。百度文心官网地址:https://..

如何下载和使用tor洋葱浏览器

什么是Tor浏览器Tor浏览器是一种免费的、开源的网络浏览器,旨在为用户提供更高的隐私和匿名性。它使用了 Tor 网络来加密和隐蔽用户的网络流量,从而隐藏用户的真实 IP 地址和其他个人信息,让用户在互联网上匿名地..

如何注册USDT钱包

要注册USDT钱包,你可以选择使用一些知名的加密货币钱包提供商,如Tether、Binance、Coinbase等。什么是USDT?USDT(Tether)是一种加密货币,也称为稳定币(Stablecoin)。它的设计目的是以数字形式模拟传统货币(..

.NET如何控制并发

.NET 提供了多种机制来控制并发,包括:锁:锁是用于保护共享资源的机制。当一个线程获取了锁,其他线程将无法访问该资源。锁可以用于防止数据竞争和死锁。信号量:信号量用于控制对共享资源的访问次数。当信号量的..

VS2022性能分析工具如何使用?

Visual Studio 2022提供了强大的性能分析工具,可以帮助开发人员识别和解决应用程序的性能问题。下面是使用VS2022性能分析工具的一般步骤:打开Visual Studio 2022,并打开要分析的项目。在菜单栏中选择"调试",然后..

.NET如何解决高并发锁表

.NET 提供了多种方法来解决高并发锁表的问题。以下是一些常用的方法:使用事务和隔离级别在数据库操作中使用事务可以将一系列操作作为一个原子单元执行,可以保证数据的一致性。设置合适的隔离级别可以控制事务之间..

发表回复

返回顶部

微信分享

微信分享二维码

扫描二维码分享到微信或朋友圈

链接已复制