![lspci 返回“无法打开 /sys/bus/pci/devices/xxxxx/resource:没有此文件或目录”](https://linux22.com/image/1147317/lspci%20%E8%BF%94%E5%9B%9E%E2%80%9C%E6%97%A0%E6%B3%95%E6%89%93%E5%BC%80%20%2Fsys%2Fbus%2Fpci%2Fdevices%2Fxxxxx%2Fresource%EF%BC%9A%E6%B2%A1%E6%9C%89%E6%AD%A4%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%E2%80%9D.png)
我的 MS Azure(NV6 系列)中的 Ubuntu 16.10 服务器 VM 突然因未知原因(不是我造成的)出现故障,我不得不重新启动它,当它恢复在线时,我却无法再使用机器上的 GPU。
nvidia-smi 应用程序冻结。
该命令lspci
产生
lspci: Cannot open /sys/bus/pci/devices/7ec1:00:00.0/resource: No such file or directory
当然,那条路(不再存在?)是存在的。真正存在的是,
$: ls /sys/bus/pci/devices/
0000:00:00.0/ 0000:00:07.0/ 0000:00:07.1/ 0000:00:07.3/ 0000:00:08.0/ b717ec1:00:00.0/
通过谷歌搜索,我找到了一些与我类似的问题,其中很多都是在过去 24 小时内被问到的,比如这个。
这可能是由于 Ubuntu 或 Azure 造成的,我不知道这个问题的根源是什么或如何解决它。
有人有主意吗?
答案1
我遇到了同样的问题(使用 Azure NC24 实例),经过几个小时的努力,我找到了这篇文章并决定向 Microsoft 提交支持请求。他们告诉我的是:
Canonical 似乎最近发布了适用于 Ubuntu 16.04 的内核 4.4.0-75,这对 NC 系列虚拟机上的 Tesla GPU 产生了不利影响。安装 4.4.0-75 会破坏目前建议在这些系统上使用的 NVIDIA CUDA 驱动程序 8.0.61-1 版本,导致 nvidia-smi 不显示适配器,并且 lspci 返回类似于以下内容的错误:
root@pd-nvtest2:~# lspci lspci: Cannot open /sys/bus/pci/devices/2baf:00:00.0/resource: No such file or directory
他们建议备份操作系统驱动器,运行
apt-get remove linux-image-4.4.0-75-generic
进而
update-grub
重启后它应该可以正常工作了!至少这样做可以修复 lspci 输出,我仍然需要修复一些 CUDA 问题,但那是早期调试尝试的结果。
答案2
这可能是由于您已停止(释放)Azure VM,然后再次启动VM。根据[1],当您停止(释放)然后再次启动VM时,硬件IP(如gpu,cpu)已更改。但Ubuntu系统尚未针对新硬件(如gpu,cpu)IP地址进行更新。因此,lspci会告诉您无法打开某些与硬件ip地址相关的文件夹。
答案3
在 Azure VM 上,这似乎是 RedHat 7.5 上 LIS 的一个问题,更新 VM 的 Azure LIS 应该可以解决该问题。
wget https://aka.ms/lis
tar xvzf lis
cd LISISO
sudo ./install.sh
sudo reboot