Linux学习笔记<二十>――系统裁剪之二

在系统裁剪之一的基础上,给系统添加挂载文件系统、关机重启、设置主机名、运行对应级别的服务脚本、启动终端、装载网卡驱动并启用网络等功能。


挂载文件系统

①重新挂载根文件系统为可读写

vim 编辑/mnt/sysroot/etc/rc.d/rc.sysinit添加以下行

echo "Remount rootfs..."

mount -n -o remount,rw /

②vim 编辑/mnt/etc/fstab

/dev/sdb2       /       ext3    defaults        0 0

/dev/sdb1       /boot    ext3    defaults        0 0

proc          /proc    ext3    defaults        0 0

sysfs          /sys    sysfs    defaults        0 0

 

关机重启功能,运行对应级别的服务脚本

①vim /mnt/sysroot/etc/rc.d/init.d/halt

#!/bin/bash

#

case $0 in

*halt)

  COMMAND='/sbin/halt -p';;

*reboot)

  COMMAND='/sbin/reboot';;

*)

  echo "Only call this script by *reboot OR *halt;"

  ;;

esac


case $1 in

start)

  ;;

stop)

  ;;

*)

  echo "Usage:`vasename $0` {start|stop}"

  ;;

esac

exec $COMMAND

:wq

②在对应运行级别的目录上创建链接

cd /mnt/sysroot/etc/rc.d/rc0.d

ln -sv ../init.d/halt S99halt

cd /mnt/sysroot/etc/rc.d/rc6.d

ln -sv ../init.d/halt S99reboot

③创建编辑/mnt/sysroot/etc/rc.d/rc

vim /mnt/sysroot/etc/rc.d/rc

#!/bin/bash

#

RUNLEVEL=$1

for I in /etc/rc.d/rc$RUNLEVEL.d/K*;do

  $I stop

done

for I in /etc/rc.d/rc$RUNLEVEL.d/S*;do

  $I start

done

④vim编辑/mnt/sysroot/etc/inittab添加以下行

10:0:wait:/etc/rc.d/rc 0

11:1:wait:/etc/rc.d/rc 1

12:2:wait:/etc/rc.d/rc 2

13:3:wait:/etc/rc.d/rc 3

14:4:wait:/etc/rc.d/rc 4

15:5:wait:/etc/rc.d/rc 5

16:6:wait:/etc/rc.d/rc 6


设置主机名

主机名的配置文件在/mnt/sysroot/etc/sysconfig/network中

①vim /mnt/sysroot/etc/sysconfig/network

HOSTNAME=CQY

②vim 编辑/mnt/sysroot/etc/rc.d/rc.sysinit添加以下行

echo "Set the hostname..."

[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network

[ -z $HOSTNAME -o "$HOSTNAME" == '(none)' ] && HOSTNAME=localhost

/bin/hostname $HOSTNAME


启动终端

①vim编辑/mnt/sysroot/etc/inittab添加以下几行

1:2345:respawn:/sbin/agetty -n -l /bin/bash 38400 tty1

2:2345:respawn:/sbin/agetty -n -l /bin/bash 38400 tty2

②vim编辑/mnt/sysroot/etc/rc.d/rc.sysroot删掉启动bash的行

#/bin/bash


装载网卡驱动并启用网络

①复制对应的模块 mii.ko pcnet32.ko 用modinfo查看模块的具体路径

cp `modinfo mii | grep -o "/lib.*ko"` /mnt/sysroot/lib/modules/

cp `modinfo pcnet32 | grep -o "/lib.*ko"` /mnt/sysroot/lib/modules/

②在/mnt/sysroot.etc/rc.d/rc.sysinit下装载对应模块

vim编辑/mnt/sysroot.etc/rc.d/rc.sysinit添加以下几行

/sbin/insmod /lib/modules/mii.ko

/sbin/insmod /lib/modules/pcnet32.ko

③设置网卡的配置文件/mnt/sysroot/etc/sysconfig/network-scripts/ifcfg-eth0

vim /mnt/sysroot/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPRTO=static

IPADDR=192.168.0.111

NETMASK=24

GATEWAY=192.168.0.1

ONBOOT=yes

:wq

④创建network的服务脚本

vim /mnt/sysroot/etc/rc.d/init.d/network

#!/bin/bash

. etc/sysconfig/network-scripts/ifcfg-eth0

. etc/rc.d/init.d/functions

NETMASK=24


case $1 in

start)

  ifconfig $DEVICE $IPADDR/$NETMASK up

  success "network $DEVICE up"

  route add default gw $GATEWAY

  ;;

stop)

  ifconfig $DEVICE down

  success " network $DEVICE down"

  ;;

restart)

  ifconfig $DEVICE down

  ifconfig $DEVICE $IPADDR/$NETMASK up

  success " network $DEVICE restart"

  ;;

status)

  ifconfig $DEVICE

  ;;

*)

  echo "usage:network {start|stop|restart|status}"

  ;;

esac

:wq

⑤在各运行级别下创建对应的链接

cd /mnt/sysroot/etc/rc.d/rc0.d

ln -sv ../init.d/network K90network

cd /mnt/sysroot/etc/rc.d/rc6.d

ln -sv ../init.d/network K90network

cd /mnt/sysroot/etc/rc.d/rc3.d

ln -sv ../init.d/network S09network


其中/mnt/sysrootetc/rc.d/init.d/functions实现显示信息,如下

wKiom1XNVdeTyLgpAAAUsLeSKNI991.jpg

代码如下:

#!/bin/bash

SCREEN=`stty -F /dev/console size 2> /dev/null`

[ $? -eq 0 ] && COLUMNS=${SCREEN#* } || COLUMNS=80

SPA_COL=$[COLUMNS-12]

RED='\033[31m'

GREEN='\033[32m'

NORMAL='\033[0m'

success(){

  echo -n $1

  space=$[${SPA_COL}-${#1}]

  for I in `seq $space`;do

    echo -n ' '

  done

  echo -e "[  ${GREEN}OK${NORMAL}  ]"

}

fail(){

  echo -n $1

  space=$[${SPA_COL}-${#1}]

  for I in `seq $space`;do

    echo -n ' '

  done

  echo -e "[ ${RED}FAIL${NORMAL} ]"

}



你可能感兴趣的:(Linux学习,系统裁剪)