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

挂载文件系统

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

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实现显示信息,如下

代码如下:

#!/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} ]"

}

转载于:https://blog.51cto.com/chenqiyi/1684570

Linux学习笔记二十——系统裁剪之二相关推荐

  1. Cty的Linux学习笔记(十二)

    Linux学习笔记--第十二篇 命令(command): RPM工具: rpm -ivh ......:安装RPM包 -i:表示安装 -v:表示可视化 -h:表示显示安装进度 在安装RPM包是常用的附 ...

  2. Cty的Linux学习笔记(十)

    Linux学习笔记--第十篇 命令(command): mount:可以查看当前系统一些已经挂载的所有分区,分区文件系统的类型,挂载点及一些选项信息. -a:把/etc/fstab出现的所有磁盘分区挂 ...

  3. Linux学习笔记(十八) -- 运行程序,出现Failed to load module canberra-gtk-module错误的解决方案

    1.错误内容 错误描述 执行程序时,提示如下错误: Failed to load module "canberra-gtk-module" 2.解决方案 (1)执行语句: sudo ...

  4. Cty的Linux学习笔记(十五——wget)

    Linux学习笔记--第十五篇 wget命令用于在终端中下载网络文件,格式为"wget  [参数]  下载地址" 参数: -b:后台下载模式 -P:下载到指定目录 -t:最大尝试次 ...

  5. Cty的Linux学习笔记(十四)

    Linux学习笔记--第十四篇 环境变量配置文件: /etc/profile:预设了几个重要的变量,例如PATH,USER,LOGNAME,MAIL,INPUTRC,HOSTNAME,HISTSIZE ...

  6. Linux学习笔记---使用BusyBox创建根文件系统(二)

    目录 向 rootfs 的"/lib "目录添加库文件 向 rootfs 的usr/lib 目录添加库文件 创建其他文件夹 根文件系统初步测试 向 rootfs 的"/l ...

  7. Linux学习笔记---移植官方uboot步骤(二)

    在上一篇 Linux学习笔记---移植官方uboot步骤(一) 自己的uboot已经编译成功了,接下来继续移植LCD驱动和网络驱动. 修改LCD驱动 修改配置参数 打开my_uboot/board/f ...

  8. pytorch学习笔记(十九):二维卷积层

    文章目录 1. 二维互相关运算 2. 二维卷积层 3. 图像中物体边缘检测 4. 通过数据学习核数组 卷积神经网络(convolutional neural network)是含有卷积层(convol ...

  9. Linux学习笔记(十二)usermod、passwd、mkpasswd

    一.usermod修改用户信息 usermod -u 111 username #修改用户 usermod -g grp2 username #修改用户组 usermod -d /home/china ...

最新文章

  1. iphonex如何关机_iPhone X手机屏幕出现绿线怎么回事_屏幕绿线该如何处理?
  2. python turtle库画图案-Python:turtle库的使用及图形绘制
  3. Hyperledger Fabric 核心模块(3)cryptogen 工具
  4. Hibernate 一对一注释
  5. 【Linux】一步一步学Linux——login命令(210)
  6. 开源矿工和轻松矿工接入ssl
  7. while(true) 循环中使用了sleep休眠了半小时就中断了_线程中断不是你想中断就能的...
  8. logstash的使用教程
  9. 学生用计算机说明方法,15.文中多处运用了作比较的说明方法.请任选一例.说说运用这种方法的作用. 例子: 作用:...
  10. 云服务器怎么设置域名,云服务器域名设置在哪里
  11. “无法找到运行搜索助理需要的一个文件”的解决办法
  12. 一步一步学习Servlet之Session使用
  13. 报错解决:No module named tensorflow.contrib
  14. Tableau+财务领域数据分析+应用
  15. 开发Linux应用程序的三种方法
  16. android照片同步到另一部手机,换手机后怎么把照片转移到新手机上?
  17. 网易云音乐前端性能监控实践
  18. Mybatis关联查询遇到的坑-无主键的关联数据去重
  19. Discuz修改导读设置,显示更多热帖和精华帖
  20. mysql截取邮箱后缀_截取邮箱格式以及统计邮箱总数

热门文章

  1. 星低级格式化工具_Elixir 数据库查询工具 Ecto 讲解
  2. Tuxedo FAQs 整理
  3. Mysql -update - Error Code: 1175. You are using safe update mode and you tried to update a table wit
  4. 织梦dedecms 相关文档标签(likearticle)实现关联整站文档
  5. JAVA中内部类(匿名内部类)访问的局部变量为什么要用final修饰?
  6. centos6.5搭建vsftp服务器
  7. gitlab部署、配置更改、备份及恢复
  8. 安装过程中又一个问题出现了。
  9. 事件库之Redis自己的事件模型-ae
  10. Linux 命令(72)—— ulimit 命令(builtin)