加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

微型linux系统的裁剪过程

发布时间:2016-11-05 09:28:41 所属栏目:Linux 来源:网络整理
导读:前面我们介绍过基于busybox制作一个小linux,这篇文章则介绍的是从头至尾,一步一步根据系统启动流程制作的微型linux,并且逐渐将其功能完善。 系统启动流程:

编辑init程序:

将mkrootdev改为hda2,并且将没有意义的模块注释掉,这里只注释掉与dm有关的模块

微型linux系统的裁剪过程

删除test/lib/modules下的dm模块,并将test目录下的文件归档压缩至/mnt/boot/initrd.gz

微型linux系统的裁剪过程

3、安装grub

#  grub-install  --root-directory=/mnt  /dev/hda

#  ls  /mnt/boot    查看是否生成grub文件

提供grub.conf主配置文件

   default=0

timeout=3

title My Linux (2.6.18)

root  (hd0,0)

kernel  /vmlinuz   initrd  /initrd.gz

三、提供真正的根文件系统

1、创建我们所需要的目录

微型linux系统的裁剪过程

2、为init进程提供配置文件(在/mnt/sysroot下)

etc/inittab

   id:3:initdefault:

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

提供系统初始化脚本文件
etc/rc.d/rc.sysinit

   #!/bin/bash

#

echo -e "Welcome to 33[34mMy33[0m Linux"

/bin/bash


sysroot] #  chmod +x etc/rc.d/rc.sysinit     加执行权限
3、移植命令
我们可以先写一个脚本(bincp.sh),以方便命令移植

   #!/bin/bash

#

read -t 30 -p "Target System Directory[/mnt/sysroot]: " DEST

DEST=${DEST:-/mnt/sysroot}

libcp() {

 LIBPATH=${1%/*}

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

 [ ! -e $DEST${1} ] && cp $1 $DEST$LIBPATH && echo "copy lib $1 finished."

}

bincp() {

 CMDPATH=${1%/*}

 [ ! -d $DEST$CMDPATH ] && mkdir -p $DEST$CMDPATH

 [ ! -e $DEST${1} ] && cp $1 $DEST$CMDPATH

 for LIB in `ldd $1 | grep -o "/.*lib(64){0,1}/[^[:space:]]{1,}"`; do

   libcp $LIB

 done

}

read -p "Your command: " CMD

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

  ! which $CMD && echo "Wrong command" && read -p "Input again:" CMD && continue

 COMMAND=` which $CMD | grep -v "^alias" | grep -o "[^[:space:]]{1,}"`

 bincp $COMMAND

 echo "copy $COMMAND finished."

 read -p "Continue: " CMD

done

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读