本文中接“linux系统组成之小型RedHat little linux制作二”
1、在rc0、3、6.d内增加相关的连接mkdir rc3.d
cd rc3.d
ln -sv ../init.d/tserver S66tserver
cd rc0.d
ln -sv ../init.d/tserver K33tserver
cd rc6.d
ln -sv ../init.d/tserver K33tserver
修改inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l3:3:wait:/etc/rc.d/rc 3
l6:6:wait:/etc/rc.d/rc 6
1:2345:respawn:/sbin/mingetty --loginprog=/bin/bash tty1
2:2345:respawn:/sbin/mingetty --loginprog=/bin/bash tty2
loginprog运行依赖/bin/sh.把bin下的bash连接为sh即可实现
修改rc.d/rc.sysinit为
#!/bin/bash
#
echo "welecome chris little linux"
2、增加主机名显示
None--代表没有主机名:
mkdir -p etc/sysconfig/network
vim nerwork增加
HOSTNAME=chris.linux
新增etc/fstab文件并配置
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/hda1 /boot ext3 defaults 0 0
/dev/hda2 / ext3 defaults 1 1
让其以读写的方式重新挂载根系统并增加主机名vim inittab
#!/bin/bash
#
echo "welecome chris little linux"
mount -n -o remount:rw /
echo "set the hsotname"
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
[ -z $HOSTNAME -o "$HSOTNAME" == '(none)' ] && HOSTNAME=localhost
/bin/hostname $HOSTNAME
测试如下:
开启虚拟终端:
由于mingetty需要用户登陆,下面利用agetty来进行登陆验证
利用脚步addshell移植agetty命令
修改inittab文件
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l3:3:wait:/etc/rc.d/rc 3
l6:6:wait:/etc/rc.d/rc 6
1:2345:respawn:/sbin/agetty -n -l /bin/bash 38400 tty1
2:2345:respawn:/sbin/agetty -n -l /bin/bash 38400 tty2
Tty 1终端
Tty 2终端
5、定义系统启动过程中显示的服务启动信息的脚本function#!/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} ]"
}
然后在tserver等服务脚本内调用function脚本,即可实现显示服务启动的信息等。
#!/bin/bash
#
# chkconfig: 35 55 44
# description: chris service
#
. /etc/rc.d/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
6、为小系统增加网功能(网卡驱动)
虚拟机的网卡pcnet32的。先查找其驱动模块/pcnet32.ko,而且有依赖于mii.ko模块。
移植驱动模块
mkdir -p /lib/modules
cd /lib/modules
modinfo pcnet32
cp /lib/modules/2.6.18-308.el5/kernel/drivers/net/pcnet32.ko modules/
modinfo mii
cp /lib/modules/2.6.18-308.el5/kernel/drivers/net/mii.ko modules/
配置rc.d/rc.sysinit文件
#!/bin/bash
#
echo "welecome chris little linux"
mount -n -o remount,rw /
echo "set the hsotname"
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
[ -z $HOSTNAME -o "$HSOTNAME" == '(none)' ] && HOSTNAME=localhost
/bin/hostname $HOSTNAME
echo "insmod pcnet32 mode"
/sbin/insmod /lib/modules/mii.ko
/sbin/inmod /lib/modules/pcnet32.ko
增加网卡配置文件etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=172.16.7.4
NETMASK=255.255.0.0
GATEWAY=172.16.7.1
ONBOOT=yes
添加必须的配置配置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
在rc.d下创建连接
rc0.d rc3.d rc6.d
cd rc0.d/
ln -sv ../init.d/network K90network
cd rc6.d/
ln -sv ../init.d/network K90network
cd rc3.d/
ln -sv ../init.d/network S09network
配置测序效果如下
下文接“linux系统组成之小型RedHat little linux制作四”