Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483193
  • 博文数量: 140
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 650
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-11 19:00
文章存档

2015年(5)

2014年(135)

分类: LINUX

2014-03-18 23:25:21

        PXE工作记录:PXE网络安装的方法,对于大批量的安装机器实在是很方便。在Windows下有现成的搭建PXE环境的绿色工具,名称为:,只限于对Linux软件的安装。
       一般安装完以后,如果硬盘(电子盘、STAT盘)和前插板相对保持固定搭配,那么一切都没问题。但是如果硬盘换了前插板,那么一般会遇到下面的问题:
插上网线的网卡的指示灯不亮,于是执行 service network restart,这时会发现有failed的信息,大致意思是:某个网卡没有启动起来。
       后来在网上看这篇文章,
#!/bin/bash
02 #update:2013-02-25
03 #author:ihuotui
04 #version 0.1
05  
06 cdate=$(date '+%Y%m%d')
07 num=$(ifconfig -a | grep eth | wc -l)
08 echo "ethX=" $num >> ethX
09   
10 for ((n=1;n<${num};n++))
11     do
12   
13        if [ -e /etc/sysconfig/network-scripts/ifcfg-eth${n} ] ; then
14         
15            sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth${n}
16            ifconfig -a | grep "eth${n}" | awk '{print "HWADDR=\""$5"\""}' >> /etc/sysconfig/network-scripts/ifcfg-eth${n}   
17               
18       else
19  
20            touch /etc/sysconfig/network-scripts/ifcfg-eth${n}
21            ifconfig -a | grep "eth${n}" | awk '{print "HWADDR=\""$5"\""}' >> /etc/sysconfig/network-scripts/ifcfg-eth${n}
22            echo NM_CONTROLLED="\"yes\"" >> /etc/sysconfig/network-scripts/ifcfg-eth${n}
23            echo ONBOOT="\"yes\"" >> /etc/sysconfig/network-scripts/ifcfg-eth${n}
24            echo TYPE="\"Ethernet\"" >> /etc/sysconfig/network-scripts/ifcfg-eth${n}
25            echo BOOTPROTO="\"dhcp\"" >> /etc/sysconfig/network-scripts/ifcfg-eth${n}
26            echo UUID="\"2460e474-fad8-4b46-baba-da6f45ae158"${n}"\"" >> /etc/sysconfig/network-scripts/ifcfg-eth${n}
27            echo DEVICE="\"eth"${n}"\"" >> /etc/sysconfig/network-scripts/ifcfg-eth${n}
28             
29            continue
30        fi
31     done
         其实,网上也有很多人说了该怎么做。
          1、 删除该文件 /etc/udev/rules.d/70-persistent-net.rules。该文件的第一句解释就是:This file was automatically generated。所以删除了以后也会自动生成。它里面存放了每个网口的真实MAC(换了板卡,前板卡上面的MAC地址就发生了改变),以及网口名称地址. 这也是最重要的两个信息。删除的目的就是为了更新文件中保存的信息
         2、 修改/etc/sysconfig/network-scripts/ifcfg-eth*文件中的内容,那么到底要修改成什麽样子呢? 那么上面的脚本告诉了该怎么办.比如:HWADDR、TYPE、DEVICE等.(个人只写了这几项)
     3、
看上面的脚本,有两个地方不是很明白:首先UUID的值是如何获取到的,这个命令nmcli con可以获得UUID,抽时间看看它是干啥的;其次,这个脚本有更改的空间。我遇到的问题就是eth0 eth1 eth2 eth3  eth8 ... 号码并不是连续来的,所以先统计网卡个数num,然后再从0到num挨个进行配置,会出错。还有一个地方的bug是,ifconfig -a | grep "eth${n}" 应该是ifconfig -a | grep "eth${n} "注意后面有个空格,因为当时我的那个板卡上有eth1,也有eth10、eth11. 
    4、想着是不是能用Python写个更加健壮的程序。


       编写的网络程序在移植到板卡上时,注意绑定问题。即个人机上也许只有一个网卡,默认情况下一般都会绑定到该网卡。但是在板卡上会有多个网卡,它绑定的网卡并非是你想绑定的网卡;这在绑定期间是不会出问题的,往往会在应用该程序时问题才会显露。
       今天遇到的另一个问题是rpm包的安装。问题一:没法联网,需要下载软件。但是不同的软件包是针对的不同平台不同操作系统的,libpcap-devel-1.4.0- 1.20130826git2dbcaa1. el6.x86_64.rpm 比如在下载软件包的时候要指定:寻找 x86_64平台下的centos 6.4操作系统的软件包。libpcap-1.4.0-1.20130826git2dbcaa1.el6.x86_64.rpm 这是配套的RPM包。问题二:安装libpcpa时已经存在该数据包? 解决办法就是rpm -e . 还好只有一个tcpdump依赖于它,于是果断把它卸载掉。再一次安装时,两个数据包都安装成功了。问题三:也是刚刚想起来的,就是如何能保证libpcap-devel不再依赖其它数据包,rpm -ivh --test rpm包.
     今天遇到的第三个问题pkg-config问题,这个网上一般都有,但是不争气的脑子没记住。又多花时间了。 记住:查找pkg-config的位置信息,export PKG_CONFIG_PATH
=位置信息。
     今天遇到的第四个问题源代码移植问题,比如源代码中有#ifdef 。。,如何才能使用这里面的内容呢?方法一:自己在主函数中加个#define ,随之而来的就是make出现各种错误,一般是找不到某些软件包,但其实它们已经安装在自己的机子上了,如果继续做下去,面临的是修改Makefile文件。。。。。方法二:仔细查看#ifdef 的宏,判断一下它是做什么的,然后在./config --help | grep key(不一定是define后面的宏,但是肯定有联系),试着找着,发现如果有--enbale-xxx选项,那么就重新,./configure --enable-xxxx; make; make install 等操作。

阅读(1268) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~