linux 精简系统,Linux系统裁减之,制作一个极度精简的Linux-3-为精简的系统增加网络功能和关机重启功能...

第3章 为精简的Linux系统增加网络功能和开关重启功能

在阅读这篇博文之前,建议先阅读我的上两篇博文,而且最好按顺序阅读:(不然可能会觉得我写得不知所云,呵呵!)

第2篇:Linux系统裁减之,制作一个极度精简的Linux-2-用脚本实现自动拷贝命令和依赖库文件 https://blog.51cto.com/linuxprince/2046142

3.1 为精简的miniLinux系统增加网络功能

首先完善一下自动拷贝命令和依赖库文件的脚本,完善后的完整程序如下:

[root@CentOS5lsrv01 ~]# cat bincp.sh

#!/bin/bash

#

DESPATH=/mnt/sysroot

libcp() {

LIBPATH=${1%/*}

[ ! -d $DESPATH$LIBPATH ] && mkdir -p $DESPATH$LIBPATH

[ ! -e $DESPATH$1 ] && cp $1 $DESPATH$LIBPATH && echo "Copy lib file $1 Finished."

}

bincp() {

BINPATH=${1%/*}

[ ! -d $DESPATH$BINPATH ] && mkdir -p $DESPATH$BINPATH

[ ! -e $DESPATH$1 ] && cp $1 $DESPATH$BINPATH

DEPLIBS=`ldd $1 | grep -o "/.*lib\(64\)\{0,1\}/[^[:space:]]\{1,\}"`

for LIB in $DEPLIBS;

do libcp $LIB;

done

}

read -p "Input command what you want to copy to miniLinux:" CMD

until [ $CMD == 'q' ];do

! which $CMD &> /dev/null && echo "Your input Command is not found." && read -p "Input agent:" CMD && continue

COMMAND=`which $CMD | grep -v "^alias" | sed 's/\t//g'`

bincp $COMMAND

echo "Copy $COMMAND Finished."

read -p "Continue input command to miniLinux:" CMD

done

程序添加了与用户交互功能,移植命令就更方便啦!!^_^

现在拷贝ifconfig和ping命令到miniLinux中:

[root@CentOS5lsrv01 ~]# ./bincp.sh

Input command what you want to copy to miniLinux:ifconfig

Copy /sbin/ifconfig Finished.

Continue input command to miniLinux:ping

Copy /bin/ping Finished.

Continue input command to miniLinux:q

[root@CentOS5lsrv01 ~]#

为miniLinux系统建立驱动模块存放目录:先不要按照红帽官方的目录结构来建立

[root@CentOS5lsrv01 ~]# mkdir /mnt/sysroot/lib/modules/    

[root@CentOS5lsrv01 ~]# modinfo e1000 | grep filename

filename:       /lib/modules/2.6.18-398.el5/kernel/drivers/net/e1000/e1000.ko

提示:在我的环境中,Linux系统支持的虚拟机网卡驱动模块名是“e1000”

命令解析:

modinfo:显示系统内核模块详细信息(驱动模块文件路径、别名、模块签名等)

拷贝网卡驱动模块给miniLinux系统:

[root@CentOS5lsrv01 ~]# cp  /lib/modules/2.6.18-398.el5/kernel/drivers/net/e1000/e1000.ko   /mnt/sysroot/lib/modules/

修改miniLinux系统下的rc.sysinit文件,按以下内容修改:在系统初始化过程中直接加载网卡模块和设置IP地址,并启用网卡

[root@CentOS5lsrv01 ~]# cat /mnt/sysroot/etc/rc.d/rc.sysinit

#!/bin/bash

#

echo -e "\tWelcome to \033[31mMy team \033[0m Linux."

insmod /lib/modules/e1000.ko

ifconfig eth0 192.168.0.91 netmask 255.255.255.0

ifconfig eth0 up

/bin/bash

修改完马上同步到磁盘:

[root@CentOS5lsrv01 ~]# sync

启动miniLinux系统测试:

b34c02c06498c488470c5aabf7c68344.png

7488c79b5b35cad4203aa2dd761226e2.png

3.2为精简的miniLinux系统增加关机重启功能

第1步:首先拷贝halt、shutdown、reboot命令移植到miniLinux系统:

[root@CentOS5lsrv01 ~]# ./bincp.sh

Input command what you want to copy to miniLinux:halt

Copy /sbin/halt Finished.

Continue input command to miniLinux:shutdown

Copy /sbin/shutdown Finished.

Continue input command to miniLinux:reboot

Copy /sbin/reboot Finished.

Continue input command to miniLinux:q

[root@CentOS5lsrv01 ~]#

第2步:修改小系统的inittab文件,内容如下:

[root@CentOS5lsrv01 ~]# vi /mnt/sysroot/etc/inittab

id:3:initdefault:

si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc.halt

l6:6:wait:/etc/rc.d/rc.reboot

解析:

l0:0:wait:/etc/rc.d/rc.halt          

l6:6:wait:/etc/rc.d/rc.reboot     

第3步:编写级别“0”和级别“6”下的关机和重启脚本:

[root@CentOS5lsrv01 ~]# vi /mnt/sysroot/etc/rc.d/rc.halt

#!/bin/bash

#

sync

sleep 2   

sync

exec /sbin/halt –p

[root@CentOS5lsrv01 ~]# vi /mnt/sysroot/etc/rc.d/rc.reboot

#!/bin/bash

#

sync

sleep 2  

sync

exec /sbin/reboot

记得要给脚本执行权限:

[root@CentOS5lsrv01 ~]# chmod +x /mnt/sysroot/etc/rc.d/rc.halt

[root@CentOS5lsrv01 ~]# chmod +x /mnt/sysroot/etc/rc.d/rc.reboot

提示:这里我并没有按照红帽官方的目录规范存放脚本,特意这样做的目的就是为 了理解一个Linux系统的核心部分需要哪些组件。

到此,miniLinux系统已经具有最基本的网络功能和关机和重启功能了。算是一个最基本的正常的系统啦。

越来越接近一个真实可用的系统啦!!^_^

欢迎继续关注我的后续博文:

第4篇:Linux系统裁减之,制作一个极度精简的Linux-4-使用mingetty绕开/bin/login https://blog.51cto.com/linuxprince/2049081

第5篇:Linux系统裁减之,制作一个极度精简的Linux-5-重新编译login去除对pam模块的依赖 https://blog.51cto.com/linuxprince/2054153

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值