虚拟机里SCSI驱动装不上,十有八九不是你操作的问题,而是系统镜像里根本没集成对应驱动,或者控制器类型选错了,直接换IDE或者注入驱动就能解决。
虚拟机SCSI驱动安装失败:先搞懂为什么装不上
Windows系统在安装过程中加载驱动,靠的是boot.wim和install.wim里预置的驱动库,如果你用的ISO镜像比较老,或者精简过度,里面压根没有VMware PVSCSI或Hyper-V StorVSC的驱动,那安装程序自然找不到硬盘。
有个细节很坑人:SCSI控制器在设备管理器里不叫“SCSI”,而是叫“存储控制器”,很多人装完系统进桌面发现硬盘没了,去设备管理器看半天,根本认不出那个带黄色感叹号的设备就是SCSI控制器。
虚拟机SCSI驱动安装失败的典型表现就两种:
- 安装Windows时提示“找不到任何驱动器”,卡在选硬盘那一步
- 系统装完了,进桌面蓝屏报
INACCESSIBLE_BOOT_DEVICE
这两个现象背后的原因完全不同,前者是安装介质缺驱动,后者是系统已经装上了但启动时加载不到驱动,需要在装系统时就提前注入。
虚拟机的SCSI驱动和普通硬盘驱动有什么不同
SCSI控制器驱动不是通用驱动,它跟具体虚拟化平台的实现强绑定,VMware的pvscsi驱动、Hyper-V的storvsc驱动、KVM的virtio-scsi驱动,三方互不兼容。
业内的共识是:SCSI控制器性能优于IDE,但兼容性不如IDE,IDE是操作系统内置驱动,永远不需要额外装;SCSI需要虚拟化平台提供Guest Tools或驱动ISO才能识别。
所以在排障思路上,你得先分清自己是哪个平台、哪个系统:
| 虚拟化平台 | 控制器类型 | 驱动名称 | 系统镜像处理方式 |
|---|---|---|---|
| VMware ESXi / Workstation | PVSCSI | lsi_msgpt3.sys / pvscsi.sys | 装VMware Tools |
| Hyper-V / Azure | 合成SCSI | storvsc.sys | 系统自带,需开启功能 |
| KVM / Proxmox | virtio-scsi | viostor.sys | 挂载virtio-win ISO |
| VirtualBox | LSI Logic / BusLogic | symmpi.sys / sientos.sys | 装增强功能 |
排查虚拟机SCSI驱动加载失败的三个切入点
第一步:确认控制器型号是不是选错了
打开虚拟机设置,看存储控制器那块,VMware默认的SCSI控制器是LSI Logic SAS,如果你手动改成了PVSCSI但没装驱动,系统肯定认不到。
Windows Server 2008及更早版本对PVSCSI的支持不友好,改用LSI Logic SAS或直接换成IDE,问题往往当场解决,Windows 10/11和Server 2016之后,PVSCSI才能正常发挥性能优势。
Hyper-V这边,第二代的SCSI控制器如果装了Linux系统,得确认内核里编译了storvsc模块,用lsmod | grep hv_storvsc看一下,如果输出为空,执行modprobe hv_storvsc加载后重试。
第二步:在系统安装阶段手动加载驱动
Windows安装界面按Shift+F10呼出命令提示符,先看下磁盘状态:
diskpart list disk
如果能看到磁盘,说明驱动其实没丢,是安装程序没识别,用dism命令把驱动注入到镜像里:
dism /mount-wim /wimfile:D:sourcesinstall.wim /index:1 /mountdir:C:mount dism /image:C:mount /add-driver /driver:C:driverspvscsi.inf dism /unmount-wim /mountdir:C:mount /commit
这套操作适用于离线注入,适合给大批量虚拟机分发系统镜像时预先把SCSI驱动塞进去。
第三步:装完系统后的驱动补救方案
如果系统已经装好但启动蓝屏,别慌,这个叫“引导时驱动缺失”,跟普通驱动安装失败不一样,处理思路是进恢复模式,用dism把驱动注入到离线系统里:
dism /image:C: /add-driver /driver:D:pvscsi.inf
恢复环境可以用原版ISO引导,选“修复计算机”,然后打开命令行,注入完成后重启,系统就能正常加载SCSI驱动了。
Linux虚拟机SCSI驱动装不上怎么处理
Linux这边装SCSI驱动失败,表现形式跟Windows完全不同,多数情况下是内核模块没加载或者initramfs里缺驱动,导致启动时挂载不了根文件系统,卡在dracut或initramfs的shell提示符。
处理思路:
- 查看当前SCSI设备是否被识别,执行
lsscsi,没有输出就说明驱动没加载 - 加载
virtio_scsi模块,执行modprobe virtio_scsi - 持久化配置,把模块名写入
/etc/modules-load.d/目录下的配置文件 - 重建initramfs,Debian/Ubuntu用
update-initramfs -u,RHEL/CentOS用dracut -f
如果是在KVM环境里装CentOS,安装器界面选硬盘时看不到虚拟磁盘,很常见,解决办法是在安装引导参数里加modprobe.blacklist=ata_generic,或者直接挂载virtio-win驱动ISO,安装器里选“添加驱动盘”加载。
虚拟机里安装SCSI控制器驱动的详细操作
进到设备管理器,找到带感叹号的存储控制器,右键更新驱动,选择“浏览我的电脑以查找驱动程序”,指向你解压出来的驱动目录。
但这里有个坑:Windows的驱动签名强制策略会拦下未经签名的驱动,如果是老旧的LSI驱动,装的时候提示“无法验证发布者”,需要先禁用驱动签名强制,重启时按F8,选“禁用驱动程序强制签名”,装完再正常重启。
如果是给Hyper-V虚拟机装驱动,Windows Server 2026的storvsc.sys是系统自带的,不需要额外装,但如果是Windows 7/2008 R2的老系统跑在新版Hyper-V上,得手动从Microsoft Update Catalog下载“StorVSS”驱动更新。
给虚拟机添加SCSI驱动最省事的方法是用pnputil:
pnputil /add-driver D:scsipvscsi.inf /install
这个命令会自动把驱动安装到系统驱动库里,不需要手动指定设备路径,执行完检查一下设备管理器,感叹号应该消失了。
Windows虚拟机启动蓝屏显示INACCESSIBLE_BOOT_DEVICE的修复
这个报错在Windows 10/11上尤其常见,特别是从VMware迁移到Hyper-V或者反向操作之后,系统在启动时加载不了SCSI驱动,就会卡在这个蓝屏界面。
修复方案:
- 用原版安装ISO引导虚拟机
- 选择“修复计算机” → “疑难解答” → “高级选项” → “命令提示符”
- 查看系统盘符,执行
dir C:WindowsSystem32drivers看有没有storvsc.sys或pvscsi.sys - 没有的话,把对应驱动文件复制到
C:WindowsSystem32drivers目录 - 修改注册表,加载
C:WindowsSystem32configSYSTEM配置单元,在ControlSet001Services下新建对应驱动的服务项
这个方法稍微有点绕,但能解决90%以上的迁移后蓝屏问题,如果不想动注册表,更省事的办法是直接在目标平台新建虚拟机,挂载原磁盘重新安装引导。
虚拟机SCSI驱动相关常见问题解答
虚拟机装系统时找不到硬盘但BIOS里能看到,是SCSI驱动问题吗
是,大概率是安装镜像缺SCSI驱动,BIOS能看到硬盘是因为固件层已经识别了控制器,但Windows安装程序需要驱动才能访问存储栈,解决办法是下载对应平台的驱动ISO,安装时选择“加载驱动程序”,浏览到驱动目录后应该就能看到磁盘了。
怎么确认SCSI驱动到底装没装好
Windows下打开设备管理器,展开“存储控制器”节点,如果没有任何黄色感叹号,说明驱动正常,也可以在命令提示符里执行sc query storvsc或sc query pvscsi,看服务状态是不是RUNNING,Linux下执行dmesg | grep scsi,能看到scsi host相关的初始化日志就说明正常。
为什么换了SCSI控制器类型后虚拟机直接蓝屏
因为Windows启动时按注册表里记录的驱动服务列表加载存储栈,换了控制器类型后,原来的驱动加载不了新硬件,自然就蓝屏了,虚拟机创建好之后不要随意更改SCSI控制器类型,需要换的话,务必先改驱动再关机换硬件配置。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/618121.html





