PXE工作记录:PXE网络安装的方法,对于大批量的安装机器实在是很方便。在Windows下有现成的搭建PXE环境的绿色工具,名称为:,只限于对Linux软件的安装。
一般安装完以后,如果硬盘(电子盘、STAT盘)和前插板相对保持固定搭配,那么一切都没问题。但是如果硬盘换了前插板,那么一般会遇到下面的问题:
插上网线的网卡的指示灯不亮,于是执行 service network restart,这时会发现有failed的信息,大致意思是:某个网卡没有启动起来。
后来在网上看这篇文章,
06
|
cdate=$(date '+%Y%m%d')
|
07
|
num=$(ifconfig -a | grep eth | wc -l)
|
08
|
echo "ethX=" $num >> ethX
|
10
|
for ((n=1;n<${num};n++))
|
13
|
if [ -e /etc/sysconfig/network-scripts/ifcfg-eth${n} ] ; then
|
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}
|
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}
|
其实,网上也有很多人说了该怎么做。
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 等操作。
阅读(1436) | 评论(0) | 转发(1) |