1.lspci -knn |grep Eth -A 3查看一共有几个网卡及驱动
root@zhang-PC:/etc/udev/rules.d# lspci -knn |grep Eth -A 3
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Subsystem: Lenovo RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [17aa:382f]
Kernel driver in use: r8169
Kernel modules: r8169
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader [10ec:522a] (rev 01)
2.以上述电脑为例,只有一个网卡,且驱动为r8169
现在我们进入/sys/bus/pci/drivers/r8169/这个目录,查看下述文件
zhang@zhang-PC:/sys/bus/pci/drivers/r8169$ ls
0000:02:00.0 bind module new_id remove_id uevent unbind
上面输出结果0000:02:00.0就是我们网卡的设备号,bind和unbind为驱动加载和卸载
3.我们现在只要执行echo 0000:02:00.0(网卡设备号) > unbind就可以卸载0000:02:00.0这个设备的驱动
root@zhang-PC:/sys/bus/pci/drivers/r8169# echo 0000:02:00.0 > unbind
root@zhang-PC:/sys/bus/pci/drivers/r8169# lspci -knn |grep Eth -A 3
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Subsystem: Lenovo RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [17aa:382f]
Kernel modules: r8169
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader [10ec:522a] (rev 01)
Subsystem: Lenovo RTS522A PCI Express Card Reader [17aa:382f]
root@zhang-PC:/sys/bus/pci/drivers/r8169#
上述输出结果可知驱动已卸载,且ip a或者ifconfig -a 都看不见这块网卡了,如果需要再启用,可以echo 0000:02:00.0 > bind再加载设备驱动重新启用