虚拟机装SCSI硬盘驱动,核心思路就一句话:先给虚拟机添加SCSI控制器,再在系统安装或PE环境里加载对应驱动,最后装完系统再补装官方驱动确保稳定。很多人卡在第一步,是因为不知道虚拟SCSI控制器和物理环境不一样,Windows自带的驱动有时认不出来,下面按实际操作顺序说清楚。
为什么虚拟机里的SCSI硬盘经常找不到驱动
虚拟机里所谓SCSI硬盘,其实不是物理硬盘,而是虚拟化软件模拟出来的存储接口,常见的有LSI Logic、LSI Logic SAS、VMware PVSCSI、Hyper-V的SCSI控制器,不同虚拟化平台默认的SCSI控制器类型不一样,Windows系统镜像里自带的驱动覆盖范围也有限,尤其是精简版系统、老版本的Windows Server,或者Linux安装镜像里没集成对应模块时,系统安装程序会直接提示“找不到磁盘”。
分清你用的是哪种虚拟SCSI控制器
先确认你所在的环境,才能对症下药:
- VMware Workstation / ESXi:默认LSI Logic,也可以改成VMware PVSCSI(高性能)。
- Hyper-V:默认是标准SCSI控制器,Windows Server自带驱动一般能认。
- VirtualBox:默认SATA,但可以手动挂载SCSI控制器(品牌是LSI Logic或BusLogic)。
查看路径很简单:VMware里右键虚拟机→编辑设置→SCSI控制器,选类型;Hyper-V在虚拟机的SCSI控制器下能看到磁盘;VirtualBox在存储设置里能看到控制器型号,这一步别跳过,因为不同控制器对应不同驱动文件。
驱动装不上的典型症状
- 安装系统时提示“没有可用的设备”
- 进入PE后看不到虚拟机的SCSI磁盘分区
- 系统装好后磁盘显示为“未知设备”或“未初始化”
- 读写速度异常低,明显没用上虚拟SCSI的高性能模式
这些情况多数是驱动没加载,不是硬盘坏了。
安装系统前如何加载SCSI硬盘驱动
如果安装界面认不出硬盘,需要在安装过程中手动加载驱动,Windows和Linux操作不同,分开说。
Windows安装过程中离线加载驱动
- 先把驱动文件下载好,VMware官方提供floppy或ISO格式的驱动镜像。
- 给虚拟机添加一个软驱或CD-ROM,挂载驱动镜像(例如VMware的
sas_vfloppy.flp或者直接挂载ESXi驱动ISO)。 - 启动虚拟机,进入Windows安装程序,在“选择磁盘”界面点击“加载驱动程序”。
- 浏览到驱动所在盘符,选择匹配系统的驱动版本(区分32位和64位)。
- 加载完成后,磁盘列表里就会出现可安装的SCSI硬盘分区。
注意:如果是PVSCSI控制器,驱动镜像要选对应版本的pvscsi驱动;LSI Logic一般用lsi_scsi或megaraid_sas驱动,挂载驱动镜像时,虚拟机得保持该设备存在,装完系统后可以移除。
PE环境下注入驱动或手动安装
很多人习惯用PE装系统,但PE里看不到SCSI盘,那就提前把驱动文件拷到U盘,进PE后用下面方式之一处理:
- 使用dism++或WinNTSetup:这些工具支持在部署系统时注入驱动,在WinNTSetup的“驱动”选项里添加驱动文件夹,点开始安装,它会自动把SCSI驱动集成进系统。
- 手动用驱动加载命令:PE里打开命令提示符,用
pnputil /add-driver 驱动路径 /install命令把驱动装进当前PE环境,然后打开磁盘管理刷新,就能看到SCSI硬盘了。 - 离线注入到系统镜像:先不启动系统,使用dism命令把驱动挂载到wim或esd镜像里:
dism /mount-wim /wimfile:install.wim /index:1 /mountdir:mount dism /add-driver /image:mount /driver:驱动文件夹 dism /unmount-wim /mountdir:mount /commit这种方式适合批量部署,不用每次装系统都手动加载一次。
Linux虚拟机加载SCSI驱动
Linux一般把SCSI驱动编译为内核模块,安装时如果识别不出,切换到控制台检查模块名,VMware PVSCSI的驱动模块是vmw_pvscsi,LSI Logic SAS是mpt3sas或mptsas。
在安装引导参数里可以强制加载模块,例如CentOS/RHEL安装时按e进入编辑,在linux开头的那一行末尾加上:
modprobe.blacklist=ahci scsi_mod.scsi_dh=Y vmw_pvscsi
具体模块名要看发行版,装完系统后执行mkinitrd或dracut重新生成initramfs,确保下次启动能自动加载。
系统装完后还需要补装哪些SCSI驱动
有些系统装完能识别磁盘,但用的是微软通用驱动,性能和稳定性不是最优,建议装完系统后回到虚拟化平台,把控制器切到高性能模式,再装官方驱动。
VMware虚拟机的PVSCSI驱动安装
VMware Workstation里如果安装系统时用的是LSI Logic,那么装完系统后关机,把SCSI控制器改为VMware PVSCSI,再开机,这时系统会提示找到新硬件,手动指定驱动目录即可。
如果是Windows Server系统,也可以去VMware官网下载vmware-tools的驱动包,或者直接在虚拟机里安装VMware Tools,它会自动匹配PVSCSI驱动,安装完成后检查设备管理器里的“存储控制器”是否显示为“VMware PVSCSI SCSI Controller”,显示成功就说明驱动生效了。
Hyper-V的SCSI驱动是否要折腾
Hyper-V的SCSI控制器对Windows Server和Windows 10/11都有内置支持,装系统时一般直接认盘,但Linux虚拟机要装Linux Integration Services,才能识别高级SCSI功能,不装的话,虽然能用,但多队列和trim功能可能失效,固态硬盘场景下性能损失明显。
驱动装好后怎么验证
打开设备管理器,展开“磁盘驱动器”和“存储控制器”,如果磁盘型号显示为类似“VMware Virtual disk”而不是“Unknown Device”,并且存储控制器没有黄色感叹号,就基本没问题。
再用磁盘管理工具看看能否联机、初始化、创建分区,如果之前系统装在SCSI盘上,但驱动缺失,启动时会蓝屏报INACCESSIBLE_BOOT_DEVICE,那就得进恢复模式用bcdedit和pnputil把驱动加进注册表,或者干脆重装系统。
虚拟机安装SCSI硬盘的需求场景与选型对比
不同虚拟化场景对SCSI驱动的要求不一样,选错了会徒增麻烦。
个人学习测试和家庭虚拟机
VirtualBox里默认用SATA就好,没必要刻意换SCSI,如果为了模拟老系统必须用SCSI,选BusLogic控制器兼容性最好,但性能一般,驱动可以从客机操作系统的安装光盘里找。
企业生产环境的虚拟化平台
ESXi里给Windows虚拟机用PVSCSI能降低CPU开销,但这个驱动必须提前准备,业内共识是:生产环境不要等装系统时才发现驱动问题,应该把驱动集成到模板镜像里,然后批量部署,VMware官方文档建议,Windows虚拟机使用PVSCSI时,需先安装驱动再切换控制器类型,否则可能蓝屏。
各控制器驱动差异对比
| 控制器类型 | 常见环境 | Windows驱动来源 | Linux内核模块 | 适用场景 |
|---|---|---|---|---|
| LSI Logic | VMware | 系统自带或驱动floppy | mptsas/mpt3sas | 兼容性好,适合装旧系统 |
| PVSCSI | VMware | VMware Tools或官网ISO | vmw_pvscsi | 高并发、高吞吐场景 |
| 标准SCSI | Hyper-V | 系统自带 | storvsc | 常规Windows/Linux |
| BusLogic | VirtualBox | 系统安装盘 | BusLogic | 老系统兼容模拟 |
如果虚拟机的SCSI硬盘驱动装不上,优先检查控制器类型是不是和上面的表格匹配,再检查驱动位数和系统版本。
常见问题排查路径
驱动加载后磁盘仍然不显示
先确认驱动镜像的格式能被虚拟机读取,fda格式的软驱镜像在部分系统安装程序里无法识别,换成ISO光驱镜像更靠谱,其次看是否加载了错误的控制器驱动,比如把LSI驱动用到PVSCSI上。
系统启动时蓝屏
装完系统后切换SCSI控制器类型是最常见原因,如果忘记先装驱动就切换,Windows会因为找不到启动盘蓝屏,解决方案:把控制器类型切回原样,启动系统,装好驱动,关机,再切回目标类型。
Linux虚拟机无法启动,卡在dracut界面
多数是initramfs没有包含SCSI模块,重新生成initramfs时指定模块,
dracut --force --add-drivers vmw_pvscsi
然后重启。
关于虚拟机SCSI硬盘驱动的Q&A
为什么我的虚拟机安装系统时看不到硬盘,但换SATA就能看到
SCSI控制器驱动没有集成到安装镜像里,Windows原版镜像通常带LSI Logic和通用SCSI驱动,但如果你用的是精简版系统或者改过的镜像,驱动文件被删掉了,解决办法是下载官方驱动镜像,在安装界面手动加载,或者用dism注入到install.wim里。
VMware Workstation里SCSI和SATA哪个性能更好
对单块虚拟磁盘而言,差别不大,但SCSI支持多块盘挂在一个控制器上,并且PVSCSI在高随机读写时不消耗那些CPU中断,适合跑数据库类负载,SATA更省事,不需要额外驱动,适合磁盘数量少的虚拟机。
装完驱动后还能把虚拟磁盘从SCSI迁移到SATA吗
可以,在关闭虚拟机后,编辑虚拟机设置,把SCSI控制器删除,添加SATA控制器,再把虚拟磁盘挂到SATA上,启动后Windows会当作新磁盘,需要重新分配盘符,但原有数据不受影响,前提是系统本身支持从SATA启动,这个过程不需要额外驱动。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/741939.html





