在启动时禁用以太网硬件设备

在启动时禁用以太网硬件设备

要在我的笔记本电脑上的 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 规则的更多示例和附加信息。

相关内容