linux系统组成之小型RedHat little linux制作三
本文中接“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制作四”
页:
[1]