感谢支持
我们一直在努力

图解制作Mini Linux系统

图解制作Mini Linux系统当然是先看图:

图解制作Mini Linux系统

说明1:在一个Linux宿主机系统上,通过以上步骤,可以制作一个微小的Linux系统(可以放置在U盘中等),然后在其它的主机(虚拟机或者物理机)上运行,以实现最小化定制系统的目的。

说明2:上图中黑色部分是主要流程,蓝色部分是详细流程,棕色部分是注释说明等

对于上图中几点细节的详解:

阶段 说明
目标磁盘分区格式化挂载 目标磁盘是/dev/sdb,大小为1G,分区sdb1:100M,sdb2:500M即可
安装grub至目标磁盘
复制内核和initrd文件 VERSION是内核版本,如2.6.32-358.el6.x86_64
创建目标主机的根文件系统
移植常用命令

移植常用命令的脚本可参考http://www.linuxidc.com/Linux/2014-03/97861p2.htm

在移植后的bash程序所在的目录下创建sh软链接

为grub提供配置文件 grub配置文件详细说明见“图解Linux系统启动流程” http://www.linuxidc.com/Linux/2014-03/97862.htm
创建sbin/init脚本 init脚本可参考 http://www.linuxidc.com/Linux/2014-03/97861p3.htm

#!/bin/bash
# Author : Jason.Yu
# Description : copy some cmds and releated .so files to special directory(/mnt/sysroot).
# CTime : 2014.03.01

MkDirs_CpFiles (){
 Dirname=$(dirname $1)
 [ -d “${Target}${Dirname}” ] || mkdir -pv ${Target}${Dirname} &>/dev/null
 [ -f “${Target}$1” ] || cp $1 ${Target}${Dirname}
}

Copy_Cmds_Files(){
 Target=”/mnt/sysroot”
    CMDS=(grep df cat cp mv ls echo mount ifconfig insmod rmmod bash init cd vi mkdir shutdown reboot pwd lsmod)
    for cmd in ${CMDS[@]};do
  if which $cmd &>/dev/null;then
   cmd_full=`which –skip-alias $cmd`
   MkDirs_CpFiles $cmd_full
   for file in $(ldd $cmd_full|egrep -o “/lib[^[:space:]]+”);do
    MkDirs_CpFiles $file
   done
   [ $? -eq 0 ] && echo -e “\033[32mAll files copy done.\033[0m”
  else
            echo -e “The command \033[31m\$cmd033[0m is not existed.”
  fi
 done
}

main(){

 Copy_Cmds_Files

}

main

#!/bin/bash
# Author : Jason.Yu
# Description : make a init script to do somrthing
# CTime : 2014.03.01

echo -e “\tWelcome to \033[34m Jason.Yu Minix Linux\033[0m.”
mount -n -t proc proc /proc
mount -n -t sysfs sysfs /sys
insmod /lib/modules/e1000.ko
modprobe e1000
ifconfig lo 127.0.0.1/8
ifconfig eth0 172.16.10.99/16
mount -n -o remount,rw /dev/sda2 /
/bin/bash

赞(0) 打赏
转载请注明出处:服务器评测 » 图解制作Mini Linux系统
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏