從 CentOS 5.5 中精簡出屬於本身的專屬Linux (三)

前言linux

在上一篇博客中(http://freeloda.blog.51cto.com/2033581/1221075),咱們添加了關機與重啓功能,給主機添加了主機名,也實如今 3 級級別下運行 tserver 測試腳本,下面咱們來講一下,主機增長網絡功能  ^_^ ……web

1. 定義系統啓動過程當中,顯示服務啓動信息的顏色腳本vim

顯示

從上圖中咱們看到,咱們從新啓動網卡時,右邊會顯示 [   ok   ] 的綠色提示符,在上一博客中咱們只簡單的顯示 tserver start …… 提示符如今不雅,下面咱們就來修飾一下!bash

1)、編寫 functions 腳本 網絡

[root@localhost ~]# vim functions
#!/bin/bash
#
SCREEN=`stty -F /dev/console size 2>/dev/null`
COLUN=${SCREEN#* }
[ -z $COLUN ] && COLUN=80
SPA_COL=$[$COLUN-14]
RED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
BLUE='\033[34m'
RONMAL='\033[0m'
success() {
string=$1
RT_SPA=$[$SPA_COL-${#string}]
echo -n "$string"
for I in `seq 1 $RT_SPA`; do
  echo -n " "
done
echo -e "[   ${GREEN}OK${RONMAL}   ]"
}
failure() {
string=$1
RT_SPA=$[$SPA_COL-${#string}]
echo -n "$string"
for I in `seq 1 $RT_SPA`; do
  echo -n " "
done
echo -e "[ ${RED}FAILED${RONMAL} ]"
}

2)、給腳本增長執行權限ide

[root@localhost ~]# chmod +x functions

3)、移植 seq 命令測試

[root@localhost ~]# sh addcom.sh
Your command: seq 
/usr/bin/seq 
copy /usr/bin/seq finished.

4)、而後在tserver等服務腳本內調用 functions 腳本,便可實現顯示服務啓動的信息!spa

#!/bin/bash
#
# chkconfig: 35 55 44
# description: chris service
#
#調用腳本
. /etc/init.d/functions
FILE=/var/lock/subsys/`basename $0`
prog=`basename $0`
start() {
echo "starting `basename $0`..."
touch $FILE
[ $? -eq 0 ] && success "Starting $prog" || failure "Starting $prog"
}
stop() {
echo "stopping `basename $0`..."
rm -rf $FILE
[ $? -eq 0 ] && success "Stopping $prog" || failure "Stopping $prog"
}
status() {
if [ -e $FILE ]; then
   echo "Running.."
else
   echo "stopping..."
fi
}
usage() {
echo "please insernt like start|stop|restart|status"
}
case $1 in
start)
start ;;
stop)
stop ;;
restart)
stop
start
;;
status)
status
;;
*)
usage
exit 1
;;
esac

5)、測試效果debug

開機效果:3d

效果1

關機效果:

效果2

有效果了吧,嘿嘿!下面咱們來增長網絡功能!


2. 增長網絡功能


下面是重點,不少朋友沒作成功都是這個緣由!查看網卡信息,你本身的虛擬機支持的網卡與驅動。

具休查處方法以下:

1). 查看物理網卡的驅動信息

[root@localhost ~] # ethtool -i eth0
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version:
bus-info: 0000:02:00.0


2). 查看網卡的物理硬件型號

[root@localhost ~] # lspci | grep -i ethernet
02:00.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)


3).  查看該設備的模塊信息

[root@localhost ~] # modinfo e1000
filename:       /lib/modules/2.6.32-279.14.1.el6.i686/kernel/drivers/net/e1000/e1000.ko
version:        7.3.21-k8-NAPI
license:        GPL
description:    Intel(R) PRO/1000 Network Driver
author:         Intel Corporation, <linux.nics@intel.com>
srcversion:     1B96AEAA963BB7C0044BA00


案例以下:(我這裏說兩個例子,一個是RedHat 5.8 一個是CentOS 5.5)

ReadHat 5.8 環境

1)、 虛擬機的網卡

查找 pcnet32 模塊

[root@localhost ~]# modinfo pcnet32
filename:       /lib/modules/2.6.18-194.el5/kernel/drivers/net/pcnet32.ko 
license:        GPL 
description:    Driver for PCnet32 and PCnetPCI based ethercards 
author:         Thomas Bogendoerfer 
srcversion:     F81443556AAE169CBF80F55 
alias:          pci:v00001023d00002000sv*sd*bc02sc00i* 
alias:          pci:v00001022d00002000sv*sd*bc*sc*i* 
alias:          pci:v00001022d00002001sv*sd*bc*sc*i* 
depends:        mii 
vermagic:       2.6.18-194.el5 SMP mod_unload gcc-4.1 
parm:           debug:pcnet32 debug level (int) 
parm:           max_interrupt_work:pcnet32 maximum events handled per interrupt (int) 
parm:           rx_copybreak:pcnet32 copy breakpoint for copy-only-tiny-frames (int) 
parm:           tx_start_pt:pcnet32 transmit start point (0-3) (int) 
parm:           pcnet32vlb:pcnet32 Vesa local bus (VLB) support (0/1) (int) 
parm:           options:pcnet32 initial option setting(s) (0-15) (array of int) 
parm:           full_duplex:pcnet32 full duplex setting(s) (1) (array of int) 
parm:           homepna:pcnet32 mode for 79C978 cards (1 for HomePNA, 0 for Ethernet, default Ethernet (array of int) 
module_sig:     883f3504bb6456c596239a507de7fd112a65a09f5faef1f984967c867e1149c0d1cfb295a3d944f009f528a8f96e85f55b72b3eb94966d22deef2fa7ea2 
[root@localhost ~]#

查找 mii 模塊

[root@localhost ~]# modinfo mii
filename:       /lib/modules/2.6.18-194.el5/kernel/drivers/net/mii.ko
license:        GPL
description:    MII hardware support library
author:         Jeff Garzik <jgarzik@pobox.com>
srcversion:     16DCEDEE4B5629C222C352D
depends:    
vermagic:       2.6.18-194.el5 SMP mod_unload gcc-4.1
module_sig:     883f3504bb6456c596239a507de7fd112e5b09f55847ebc59e54b97cff863c8097bf32f8f320e90a0a5a1b8a45b5f58a468d592bde47be53a7ca7f8
[root@localhost ~]#

2)、建立相應目錄

[root@localhost ~]# cd /mnt/sysroot/
[root@localhost sysroot]# ls ./
lib/        lib64/    
[root@localhost sysroot]# mkdir ./lib/modules

3)、複製相應的模塊

[root@localhost sysroot]# cp -p /lib/modules/2.6.18-194.el5/kernel/drivers/net/pcnet32.ko ./lib/modules/
[root@localhost sysroot]# cp -p /lib/modules/2.6.18-194.el5/kernel/drivers/net/mii.ko ./lib/modules/
[root@localhost sysroot]# ls ./lib/modules/ 
mii.ko  pcnet32.ko 
[root@localhost sysroot]#

4)、修改 rc.sysinit 文件

[root@localhost sysroot]# vim ./etc/rc.d/rc.sysinit

#增長網絡功能模塊    

echo "insmod pcnet32 mode" 
/sbin/insmod /lib/modules/mii.ko 
/sbin/insmod /lib/modules/pcnet32.ko

5)、移植相關命令

[root@localhost ~]# sh addcom.sh
Your command: insmod 
/sbin/insmod 
copy /sbin/insmod finished.

6)、增長網卡配置文件

[root@localhost ~]# mkdir -p /mnt/sysroot/etc/sysconfig/network-scripts
[root@localhost ~]# vim /mnt/sysroot/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.18.10
NETMASK=255.255.255.0
GATEWAY=192.168.18.254
ONBOOT=yes
:wq

7)、建立相對應腳本

[root@localhost ~]#  vim /mnt/sysroot/etc/init.d/network
#!/bin/bash
#
# chkconfig: 35 09 90
# description:network servce
. /etc/rc.d/init.d/functions
CONF=/etc/sysconfig/network-scripts/ifcfg-eth0
. $CONF
start () {
NETMASK=16
 ifconfig eth0 $IPADDR/$NETMASK up
 [ -z $GATEWAY ] && route add default gw $GATEWAY
}
stop() {
ifconfig eth0 down
}
status () {
 ifconfig eth0
}
usage() {
ehco "like start,stop,restart"
}
case $1 in
start)
start
success "config network eth0 "
;;
stop)
stop
success "stop network eth0"
;;
restart)
 stop
 Start
 success "restart network eth0"
 ;;
status)
 status
 ;;
*)
usage
;;
esac

8)、增長執行權限

[root@localhost ~]# chmod +x /mnt/sysroot/etc/init.d/network

9)、移植 ifconfig 命令

[root@localhost ~]# sh addcom.sh
Your command: ifconfig
/sbin/ifconfig
copy /sbin/ifconfig finished.

10)、建立軟連接

[root@localhost rc0.d]# ln -sv ../init.d/network K90network
create symbolic link `K90network' to `../init.d/network'
[root@localhost rc0.d]# ls
K44tserver  K90network  S99halt
[root@localhost rc6.d]# ln -sv ../init.d/network K90network
create symbolic link `K90network' to `../init.d/network'
[root@localhost rc6.d]# ls
K44tserver  K90network  S99reboot
[root@localhost rc3.d]# ln -sv ../init.d/network S09network
create symbolic link `S09network' to `../init.d/network'
[root@localhost rc3.d]# ls
S09network  S55tserver

11)、測試效果以下

123

CentOS 5.5 環境,這個是我本身測試的環境,照着作的朋友請注意!與上面不一樣的是,我這裏的網卡和驅動以下圖,

1)、查看網卡與驅動類型

2)、複製相關驅動到 /lib/modules 下以下圖,

3)、修改 rc.sysinit 文件,以下圖

4)、移植相關命令

[root@localhost ~]# sh addcom.sh
Your command: insmod 
/sbin/insmod
copy /sbin/insmodfinished.

5)、增長網卡配置文件

[root@localhost ~]# mkdir -p /mnt/sysroot/etc/sysconfig/network-scripts
[root@localhost ~]# vim /mnt/sysroot/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.18.10
NETMASK=255.255.255.0
GATEWAY=192.168.18.254
ONBOOT=yes
:wq

6)、建立相對應腳本

[root@localhost ~]#  vim /mnt/sysroot/etc/init.d/network
#!/bin/bash
#
# chkconfig: 35 09 90
# description:network servce
. /etc/rc.d/init.d/functions
CONF=/etc/sysconfig/network-scripts/ifcfg-eth0
. $CONF
start () {
NETMASK=16
ifconfigeth0 $IPADDR/$NETMASK up
[ -z $GATEWAY ] && route add default gw $GATEWAY
}
stop() {
ifconfigeth0 down
}
status () {
ifconfigeth0
}
usage() {
ehco "like start,stop,restart"
}
case$1 in
start)
start
success "config network eth0 "
;;
stop)
stop
success "stop network eth0"
;;
restart)
stop
Start
success "restart network eth0"
;;
status)
status
;;
*)
usage
;;
esac

7)、增長執行權限

[root@localhost ~]# chmod +x /mnt/sysroot/etc/init.d/network

8)、移植 ifconfig 命令

[root@localhost ~]# sh addcom.sh
Your command: ifconfig
/sbin/ifconfig
copy /sbin/ifconfigfinished.

9)、建立軟連接

[root@localhost rc0.d]# ln -sv ../init.d/network K90network
create symbolic link `K90network' to `../init.d/network'
[root@localhost rc0.d]# ls
K44tserver  K90network  S99halt
[root@localhost rc6.d]# ln -sv ../init.d/network K90network
create symbolic link `K90network' to `../init.d/network'
[root@localhost rc6.d]# ls
K44tserver  K90network  S99reboot
[root@localhost rc3.d]# ln -sv ../init.d/network S09network
create symbolic link `S09network' to `../init.d/network'
[root@localhost rc3.d]# ls
S09network  S55tserver

10)、測試效果以下

IP地址順利的配置上去了,嘿嘿!

11)、相關操做演示以下

爲lo配置IP地址,

ping 測試,

因爲個人網卡是橋接的,下面咱們測試一下,ping網關

全部測試結束,嘿嘿!有興趣的朋友能夠嘗試的作一下!

相關文章
相關標籤/搜索