题外:自制小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

相关推荐

  • LVM逻辑卷管理

    为什么要用LVM?     想象一个示例,如果我们给定的分区是50G,过段时间发现空间不够用,此时我们就要重新加一块新硬盘,重新分区格式化,将原来分区上的数据复制过来,再重新挂载,整个过程会非常麻烦,LVM可以很有效的解决这个问题 LVM简介     及逻辑卷(Logical V…

    Linux干货 2016-09-01
  • keepalived高可用haproxy配合varnish实现wordpress的动静分离

    haproxy和nginx都可以作为七层和四层反代服务器对外提供服务,此文通过haproxy和keealived配置varnish搭建wordpress的动静分离站点 一、实验环境 五台虚拟机: haproxy-1:搭建haproxy和keepalived服务,ip地址:192.168.11.176 haproxy-2:搭建haproxy和keepalive…

    2017-07-03
  • 程序包管理之编译安装apache

    编译就是讲开发者提供的源代码,通过编译器,汇编器,连接器转换成可以直接在操作系统上运行的二进制指令的过程。C/C++源码的编译通常包括以下几个过程:     预处理(Preprocessing)     编译(Compilation)    &nbs…

    Linux干货 2016-08-24
  • linux常用的文件,目录管理命令总结和文件元数据信息含义

    常用的文件管理类命令及其具体用法 1.rmdir删除空目录 -p 递归删除多级空目录 这个命令不能删除非空目录 例如 [root@dxlcentOS ~]# rmdir /tmp/we rmdir: 删除 “/tmp/we” 失败: 目录非空 [root@dxlcentOS ~]# rmdir /tmp/we2 2.mkdir创建目录 常用选项-p 自动递归…

    Linux干货 2017-10-05
  • 特殊权限之SUID、SGID、STICKY

    特殊权限        在系统中,难免有一些比较特殊的用户或文件目录,但是普通的权限有不能解决我们的需求,于是就有特殊权限帮我们解决这个问题 特殊权限有三个:SUID、SGID、STICKY      首先,先说说安全上下文: 进程以某用户的身份运行,那么进程将会以此用户身份去完成所有操作…

    Linux干货 2016-08-05
  • SElinux

    SElinux 1.介绍: SELinux: Secure Enhanced Linux,是美国国家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporation)开发的Linux的一个强制访问控制的安全模块。2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中 …

    Linux干货 2016-09-21