要在我的笔记本电脑上的 Qubes 中启动名为“sys-net”的虚拟机,需要在文件中写入“1”
echo -n "1" > /sys/bus/pci/devices/0000\:04\:00.0/remove
另外 0000:04:00.0 和 0000:04:00.1 是冲突的,需要在每次启动笔记本电脑后首先删除。
然后网络启动并正常工作。有一些信息输入
$ lspci | grep -i eth
04:00.1 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev12)
$ find /sys -name *04:00.0
/sys/bus/pci/devices/0000:04:00.0
/sys/bus/pci/drivers/rtsx_pci/0000:04:00.0
/sys/devices/pci0000:00/0000:00:1d.3/0000:04:00.0
$ find /sys -name *04:00.1
/sys/bus/pci/devices/0000:04:00.1
/sys/bus/pci/drivers/pciback/0000:04:00.1
/sys/devices/pci0000:00/0000:001d.3/0000:04:00.1
如何将其转换为 systemd 脚本以在启动时运行它?它只是暂时有效。重启后网络设备又出现了。
答案1
您可以尝试使用udev
规则。
例如,您可以创建一个/etc/udev/rules.d/99-disable-eth.rules
包含以下内容的文件:
ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="pci", RUN+="/bin/sh -c 'echo 1 >/sys/bus/pci/devices/0000\:04\:00.0/remove'"
您可以随意进一步自定义它以添加更多具体项目,例如供应商属性、接口名称等。
看一眼http://www.reactivated.net/writing_udev_rules.html有关编写 udev 规则的更多示例和附加信息。