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

相关推荐

  • 如何正确安装一个源码包

        下周就要考试了,心情挺忐忑不安的,前几天做了25期的考试题,感觉每个题都是老师上课讲过的,但是自己做却想不起来了。这应该就像学习数学一样,需要大量练习,做的多了自然就会了。     这周我们学习了如何使用yum,还学习了磁盘管理。针对如何安装源码包,以httpd包为例我们…

    2017-08-19
  • Corosync+Pacemaker+DRBD实现高可用 Mariadb

    一、DRBD简介 DRBD全称Distributed Replicated Block (分布式的复制块设备),开源项目。它是一款基于块设备的文件复制解决方案,速度比文件级别的软件如NFS,samba快很多,而且不会出现单点故障,是很多中小企业的共享存储首选解决方案。 二、DRBD的工作模式从上图中我们可以清楚的看到DRBD是工作在内核中,将协议建立在buf…

    2017-11-05
  • 网络班N22期第五周博客作业

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@bogon ~]# cat /etc/passwd | grep -E "^(root|fedora|user1)\>" | cut -d:&nb…

    Linux干货 2016-09-15
  • 马哥教育网络班22期+第2周课程练习

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。      文件管理命令有:mkdir  rm  tree  ls  等等  1、mkdir [options] /path/to/somewhere      &…

    Linux干货 2016-08-22
  • Net-25第5周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; grep -E "^[[:space:]]+" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; grep&nbsp…

    Linux干货 2017-01-03
  • 磁盘配额

    磁盘配额 1 启用磁盘配额 首先创建新的分区 /dev/sd5,并创建文件系统。 [root@local ~]# mkfs.ext4 /dev/sda5 由于xfs 不磁盘配额能成功,这里使用ext4. 然后把/dev/sda5分区挂载到 /home [root@local ~]# mount /dev/sda5 /home [root@local ~]# …

    Linux干货 2017-05-02