yanglgzh 发表于 2018-5-12 06:06:17

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]
查看完整版本: linux系统组成之小型RedHat little linux制作三