题外:自制小linux

自制小linux 系统

制作环境的概述

首先你的有VMware的虚拟机软件,其次安装了centos6/centos7linux系统

而且你需要写一个复制相关命令以及依赖库文件的的脚本(主要是为了省时间,脚本写法会在后面备注)
准备好以上环境,便可以制作一个小linux系统了,具体步骤如下

1)  在虚拟机设置中,在原有基础上在挂载一个20G大小的硬盘

2)  开机启动原有linux系统,我们可以简称原系统为“SL”

3)  使用如下命令:

echo “- – -” > /sys/class/scsi_host/host2/scan 可以识别之前安装好的小硬盘,利用lsblk查看,确认设备已经识别

4)  对该硬盘进行分区

fdisk  /dev/sdb

分为两个区

/dev/sda1—à/boot

/dev/sda2–à/

加载文件系统统一为ext4

Mkfs.ext4  /dev/sda1

Mkfs.ext4
/dev/sda

5)  挂载 boot

mkdir /mnt/boot

mount /dev/sdb1 /mnt/boot

6)  安装grub

grub-install –root-directory=/mnt /dev/sdb

7)  恢复内核和initramfs文件

cp /boot/vmlinuz-2.6.32-642.el6.x86_64  /mnt/boot/

cp
/boot/initramfs-2.6.32-642.el6.x86_64.img 
/mnt/boot

8)  建立grub.conf:

vim /mnt/boot/grub.conf

default=0

timeout=3

title customlinux

root (h0,0)

kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2  selinux=0 init=/bin/bash

initrd /initramfs-2.6.32-642.el6.x86_64.img

9) 创建一级目录

         mkdir
/mnt/sysroot

mount 
/dev/sdb2   /mnt/sysroot

mkdir–pv /mnt/sysroot/{etc,lib,lib64,bin,sbin,tmp,var,usr,sys,proc
,opt,home,root,boot,dev,mnt,media}

 

9)  复制bash和所需命令及相关库文件

ls,cat, vim,reboot,hostname等等~这里用之前提到的脚本即可快速实现

这有一个不错的脚本大家可以参考一下,虽然有些复杂,但是主要借鉴前面的判断语句的写法。

Vim copycmd .sh

#!/bin/bash

TargetDir=/mnt/sysroot

[ ! -d
$TargetDir ] && mkdir -p $TargetDir

#定义函数

CopyLib(){

 

for Lib in `ldd $1 | egrep -o
“/[^[:space:]]+”`

do

           LibDirName=`dirname $Lib`

           [ ! -d $TargetDir/$LibDirName ]
&& mkdir -p $TargetDir/$LibDirName

           [ ! -f $TargetDir/$Lib ] &&
cp $Lib $TargetDir/$LibDirName

done

return 0

 

}

#定义函数

CopyCmd(){

 

CmdDirName=`dirname $1`

[ ! -d $TargetDir/$CmdDirName ] &&
mkdir -p $TargetDir/$CmdDirName

[ ! -f $TargetDir/$CmdDirName ] && cp
$1 $TargetDir/$CmdDirName

return 0

}

 

read -p
“Please input a comand: ” Cmd

while
true

do

 

[[ $Cmd =~ ^[Qq]$|^[Qq][Uu][Ii][Tt]$ ]]
&& exit

[[ $Cmd =~ ^[Ee]$|^[Ee][Xx][Ii][Tt]$ ]]
&& exit

if which $Cmd &>/dev/null

then

           CmdPath=`which $Cmd`

           if [ -f $TargetDir/$CmdPath ]

           then

                    echo -e “\e[31mTarget
command\e[0m \e[1;31m$Cmd\e[0m \e[31mis exist!\e[0m”

                    read -p “Please input a
comand [quit|exist]:” Cmd

                    continue

           fi

           else

                    echo -e “\e[31mSource
command\e[0m \e[1;31m$Cmd\e[0m \e[31mis exist!\e[0m”

                    read -p “Please input a
comand [quit|exist]:” Cmd

                    continue

           fi

                   

           CopyCmd $CmdPath && CopyLib
$CmdPath && echo -e “\e[1;32m$Cmd\e[0m \e[32mis copy
successed!\e[0m”

           [ $? -ne 0 ] && echo -e
“\e[1;31m$Cmd\e[0m \e[32mis copy failured!\e[0m”

           read -p “Please input a comand
again [quit|exist]: ” Cmd

 

done

 

考完后,关闭系统,新建虚拟机,将之前的20G小硬盘去掉,放入新建虚拟机中,即可安全启动(改该系统未考虑网络的问题,需要网络,首先需要安装网络模块 ,也可全路径拷贝网络模块,在复制相关网络管理命令和依赖库文件,即可具备网络功能)

如此,自制小linu大功告成,

题外:自制小linux

 

话说玩玩就好,有时间追加全自主编译安装的linux,能够更加深入的了解linux,详细可以参考LFS6.2中文版

原创文章,作者:oranix,如若转载,请注明出处:http://www.178linux.com/72528

(0)
oranixoranix
上一篇 2017-04-04 15:18
下一篇 2017-04-04 18:44

相关推荐

  • MHA+keepalived 高可用MYSQL集群

    一、MHA简介 二、试验环境及要求 三、部署MHA 四、测试MHA集群功能 一、MHA简介     MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案。在MySQL故障切换过程中,MHA能做到在0~30秒之内手动或自动(结合脚本)完成数据库的故障切换操作,并且在…

    2017-02-25
  • 初识Linux—-小练习

    1、怎样更改命令提示符的颜色?     步骤一:通过 echo $PS1 命令显示当前提示符格式;     步骤二:通过cat /etc/DIR_COLORS 命令,查询需要颜色的编号;     步骤三:打开.bashrc文件,命令为nano  .bashrc,进入后添加,如图: &nbs…

    2017-02-18
  • sed命令的入门与进阶

    sed:Stream EDitor     什么是sed呢?sed被称为linux文本处理三剑客之一,另外两个就是大名鼎鼎的grep和awk。sed是非交互性的流编辑器,在处理文本时一次只读取一行文本,然后基于所给定的编辑脚本对模式空间中的内容做编辑处理并把处理后的结果输出至标准输出。接着处理下一行文本,这样不断重复,直到文件的末尾。se…

    2017-03-16
  • 编程能力与编程年龄

    程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型,就像《程序员技术练级攻略》这篇文章很多人回复到这种玩法会玩死人的一样。我在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多数程序员都认为,编程这个事只能干到30岁,最多35岁吧。每每我听到这样的言论,都让我感到相当的无语,大家都希…

    Linux干货 2016-08-15
  • N22-​Linux系统的基础命令

                                     Linux系统的基础命令 命令的语法通用格式:# COMMAND OPTIONS  ARGUMENTS COMMA…

    Linux干货 2016-08-15
  • first

    计算机可分为硬件(CPU ,存储器 ,输入设备 ,输出设备),软件(操作系统 ) 两大部份; CPU:Central Processing Unit 中央处理器 ,内部由运算器,控制器,寄存器,缓存器组成 ; 存储器 :(RAM:Random Access Memory 随机存储器)进行数据 暂存,断电后其内信息会丢失,如内存 ;(ROM:Read Only…

    Linux干货 2016-12-05