通常,当我将磁盘传递到虚拟机时,我会使用整个磁盘。我正在尝试通过分割在 KVM 中。第一个问题是,这可能吗?看了这篇文档,我觉得这是可行的方法,这让我很惊讶。
重要的
不应授予客户虚拟机对整个磁盘或块设备 (例如,/dev/sdb) 的写访问权限。有权访问整个块设备的客户虚拟机可能能够修改卷标,这可用于危害主机物理机系统。使用分区(例如,/dev/sdb1)或 LVM 卷来防止此问题。
我的下一个问题是我已经阅读了如何通过 /dev/sdX 和 diskID 执行此操作,但 DiskID 似乎是整个磁盘,IE:
https://lime-technology.com/forums/topic/34659-hard-drive-passthrough/
<disk type='block' device='disk'>
<source dev='/dev/disk/by-id/ata-Corsair_CSSD-F120GB2_1109650632000461003B' />
<target dev='hdc' bus='virtio' />
</disk>
使用 by-id 的全部意义在于 /sdX 可以改变。我想知道我是否可以使用 LABEL 或 UUID?任何有经验的人,我都想提供一些意见。
谢谢
答案1
如果仔细查看磁盘符号链接,/dev/disk/by-id
您会发现块设备上的每个分区也都有链接。例如:
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN-part1
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN-part2
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN-part3
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN-part5
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN-part6
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN-part7
使用与所需分区相对应的分区。
答案2
您可以通过 /dev/disk/by-* 中的以下任意符号链接直通磁盘,例如:
cd /dev/disk/by-
by-id/ by-label/ by-partlabel/ by-partuuid/ by-path/ by-uuid/
答案3
这可以通过使用 ID 或按标签路径中的符号链接,然后将其用于分区来完成:
ls -l /dev/disk/by-id
ls -l /dev/disk/by-label
#After getting the id of the partition, use following
qm set 592 -scsi2 /dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F41BLC-part3
与此相关的解释非常清楚的答案可以在Proxmox 支持论坛关联。