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实现显示信息,如下
代码如下:
#!/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学习笔记二十——系统裁剪之二相关推荐
- Cty的Linux学习笔记(十二)
Linux学习笔记--第十二篇 命令(command): RPM工具: rpm -ivh ......:安装RPM包 -i:表示安装 -v:表示可视化 -h:表示显示安装进度 在安装RPM包是常用的附 ...
- Cty的Linux学习笔记(十)
Linux学习笔记--第十篇 命令(command): mount:可以查看当前系统一些已经挂载的所有分区,分区文件系统的类型,挂载点及一些选项信息. -a:把/etc/fstab出现的所有磁盘分区挂 ...
- Linux学习笔记(十八) -- 运行程序,出现Failed to load module canberra-gtk-module错误的解决方案
1.错误内容 错误描述 执行程序时,提示如下错误: Failed to load module "canberra-gtk-module" 2.解决方案 (1)执行语句: sudo ...
- Cty的Linux学习笔记(十五——wget)
Linux学习笔记--第十五篇 wget命令用于在终端中下载网络文件,格式为"wget [参数] 下载地址" 参数: -b:后台下载模式 -P:下载到指定目录 -t:最大尝试次 ...
- Cty的Linux学习笔记(十四)
Linux学习笔记--第十四篇 环境变量配置文件: /etc/profile:预设了几个重要的变量,例如PATH,USER,LOGNAME,MAIL,INPUTRC,HOSTNAME,HISTSIZE ...
- Linux学习笔记---使用BusyBox创建根文件系统(二)
目录 向 rootfs 的"/lib "目录添加库文件 向 rootfs 的usr/lib 目录添加库文件 创建其他文件夹 根文件系统初步测试 向 rootfs 的"/l ...
- Linux学习笔记---移植官方uboot步骤(二)
在上一篇 Linux学习笔记---移植官方uboot步骤(一) 自己的uboot已经编译成功了,接下来继续移植LCD驱动和网络驱动. 修改LCD驱动 修改配置参数 打开my_uboot/board/f ...
- pytorch学习笔记(十九):二维卷积层
文章目录 1. 二维互相关运算 2. 二维卷积层 3. 图像中物体边缘检测 4. 通过数据学习核数组 卷积神经网络(convolutional neural network)是含有卷积层(convol ...
- Linux学习笔记(十二)usermod、passwd、mkpasswd
一.usermod修改用户信息 usermod -u 111 username #修改用户 usermod -g grp2 username #修改用户组 usermod -d /home/china ...
最新文章
- iphonex如何关机_iPhone X手机屏幕出现绿线怎么回事_屏幕绿线该如何处理?
- python turtle库画图案-Python:turtle库的使用及图形绘制
- Hyperledger Fabric 核心模块(3)cryptogen 工具
- Hibernate 一对一注释
- 【Linux】一步一步学Linux——login命令(210)
- 开源矿工和轻松矿工接入ssl
- while(true) 循环中使用了sleep休眠了半小时就中断了_线程中断不是你想中断就能的...
- logstash的使用教程
- 学生用计算机说明方法,15.文中多处运用了作比较的说明方法.请任选一例.说说运用这种方法的作用. 例子: 作用:...
- 云服务器怎么设置域名,云服务器域名设置在哪里
- “无法找到运行搜索助理需要的一个文件”的解决办法
- 一步一步学习Servlet之Session使用
- 报错解决:No module named tensorflow.contrib
- Tableau+财务领域数据分析+应用
- 开发Linux应用程序的三种方法
- android照片同步到另一部手机,换手机后怎么把照片转移到新手机上?
- 网易云音乐前端性能监控实践
- Mybatis关联查询遇到的坑-无主键的关联数据去重
- Discuz修改导读设置,显示更多热帖和精华帖
- mysql截取邮箱后缀_截取邮箱格式以及统计邮箱总数
热门文章
- 星低级格式化工具_Elixir 数据库查询工具 Ecto 讲解
- Tuxedo FAQs 整理
- Mysql -update - Error Code: 1175. You are using safe update mode and you tried to update a table wit
- 织梦dedecms 相关文档标签(likearticle)实现关联整站文档
- JAVA中内部类(匿名内部类)访问的局部变量为什么要用final修饰?
- centos6.5搭建vsftp服务器
- gitlab部署、配置更改、备份及恢复
- 安装过程中又一个问题出现了。
- 事件库之Redis自己的事件模型-ae
- Linux 命令(72)—— ulimit 命令(builtin)