PVE如何直通整块硬盘或者直通硬盘下的某个分区给虚拟机

查询数据

一、查找目标硬盘的 ID

打开PVE 节点的 >_ Shell 或通过 SSH 连接 PVE 主机,执行以下命令:

ls -l /dev/disk/by-id/

回车后会列出硬盘的ID

找到需要直通的硬盘ID,复制即可

本文需要直通的示例硬盘ID为ata-HGST_HUH721008ALE600_7HK48ZPF

释义

此部分为解释可跳过

注意,这边可能会出现多个同名,下面解释以上图中的ata-HGST_HUH721008ALE600_7HK48ZPF为例

📌 核心概念解释

这些是为磁盘生成的稳定符号链接,方便你在 /dev/disk/by-id/ 下唯一识别硬盘和分区。

链接格式含义
ata-HGST_HUH721008ALE600_7HK48ZPF指向整块物理硬盘
ata-HGST_HUH721008ALE600_7HK48ZPF-part1指向该硬盘上的第 1 个分区
ata-HGST_HUH721008ALE600_7HK48ZPF-part2指向该硬盘上的第 2 个分区
ata-HGST_HUH721008ALE600_7HK48ZPF-part3指向该硬盘上的第 3 个分区

🔍 详细说明

  1. 不带 -partN 的链接
    • 代表整个物理磁盘设备
    • 用于整盘操作,比如:
      • 直通给虚拟机
      • 创建 LVM 物理卷
      • 对磁盘进行全盘格式化或分区
  2. -partN 的链接
    • 代表磁盘上的具体分区(N 是分区编号,从 1 开始)。
    • 用于分区级操作,比如:
      • 挂载到文件系统
      • 格式化为 ext4/xfs 等文件系统
      • 作为 LVM 逻辑卷的底层设备
  3. 为什么用 by-id 而不是 /dev/sda?
    • /dev/sda/dev/sdb 这类盘符可能会因为硬件顺序变化而改变(比如新增硬盘、重启后)。
    • by-id 链接是基于硬盘的硬件序列号和型号生成的,永远唯一且稳定,不会随启动顺序变化,非常适合 PVE 这类需要稳定引用磁盘的场景。

💡 实用建议

  • 整盘操作:使用不带 -partN 的链接(如 ata-HGST_HUH7210080ALE600_7HK48ZPF)。
  • 分区操作:使用带 -partN 的链接(如 ata-HGST_HUH7210080ALE600_7HK48ZPF-part1)。
  • PVE 中添加磁盘:在 PVE 网页端添加磁盘时,选择 by-id 下的整盘链接,避免盘符漂移导致的问题。

二、查找已占用磁盘编号

打开对应虚拟机的硬件页面

如果要直通的总线类型为sata,则查看sata编号使用了哪些,顺延即可

如图所示,已使用编号为sata0、sata1,则可以使用的下一个编号为sata3,也就是现有编号上+1,其他的总线类型,比如scsi也是一样的。

直通硬盘/分区

打开PVE 节点的 >_ Shell 或通过 SSH 连接 PVE 主机,执行以下命令:

qm set 101 --sata2 /dev/disk/by-id/ata-HGST_HUH721008ALE600_7HK48ZPF

本示例直通的总线类型为sata,且已使用编号为sata0、sata1,则此处使用sata2,qm set 101 --sata2中的101指的是虚拟机ID,你要直通给哪个虚拟机就填哪个虚拟机ID,本文示例虚拟机ID为101,直通整块硬盘。如果需要直通指定的某个分区,按照下方说明部分调整即可。

说明

如果你想把本文需要直通的示例整盘直通给虚拟机,应该选择:

/dev/disk/by-id/ata-HGST_HUH721008ALE600_7HK48ZPF

如果你想直通某个指定分区给虚拟机,应该选择:

/dev/disk/by-id/ata-HGST_HUH721008ALE600_7HK48ZPF-part1

虚拟机ID是这个数字

如下图所示即为直通成功

虚拟机也同样显示增加了一块硬盘sata2

PVE(Proxmox)虚拟化下使用qcow2镜像格式安装飞牛NAS教程,方便数据迁移和备份
上一篇 2026年3月8日 下午4:16
群晖NAS使用docker安装n8n自动化工作流并汉化教程
下一篇 2026年3月16日 下午4:55

相关推荐

飞牛NAS用户,请尽快升级到fnOS最新版本!!!