[root@localhost ~]# virsh list -bash: /usr/bin/virsh: No such file or directory
时间: 2023-11-21 08:19:00 浏览: 252
这个错误提示是因为系统中没有安装 virsh 命令。Virsh 是一个基于 libvirt 库的命令行工具,用于管理虚拟机。你需要先安装 libvirt 和相关的包,然后再安装 virsh 命令。如果你使用的是 CentOS 或者 Red Hat 等基于 RPM 的发行版,可以通过以下命令安装:
```
sudo yum install libvirt libvirt-client
```
如果你使用的是 Ubuntu 或者 Debian 等基于 Debian 的发行版,可以通过以下命令安装:
```
sudo apt-get install libvirt-bin
```
安装完成后,再通过以下命令安装 virsh 命令:
```
sudo yum install libvirt-client
```
或者
```
sudo apt-get install libvirt-clients
```
安装完成后,就可以使用 virsh 命令了。
相关问题
[root@localhost ~]# [Service]ExecStart=/usr/sbin/libvirtd -l -bash: [Service]ExecStart=/usr/sbin/libvirtd: No such file or directory
抱歉,我的回答有误。你不需要编辑 `libvirtd.service` 文件,该文件是 systemd 服务文件,不应该手动修改。请执行以下命令重置该文件:
```
systemctl edit libvirtd.service
```
然后在编辑器中输入以下内容:
```
[Service]
ExecStart=
ExecStart=/usr/sbin/libvirtd -l
```
保存并关闭编辑器。然后重新启动 libvirtd 服务并尝试使用 virsh 命令。
```
systemctl restart libvirtd
virsh list --all
```
希望这次回答能够帮到你。
root@test-10-1-18-12:/home/test/gpu-burn# udevadm test /sys/class/infiniband/mlx5_7 This program is for debugging only, it does not run any program specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. Trying to open "/etc/systemd/hwdb/hwdb.bin"... Trying to open "/etc/udev/hwdb.bin"... Trying to open "/usr/lib/systemd/hwdb/hwdb.bin"... Trying to open "/lib/systemd/hwdb/hwdb.bin"... Trying to open "/lib/udev/hwdb.bin"... === trie on-disk === tool version: 249 file size: 11124932 bytes header size 80 bytes strings 2374708 bytes nodes 8750144 bytes Load module index Found cgroup2 on /sys/fs/cgroup/, full unified hierarchy Found container virtualization none. Network interface NamePolicy= disabled on kernel command line, ignoring. Loaded timestamp for '/etc/systemd/network'. Loaded timestamp for '/run/systemd/network'. Parsed configuration file /usr/lib/systemd/network/99-default.link Parsed configuration file /usr/lib/systemd/network/73-usb-net-by-mac.link Created link configuration context. Loaded timestamp for '/etc/udev/rules.d'. Loaded timestamp for '/run/udev/rules.d'. Reading rules file: /usr/lib/udev/rules.d/01-md-raid-creating.rules Reading rules file: /etc/udev/rules.d/30-persistent-rdma.rules Reading rules file: /usr/lib/udev/rules.d/39-usbmuxd.rules Reading rules file: /usr/lib/udev/rules.d/40-usb_modeswitch.rules Reading rules file: /usr/lib/udev/rules.d/40-vm-hotadd.rules Reading rules file: /usr/lib/udev/rules.d/50-apport.rules Reading rules file: /usr/lib/udev/rules.d/50-firmware.rules Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules Reading rules file: /usr/lib/udev/rules.d/55-dm.rules Reading rules file: /usr/lib/udev/rules.d/55-scsi-sg3_id.rules Reading rules file: /usr/lib/udev/rules.d/56-dm-mpath.rules Reading rules file: /usr/lib/udev/rules.d/56-dm-parts.rules Reading rules file: /usr/lib/udev/rules.d/56-lvm.rules Reading rules file: /usr/lib/udev/rules.d/58-scsi-sg3_symlink.rules Reading rules file: /usr/lib/udev/rules.d/60-autosuspend.rules Reading rules file: /usr/lib/udev/rules.d/60-block.rules Reading rules file: /usr/lib/udev/rules.d/60-bridge-network-interface.rules Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules Reading rules file: /usr/lib/udev/rules.d/60-drm.rules Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules Reading rules file: /usr/lib/udev/rules.d/60-fido-id.rules Reading rules file: /usr/lib/udev/rules.d/60-input-id.rules Reading rules file: /usr/lib/udev/rules.d/60-multipath.rules Reading rules file: /usr/lib/udev/rules.d/60-open-vm-tools.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-dm.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules Reading rules file: /usr/lib/udev/rules.d/60-rdma-ndd.rules Reading rules file: /usr/lib/udev/rules.d/60-rdma-persistent-naming.rules Reading rules file: /usr/lib/udev/rules.d/60-sensor.rules Reading rules file: /usr/lib/udev/rules.d/60-serial.rules Reading rules file: /usr/lib/udev/rules.d/60-srp_daemon.rules Reading rules file: /usr/lib/udev/rules.d/60-tpm-udev.rules Reading rules file: /usr/lib/udev/rules.d/60-xpmem.rules Reading rules file: /usr/lib/udev/rules.d/61-persistent-storage-android.rules Reading rules file: /usr/lib/udev/rules.d/63-md-raid-arrays.rules Reading rules file: /usr/lib/udev/rules.d/64-btrfs-dm.rules Reading rules file: /usr/lib/udev/rules.d/64-btrfs-zoned.rules Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules Reading rules file: /usr/lib/udev/rules.d/64-md-raid-assembly.rules Reading rules file: /usr/lib/udev/rules.d/64-xorg-xkb.rules Reading rules file: /usr/lib/udev/rules.d/66-azure-ephemeral.rules Reading rules file: /usr/lib/udev/rules.d/66-snapd-autoimport.rules Reading rules file: /usr/lib/udev/rules.d/68-del-part-nodes.rules Reading rules file: /usr/lib/udev/rules.d/69-bcache.rules Reading rules file: /usr/lib/udev/rules.d/69-lvm-metad.rules Reading rules file: /usr/lib/udev/rules.d/69-md-clustered-confirm-device.rules Reading rules file: /usr/lib/udev/rules.d/70-iscsi-network-interface.rules Reading rules file: /usr/lib/udev/rules.d/70-joystick.rules Reading rules file: /usr/lib/udev/rules.d/70-memory.rules Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules Reading rules file: /usr/lib/udev/rules.d/70-open-iscsi.rules Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules Reading rules file: /etc/udev/rules.d/70-snap.snapd.rules Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules Reading rules file: /usr/lib/udev/rules.d/71-nvidia.rules Reading rules file: /usr/lib/udev/rules.d/71-power-switch-proliant.rules Reading rules file: /usr/lib/udev/rules.d/71-seat.rules Reading rules file: /usr/lib/udev/rules.d/71-u-d-c-gpu-detection.rules Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules Reading rules file: /usr/lib/udev/rules.d/73-special-net-names.rules Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules Reading rules file: /usr/lib/udev/rules.d/75-rdma-description.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-broadmobi-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-cinterion-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-dell-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-dlink-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-ericsson-mbm.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-foxconn-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-gosuncn-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-haier-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-huawei-net-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-longcheer-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-mtk-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-nokia-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-qcom-soc.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-qdl-device-blacklist.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-quectel-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-sierra.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-simtech-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-telit-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-tplink-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-ublox-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-x22x-port-types.rules Reading rules file: /usr/lib/udev/rules.d/77-mm-zte-port-types.rules Reading rules file: /usr/lib/udev/rules.d/78-graphics-card.rules Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules Reading rules file: /usr/lib/udev/rules.d/80-debian-compat.rules Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules Reading rules file: /usr/lib/udev/rules.d/80-mm-candidate.rules Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules Reading rules file: /usr/lib/udev/rules.d/80-udisks2.rules Reading rules file: /usr/lib/udev/rules.d/81-net-dhcp.rules Reading rules file: /usr/lib/udev/rules.d/83-mlnx-sf-name.rules Reading rules file: /usr/lib/udev/rules.d/85-hdparm.rules Reading rules file: /usr/lib/udev/rules.d/90-bolt.rules Reading rules file: /usr/lib/udev/rules.d/90-console-setup.rules Reading rules file: /usr/lib/udev/rules.d/90-fwupd-devices.rules Reading rules file: /usr/lib/udev/rules.d/90-ib.rules Reading rules file: /run/udev/rules.d/90-netplan.rules Reading rules file: /usr/lib/udev/rules.d/90-rdma-umad.rules Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules Reading rules file: /usr/lib/udev/rules.d/95-kpartx.rules Reading rules file: /usr/lib/udev/rules.d/95-upower-hid.rules Reading rules file: /usr/lib/udev/rules.d/95-upower-wup.rules Reading rules file: /usr/lib/udev/rules.d/96-e2scrub.rules Reading rules file: /usr/lib/udev/rules.d/99-lxd-agent.rules Reading rules file: /etc/udev/rules.d/99-persistent-rdma.rules Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules Reading rules file: /usr/lib/udev/rules.d/99-vmware-scsi-udev.rules value '[dmi/id]sys_vendor' is 'Giga Computing' value '[dmi/id]sys_vendor' is 'Giga Computing' mlx5_7: /usr/lib/udev/rules.d/75-rdma-description.rules:41 Importing properties from results of builtin command 'hwdb --subsystem=pci' mlx5_7: hwdb modalias key: "pci:v000015B3d00001021sv000015B3sd00000022bc02sc07i00" mlx5_7: sd-device: Created db file '/run/udev/data/+infiniband:mlx5_7' for '/devices/pci0000:c7/0000:c7:01.0/0000:c8:00.0/0000:c9:00.0/0000:ca:00.0/0000:cb:00.0/0000:cc:00.0/infiniband/mlx5_7' DEVPATH=/devices/pci0000:c7/0000:c7:01.0/0000:c8:00.0/0000:c9:00.0/0000:ca:00.0/0000:cb:00.0/0000:cc:00.0/infiniband/mlx5_7 NAME=mlx5_7 ACTION=add SUBSYSTEM=infiniband TAGS=:systemd: CURRENT_TAGS=:systemd: SYSTEMD_WANTS=rdma-ndd.service ID_RDMA_INFINIBAND=1 ID_RDMA_ROCE=1 ID_BUS=pci ID_VENDOR_ID=0x15b3 ID_MODEL_ID=0x1021 ID_PCI_CLASS_FROM_DATABASE=Network controller ID_PCI_SUBCLASS_FROM_DATABASE=Infiniband controller ID_VENDOR_FROM_DATABASE=Mellanox Technologies ID_MODEL_FROM_DATABASE=MT2910 Family [ConnectX-7] USEC_INITIALIZED=162756069 Unload module index Unloaded link configuration context. root@test-10-1-18-12:/home/test/gpu-burn#
### 调试 Linux 系统中 udev 对 Mellanox ConnectX-7 (mlx5_7) 设备的规则处理问题
在调试 Linux 系统中 udev 对 Mellanox ConnectX-7 (mlx5_7) 设备的规则处理问题时,可以按照以下方法进行操作:
#### 1. 检查现有 udev 规则
Mellanox OFED 驱动安装后会创建特定的 udev 规则文件。这些规则通常位于 `/etc/udev/rules.d/` 目录下。例如,`82-net-setup-link.rules` 文件可能包含以下内容[^3]:
```plaintext
SUBSYSTEM=="net", ACTION=="add", ATTR{phys_switch_id}!="", ATTR{phys_port_name}!="", \
IMPORT{program}="/etc/infiniband/vf-net-link-name.sh $attr{phys_port_name} $attr{phys_switch_id}" \
NAME="$env{NAME}", RUN+="/sbin/ethtool -L $env{NAME} combined 4", GOTO="net_setup_skip_link_name"
```
上述规则定义了如何为 Mellanox 网卡分配名称,并设置队列数。
#### 2. 使用 `udevadm` 测试规则
为了验证规则是否正确匹配 mlx5_7 设备,可以使用 `udevadm test` 命令。例如:
```bash
udevadm test /sys/class/net/<interface_name>
```
将 `<interface_name>` 替换为实际的网卡接口名称(如 `ens1f0`)。此命令会输出 udev 在设备添加时执行的所有操作和规则匹配情况。
#### 3. 检查日志信息
通过查看系统日志,可以进一步分析 udev 的行为。使用以下命令检查日志:
```bash
journalctl -k | grep udev
```
如果发现错误或警告信息,可以根据提示调整规则文件。
#### 4. 修改或创建自定义规则
如果默认规则无法满足需求,可以创建自定义规则文件。例如,在 `/etc/udev/rules.d/99-custom-mlx5.rules` 中添加以下内容:
```plaintext
ACTION=="add", SUBSYSTEM=="net", KERNEL=="mlx5*", ENV{ID_NET_NAME_MAC}="eth_custom_$kernel"
```
上述规则为所有 mlx5 网卡分配一个固定的名称前缀 `eth_custom_`[^3]。
#### 5. 重新加载 udev 规则
修改规则文件后,需要重新加载 udev 规则并触发设备重命名:
```bash
udevadm control --reload-rules
udevadm trigger
```
#### 6. 检查 RoCE 功能的影响
如果虚拟机上不需要启用 RoCE 功能,可以通过禁用该功能来减少资源消耗。具体方法是在主机上配置 VF 接口的 RoCE 状态[^1]。例如:
```bash
echo 0 > /sys/class/net/<VF_interface>/roce/enabled
```
#### 7. 热插拔 VF 接口到虚拟机
在虚拟化环境中,可以通过 `virsh` 命令将新添加的 VF 接口热插拔到正在运行的虚拟机中[^2]:
```bash
virsh attach-interface <vm_name> hostdev <PCI_address> --managed --live --config
```
---
阅读全文
相关推荐


