centos6下的網絡卡的uuid
centos6環境取樣:
[root@fp-web-133 network-scripts]# cat /etc/redhat-release CentOS release 6.4 (Final)
[root@fp-web-133 network-scripts]# uname -r
2.6.32-358.el6.x86_64
網絡卡配置檔案目錄/etc/sysconfig/network-scripts
ifcfg-eth0 ifdown ifdown-ippp ifdown-post ifdown-sit ifup-aliases ifup-ippp ifup-plip ifup-ppp ifup-tunnel net.hotplug ifcfg-eth1 ifdown-bnep ifdown-ipv6 ifdown-ppp ifdown-tunnel ifup-bnep ifup-ipv6 ifup-plusb ifup-routes ifup-wireless network-functions ifcfg-lo ifdown-eth ifdown-isdn ifdown-routes ifup ifup-eth ifup-isdn ifup-post ifup-sit init.ipv6-global network-functions-ipv6
檢視網絡卡配置檔案, 都沒有uuid資訊,那麼他在哪呢?
[root@fp-web-133 class]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp [root@fp-web-133 class]# cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp
幾個重要的目錄
/sys/class/net/
/sys/class/dmi //重要
/sys/devices/virtual/net/
在centos6下很多工具又用不上查網絡卡uuid?
[root@fp-web-133 id]# cat /sys/class/dmi/id/product_uuid 42222F9B-F5F5-D864-9C96-6CC450AE96B8
//uuid 是包含 [0-9]、[a-f] 的,本質上是十六進位制的數字
lo網路迴環
[root@fp-web-133 id]# ls /sys/devices/
cpu LNXSYSTM:00 pci0000:00 platform pnp0 software system tracepoint virtual
[root@fp-web-133 id]# ls /sys/devices/system
clocksource cpu i8237 i8259 ioapic irqrouter lapic machinecheck memory node timekeeping
[root@fp-web-133 id]# ls /sys/devices/system/cpu
cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 cpu6 cpu7 cpufreq cpuidle kernel_max offline online possible present sched_mc_power_savings
[root@fp-web-133 network-scripts]# ls /sys/devices/virtual/net/ lo
進入到/sys/class檢視一下
[root@fp-web-133 network-scripts]# cd /sys/class [root@fp-web-133 class]# ls backlight bsg dmi hidraw input mem mtd pcmcia_socket regulator scsi_disk spi_host tty vtconsole bdi cpuid firmware hwmon leds misc net power_supply rtc scsi_generic spi_transport usbmon watchdog block dma graphics i2c-adapter mdio_bus msr pci_bus raw scsi_device scsi_host thermal vc
[root@fp-web-133 id]# pwd
/sys/class/dmi/id
[root@fp-web-133 id]# ls
bios_date board_asset_tag board_vendor chassis_serial chassis_version product_name product_version sys_vendor
bios_vendor board_name board_version chassis_type modalias product_serial smbios_version uevent
bios_version board_serial chassis_asset_tag chassis_vendor power product_uuid subsystem
檢視網絡卡的uuid
[root@fp-web-133 id]# ll
total 0
-r--r--r-- 1 root root 4096 Mar 24 21:12 bios_date
-r--r--r-- 1 root root 4096 Mar 24 21:12 bios_vendor
-r--r--r-- 1 root root 4096 Mar 24 21:12 bios_version
-r--r--r-- 1 root root 4096 Mar 24 21:12 board_asset_tag
-r--r--r-- 1 root root 4096 Mar 24 21:12 board_name
-r-------- 1 root root 4096 Mar 24 21:12 board_serial
-r--r--r-- 1 root root 4096 May 27 2021 board_vendor
-r--r--r-- 1 root root 4096 Mar 24 21:12 board_version
-r--r--r-- 1 root root 4096 Mar 24 21:12 chassis_asset_tag
-r-------- 1 root root 4096 Mar 24 21:12 chassis_serial
-r--r--r-- 1 root root 4096 Mar 24 21:12 chassis_type
-r--r--r-- 1 root root 4096 Mar 24 21:12 chassis_vendor
-r--r--r-- 1 root root 4096 Mar 24 21:12 chassis_version
-r--r--r-- 1 root root 4096 Mar 24 21:12 modalias
drwxr-xr-x 2 root root 0 Mar 24 21:12 power
-r--r--r-- 1 root root 4096 Mar 24 21:12 product_name
-r-------- 1 root root 4096 Mar 24 21:12 product_serial
-r-------- 1 root root 4096 Mar 24 21:12 product_uuid
-r--r--r-- 1 root root 4096 Mar 24 21:12 product_version
-r--r--r-- 1 root root 4096 Mar 24 21:12 smbios_version
lrwxrwxrwx 1 root root 0 Mar 24 21:12 subsystem -> ../../../../class/dmi
-r--r--r-- 1 root root 4096 May 27 2021 sys_vendor
-rw-r--r-- 1 root root 4096 May 27 2021 uevent
uuid是核心生成的,那它在哪裡生成呢 ?
E:\linux核心\linux-2.6.38.5\linux-2.6.38.5\drivers\firmware\dmi-id.c static int __init dmi_id_init(void) { int ret; if (!dmi_available) return -ENODEV; dmi_id_init_attr_table(); ret = class_register(&dmi_class); if (ret) return ret; dmi_dev = kzalloc(sizeof(*dmi_dev), GFP_KERNEL); if (!dmi_dev) { ret = -ENOMEM; goto fail_class_unregister; } dmi_dev->class = &dmi_class; dev_set_name(dmi_dev, "id"); dmi_dev->groups = sys_dmi_attribute_groups; ret = device_register(dmi_dev); if (ret) goto fail_free_dmi_dev; return 0; fail_free_dmi_dev: kfree(dmi_dev); fail_class_unregister: class_unregister(&dmi_class); return ret; } arch_initcall(dmi_id_init);
SMBIOS(System Management BIOS)是主機板或系統製造者以標準格式顯示產品管理資訊所需遵循的統一規範
https://www.dmtf.org/cn/standards/smbios
https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.0.0.pdf 這裡裡面有具體的闡述它的構成.
如果是內建的網絡卡,DMI表與BIOS一起硬編碼到儲存器中(主機板上帶有BIOS的flash晶片),你僅僅通過使用核心函式從DMI表中讀取這些值而已,通過訪問這些檔案.
但是由於我們很多時候都是雲主機的方式使用,所以這個值是可以更改的.
檢視一下網絡卡的一些資訊
[root@fp-web-133 id]# cat board_name | grep eth0 [root@fp-web-133 id]# dmesg | grep eth0 e1000 0000:02:00.0: eth0: (PCI:66MHz:32-bit) 06:3e:1e:01:20:f4 e1000 0000:02:00.0: eth0: Intel(R) PRO/1000 Network Connection e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None eth0: no IPv6 routers present e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None ADDRCONF(NETDEV_UP): eth0: link is not ready ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready eth0: no IPv6 routers present e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None e1000 0000:02:00.0: eth0: TSO is Disabled e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None