需先在磁盘管理中移除目标物理硬盘所有盘符并脱机,再用PowerShell命令Add-VMHardDiskDrive以SCSI控制器直通挂载;虚拟机启动后须初始化并格式化该磁盘方可使用。

在Windows 10专业版或企业版中,将本地物理硬盘(非系统盘)直接挂载为Hyper-V虚拟机的物理直通硬盘,需确保宿主机完全释放该磁盘控制权,虚拟机才能以裸设备方式独占访问,操作错误会导致宿主机瞬间丢失磁盘可见性且可能引发数据损坏。
确认目标磁盘状态与权限
按 Win + R 输入 diskmgmt.msc 打开磁盘管理,定位目标物理磁盘(如“磁盘 1”),确认其不是系统盘、未被BitLocker加密、且所有分区均无盘符——若已有盘符,右键各分区→“更改驱动器号和路径”→全部移除;若显示“正在使用”,需结束资源管理器、备份软件、索引服务等可能占用句柄的进程。
右键磁盘左侧灰色区域(非分区条),检查菜单中是否出现“脱机”选项:仅当磁盘状态为“联机”且无活动卷时该选项才可用;【若显示“脱机”为灰色不可点,说明该磁盘正被系统或某服务锁定,必须先解除占用】。
执行宿主机磁盘脱机操作
右键目标磁盘左侧空白处 → 选择“脱机”。
成功后,整块磁盘显示为“脱机”,所有分区消失,磁盘管理中不再显示任何盘符或卷标;此时在PowerShell中运行 Get-Disk | Where-Object {$_.OperationalStatus -eq 'Offline'} 可验证状态。注意:脱机不删除数据,但宿主机将彻底无法访问该磁盘——包括文件资源管理器、命令行、备份工具等全部失效。
通过PowerShell为虚拟机添加物理磁盘
Hyper-V管理器图形界面在Windows 10中默认隐藏物理硬盘选项,必须使用PowerShell执行直通挂载:
以管理员身份运行PowerShell,执行以下命令(替换 VMName 为你的虚拟机名,1 为磁盘编号):
Add-VMHardDiskDrive -VMName "VMName" -Path "\.PHYSICALDRIVE1" -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 0
该命令将物理磁盘1直通至虚拟机SCSI控制器第0通道;【必须使用SCSI控制器,IDE控制器不支持物理直通,否则命令报错且虚拟机无法识别】。
执行后无提示即表示成功,可运行 Get-VMHardDiskDrive -VMName "VMName" 查看挂载记录。
启动虚拟机并初始化磁盘
启动虚拟机,进入操作系统(Windows或Linux均可)。
在Windows虚拟机中:打开 diskmgmt.msc → 看到一块“状态:联机”但“容量:0 B”的新磁盘 → 右键该磁盘 → “初始化磁盘” → 选择GPT分区样式 → “确定” → 右键未分配空间 → “新建简单卷” → 按向导完成格式化(NTFS/exFAT)并分配盘符。
在Linux虚拟机中:运行 lsblk 或 lsscsi 确认新设备(通常为 /dev/sdb 或 /dev/nvme1n1)→ 使用 fdisk -l /dev/sdb 验证空盘 → 执行 parted /dev/sdb mklabel gpt → mkpart primary ntfs 0% 100% → mkfs.ntfs /dev/sdb1 → mkdir /mnt/physdisk && mount /dev/sdb1 /mnt/physdisk。

















