[讨论/分享] 八平台中秋版和老骥伏枥方法ESXI6.5下的硬盘挂载 |
本教程不适用于esxi6.7,官方说6.7有bug,板卡直通的问题需要下个版本修复。
一般的情况下可以参考 黑威联通 TS-653B 4.3 ESXi 6.0 6.5 6.7安装教程 (出处: NAS云论坛) 用IDE接口来挂硬盘,对于对性能要求高的玩家来说,硬盘直通才是王道。 硬盘直通有两种,一种是RDM一种是PCIE板卡直通。 RDM的方法很简单,将硬盘直通为一个RDM格式的虚拟盘*.vmdk.然后像使用虚拟硬盘一样的使用IDE挂载。 今天主要讲的是板卡直通。PCI passthrough. qnap支持大部分的SATA卡,因此对于挂不上硬盘的玩家来说,使用外置SATA卡挂载是个好选择,老骥伏枥版本里面也不用修改hardware_check文件里面的SATA为IDE 直接打包就一般可以用。 最近国庆折腾了几天,主要是挑战难度,有些板卡挂载,特别是主板板载SATA挂载的时候 直接进入初始化界面 提示找不到硬盘。这种情况也分两种:1.确实qnap不支持板卡,没有驱动 2.没有挂载到指定pcie槽。 检查是否没有驱动的笨方法是,进入初始化界面提示找不到硬盘的时候使用SSH登陆后台,然后ls -al /dev/sd* , 看看硬盘是否完全识别不到。 如果里面只有启动盘,对不起,我也不懂怎么编译驱动,这个问题留给其他大神吧。 今天要说的是,明明有驱动支持,但还是挂载不到的情形。 我使用的是Dell T630服务器主板,板载c610SATA卡。在kvm中可以直接直通,在ESXI中,一直是显示的灰色,我原本以为灰色没办法直通,后来网上找教程。发现了直通的方法。SSH进入esxi后台lspci -n 找到SATA 的厂商和设备编号等。 然后编辑 /etc/vmware/passthru.map文件,可以手动强行直通这个设备。 使用lspci | grep SATA查看你的板载sata设备,然后记住设备的pci槽号码,使用lspci -n后用相应的pci槽号找到厂商编号和型号 # Intel 82579LM Gig NIC can be reset with d3d0 8086 1502 d3d0 default # Intel 82598 10Gig cards can be reset with d3d0 8086 10b6 d3d0 default 8086 10c6 d3d0 default 8086 10c7 d3d0 default 8086 10c8 d3d0 default 8086 10dd d3d0 default # Broadcom 57710/57711/57712 10Gig cards are not shareable 14e4 164e default false 14e4 164f default false 14e4 1650 default false 14e4 1662 link false # Qlogic 8Gb FC card can not be shared 1077 2532 default false # LSILogic 1068 based SAS controllers 1000 0056 d3d0 default 1000 0058 d3d0 default # NVIDIA 10de ffff bridge false # SATA 8086 8d62 d3d0 false 8086 8d02 d3d0 false 看这个表,8086是intel代表,8d62和8d02代表两个板载sata卡的型号, 其他d3d0 和 false照填。 填好这个文件保存之后重启,这个设备就将不再灰色,可以用web client界面设置直通了。 直通给设备之后还有坑。基本有两个, 1.需要修改启动盘里面的initrd.boot文件中间包含的/etc/model.conf. 这个如果对老骥伏枥教程熟悉的同学应该知道,使用母盘,挂载sda2分区,拷贝/mnt/sda2/boot/initrd.boot 然后unzip和 cpio解包, 修改完了再原路打包拷贝回去。 这个文件是硬盘挂载的关键,里面标注的pci槽必须和虚拟机里面相应sata或者ide设备的槽位一致。 比较简单的方法是使用老骥伏枥的母盘,确实是非常好用的工具,我用来修改了非老骥伏枥教程里面的o大出品的八平台中秋版等固件,也是一样好用。 使用母盘的时候,在做固件的时候或者repack的时候先修改hardware_check文件,将里面的“SATA”修改成你目前的挂载方式,如果是ide就改成“IDE” 如果是板载sata卡像我的是C610,为了不让虚拟机其他sata被绑定,可以将“SATA”改为"C610",总之找到一个lspci中显示槽位那一行独一无二的关键字就好, 就能自动打包了。 2.这一步比较难,花了我至少两天时间找到。之前我修改model.conf都能成功,但昨天直通C610板载之后发现修改了model.conf似乎没有效果。 调试了很久才发现。model.conf里面的pci槽位,也就是qnap支持的硬盘控制器必须挂载在primary bus.通俗点说就是前面B00这两个数字必须为0, 这就很麻烦了,必须要修改虚拟机设置,让虚拟机的pci槽重新排位。 比较简单的方式是,修改虚拟机.vmx文件,在其中加入类似pciPassthru0.pciSlotNumber = "16"这样的语句。 对于我的机器,还碰到一个坑是,加入这一行了似乎一点作用都没有。找了很久最后发现,是直通的板载sata卡不是pcie接口,默认是pcie。所以无效 最后的解决办法是在.vmx文件里面再加一行:pciPassthru0.virtualDev = "pci" ,这样保证板卡是以pci方式启动。槽位得到了修改。 这些全部搞完遇到了最后一个大坑。esxi6.5的bug: 目前的情况是,只要虚拟机文件.vmx里面有pciPassthru0.virtualDev = "pci"这一行,在esxi浏览器界面里面查看和修改虚拟机的时候就会crash.需要重新reload页面。 不过没关系,只是不能修改而已,启动关闭都正常。所以修改好所有虚拟机配置,最后加入这一样。需要的时候去掉这一行修改,再重新加回来。 我第一次写教程。没有截图。希望大家体谅。 |
想了解下,
如果我想讓ESXi上的黑Q額外再支援直通pci-e的4口 SATA擴充卡 (例如88se9215), 也就是我已經讓QNAP的系統安裝在VMDK上,但我想另接一張直通的SATA卡去直讀硬盤, 是否只要修改vmx就好? 怎麼改? 謝謝 |
m735459 发表于 2018-10-13 22:12 只改vmx不够,如果直通sata卡,不用改vmx,只需要修改model.conf文件,方法是使用老骥伏枥的母盘,将initrd.boot解压出来,修改完model.conf再打包回去,如果不会,可以用母盘重新装一次系统,将sata修改为你那个sata卡唯一的一个字符串,使用lspci命令先看,可以修改成例如88se9215 |